專利名稱:用于自動化測試的緊湊架構(gòu)的制作方法
用于自動化測試的緊湊架構(gòu)
背景技術(shù):
在電子裝置的設(shè)計和制造中,需要驗證設(shè)計并確保裝置提供所期望的功能和特 征。作為結(jié)果,已經(jīng)開發(fā)了自動化測試,由此可以測試并校驗電子裝置的功能和特征。由于 被測試的裝置在復(fù)雜性上已經(jīng)增長,所以也已經(jīng)開發(fā)了更加復(fù)雜的自動化測試系統(tǒng)。裝置的準(zhǔn)確和可靠測試對于該裝置的成功開發(fā)和生產(chǎn)可能是關(guān)鍵的。自動化測試 過程中的瑕疵可能錯誤地反映在該裝置的性能上,由此導(dǎo)致了開發(fā)中的延遲和生產(chǎn)中的不 必要損耗。照這樣,裝置的準(zhǔn)確和可靠測試對于有效且高效地開發(fā)或制造產(chǎn)品是關(guān)鍵的。在其中自動化測試用于在研發(fā)期間對產(chǎn)品進(jìn)行評定的情形下,準(zhǔn)確和有效自動化 測試的要求增強(qiáng)。盡管在生產(chǎn)中用于裝置的自動化測試可能不會頻繁地改變,但是在研發(fā) 期間使用的自動化測試可能需要提供用于快速修改測試并以短測試開發(fā)時間而生成新測 試的能力,以便滿足與該研發(fā)處理相關(guān)聯(lián)的改變的測試需求。已經(jīng)使用操作為控制測試裝置并采集關(guān)于這個裝置的數(shù)據(jù)的程序來進(jìn)行自動化 測試。傳統(tǒng)上,這已經(jīng)要求來自不同人員的各種貢獻(xiàn),以確保恰當(dāng)?shù)臏y試開發(fā)。例如,計算 機(jī)程序員可以產(chǎn)生通過其來進(jìn)行自動化測試的源代碼。然而,可能的是,用于對自動化測試 進(jìn)行編碼的計算機(jī)程序員對于總體測試?yán)袒驕y試流的要求知之甚少或根本不了解。用于 對該測試程序進(jìn)行開發(fā)的該計算機(jī)程序員或其他同樣的人可能不知道需要對新裝置的什 么特征或組件進(jìn)行測試,他或她可能也不知道用于該裝置完全評定所必需的順序、測試的 總數(shù)、或測試的種類。照這樣,可能要求領(lǐng)域?qū)I(yè)人員(例如,測試工程師)在完全地捕獲 需要被測試的裝置的各小方面上來協(xié)助計算機(jī)程序員。這給用于開發(fā)該測試程序的人和領(lǐng) 域?qū)I(yè)人員兩者都造成了負(fù)擔(dān),這導(dǎo)致測試程序的開發(fā)的成本和復(fù)雜性上增加。此外,第三人可能進(jìn)行所述測試的執(zhí)行。在此情況下,可能要求該第三人在測試程 序的開發(fā)和設(shè)計上與計算機(jī)程序員和測試工程師一樣精通,以便恰當(dāng)?shù)貓?zhí)行該測試。在這 點上,測試處理的開發(fā)必然涉及橫跨多種來源的復(fù)雜協(xié)作和交流,或者涉及熟悉整個測試 程序開發(fā)、設(shè)計、和執(zhí)行的單一、經(jīng)過高度培訓(xùn)的人。在任一實例中,添加的成本和復(fù)雜性導(dǎo) 致用于創(chuàng)建自動化測試系統(tǒng)(尤其是,在研發(fā)中針對產(chǎn)品設(shè)計的一個自動化測試系統(tǒng))的 不期望的條件。另外,恰當(dāng)?shù)剡M(jìn)行測試程序的開發(fā)、設(shè)計、和執(zhí)行所必需的輔助系統(tǒng)(諸如,圖形 用戶界面、計算機(jī)硬件、通信裝置等)的控制經(jīng)常不得不與所創(chuàng)建的每個相繼測試程序一 起進(jìn)行重新開發(fā)。這導(dǎo)致了要求更多時間和金錢來有效地開發(fā)、設(shè)計、和執(zhí)行測試程序的增 加的復(fù)雜性。對測試進(jìn)行的改變經(jīng)常要求全新的程序,這需要針對每個新程序來徹底從頭 開發(fā)測試程序。這可能導(dǎo)致在開發(fā)和執(zhí)行測試程序時的長交付時間。針對此背景技術(shù),已經(jīng)開發(fā)了用于自動化測試的緊湊架構(gòu)(compactframework)。
發(fā)明內(nèi)容
結(jié)合意欲為示范性和說明性的、并且不在范圍上進(jìn)行限制的系統(tǒng)、工具、和方法來 描述并說明以下實施例及其各方面。在各個實施例中,已經(jīng)減少或消除了一個或多個上述問題,同時其他實施例針對其他改善。根據(jù)第一方面,提供了一種使用緊湊架構(gòu)的用于自動化測試的系統(tǒng),該系統(tǒng)包括 多個功能,所述多個功能包括測試模塊的開發(fā)、測試流的開發(fā)和測試流的執(zhí)行。另外,該系 統(tǒng)包括認(rèn)證器,該認(rèn)證器確定用戶的特性,使得通過該特性來定義向用戶提供的功能。此 外,該系統(tǒng)包括圖形用戶界面,該圖形用戶界面對應(yīng)于所述多個功能。此方面的進(jìn)一步改進(jìn)可以包括操作為執(zhí)行該緊湊架構(gòu)的自動化測試設(shè)備,并且還 可以包括用于可操作地將該自動化測試設(shè)備連接到受測裝置或單元的測試硬件。而且,一 個實施例可以包括數(shù)據(jù)顯示器,該數(shù)據(jù)顯示器可操作為顯示關(guān)于測試流的執(zhí)行的實時數(shù) 據(jù)。此數(shù)據(jù)也可以以圖形形式顯示。此外,一個實施例可以包括結(jié)果處理器,用于對在測試 流的執(zhí)行期間采集的數(shù)據(jù)進(jìn)行格式化。該測試模塊的開發(fā)和執(zhí)行可以包括提供和執(zhí)行源 代碼、和/或指定一個或多個外部過程調(diào)用。在根據(jù)新的測試要求(例如,用于新技術(shù)或產(chǎn) 品的測試)來對所述測試模塊和關(guān)聯(lián)功能進(jìn)行開發(fā)之后,該緊湊架構(gòu)可以加載所開發(fā)的組 件并在該系統(tǒng)中執(zhí)行它們。根據(jù)另一方面,提供了一種使用緊湊架構(gòu)的自動化測試的方法,使得執(zhí)行該緊湊 架構(gòu),并且該緊湊架構(gòu)確定第一用戶的特性。另外,該方法包括定義包括測試模塊的開發(fā)、 測試流的開發(fā)和測試流的執(zhí)行的一個或多個功能。該方法還包括取決于所述用戶特性來向 所述第一用戶提供這些功能中的至少一個。在此方面的一個實施例中,通過多個測試模塊來定義該測試流。另外,當(dāng)前方面的 一個實施例可以包括顯示用于描述該緊湊架構(gòu)的執(zhí)行的實時數(shù)據(jù)。該方法的實施例還可以 包括使第一用戶的功能中止,并且向第二用戶提供不同的功能。此外,可以將在執(zhí)行測試 模塊時采集的數(shù)據(jù)格式化為由該用戶確定的報告格式。該方法還可以包括以下實施例,其中可以通過暫停當(dāng)前運(yùn)行的線程、在完成當(dāng)前 運(yùn)行的測試模塊時進(jìn)行暫停、或兩者來暫停測試流的執(zhí)行。根據(jù)另一方面,提供了一種用于自動化測試的緊湊架構(gòu),該緊湊架構(gòu)包括測試模 塊開發(fā)模塊,操作為對測試模塊進(jìn)行開發(fā)和定義。該緊湊架構(gòu)還包括多個測試模塊,所述多 個測試模塊具有參數(shù)和結(jié)果數(shù)據(jù),所述參數(shù)和結(jié)果數(shù)據(jù)描述了該測試模塊的配置和結(jié)果處 理器,使得可以利用不同的參數(shù)和結(jié)果數(shù)據(jù)來執(zhí)行每個測試模塊。該緊湊架構(gòu)還包括配置 模塊和執(zhí)行模塊,該配置模塊操作為定義測試流,該測試流包括所述測試模塊中的至少一 個,并且該執(zhí)行模塊操作為執(zhí)行該測試流。另外,測試開發(fā)模塊、配置模塊和執(zhí)行模塊是基 于用戶的特性。此方面的緊湊架構(gòu)還可以包括以下實施例,其中通過該緊湊架構(gòu)來生成可 以響應(yīng)于用戶的要求而格式化的報告結(jié)果。除了上述的示范方面和實施例之外,參考附圖并通過研究以下描述,進(jìn)一步的方 面和實施例將變得明顯。
圖1是自動化測試系統(tǒng)的一個實施例的示意圖。圖2是描繪了示范的緊湊架構(gòu)的執(zhí)行的流程圖。圖3是描繪了用于開發(fā)測試模塊的功能的流程圖。圖4是描繪了用于設(shè)計測試流的功能的流程圖。
圖5是描繪了用于執(zhí)行測試模塊的功能的流程圖。圖6是描繪了用于開發(fā)測試模塊的替換功能的流程圖。圖7是描繪了測試流結(jié)果的處理的流程圖。圖8是描繪了用于在執(zhí)行期間暫停測試流的兩種方法的流程圖。圖9是示出了測試流的執(zhí)行的詳細(xì)流程圖。圖10是示出了測試流和測試模塊的組織的示意圖示。
具體實施例方式現(xiàn)在,將對附圖做出參考,所述附圖至少協(xié)助圖示了本發(fā)明的各種相關(guān)特征。在這 點上,為了說明和描述的目的而呈現(xiàn)了以下描述,并且該以下描述不意欲將本發(fā)明限于在 這里所公開的形式。結(jié)果,與以下教導(dǎo)以及相關(guān)技術(shù)領(lǐng)域的技術(shù)和知識相稱的變形和修改 都處于本發(fā)明的范圍內(nèi)。在這里所描述的實施例還意欲使得本領(lǐng)域技術(shù)人員能夠按照這樣 的或其他實施例、并且與本發(fā)明的具體(多個)應(yīng)用或(多個)使用所要求的各種修改一 起來利用本發(fā)明。轉(zhuǎn)到圖1,示出了本發(fā)明的自動化測試系統(tǒng)100的一個實施例。該系統(tǒng)100包括 自動化測試設(shè)備(ATE) 110,其與受測單元(UUT) 120處于操作的通信中。UUT 120可以是任 何類型的硬件、軟件或者其組合??梢越?jīng)由測試硬件130來完成ATE 110和UUT 120之間 的通信。測試硬件130可以是任何線纜、線纜族、物理硬件接口、軟件實現(xiàn)的通信/控制接 口、(多個)連接器、或允許進(jìn)行UUT 120和ATE 110之間的操作通信的任何其他聯(lián)結(jié)器。 另外,測試硬件130可以提供其他測試儀器、傳感器、致動器、或執(zhí)行如下面進(jìn)一步描述的 測試所必需的其他裝置。圖形用戶界面(GUI)HO操作為接收來自用戶的輸入和命令,以控 制ATE 110。ATE 110可以是具有微處理器、存儲器、和諸如顯示器、鍵盤、和鼠標(biāo)等之類的 其他相關(guān)硬件的計算機(jī)。本實施例的ATE 110可以操作為執(zhí)行緊湊架構(gòu)。在本實施例中,緊湊架構(gòu)是用于控制ATE 110以對UUT 120執(zhí)行測試功能的計算 機(jī)程序。本實施例中的UUT 120可以是以下裝置,即在生產(chǎn)該裝置以前、處于研發(fā)階段的裝 置。更具體地,UUT 120可以是蜂窩電話、PDA、計算機(jī)、或任何其他電子裝置。緊湊架構(gòu)通過執(zhí)行用于驗證UUT 120的功能的一個或多個測試序列,來對UUT 120進(jìn)行測試。在該緊湊架構(gòu)中,將所述測試序列定義為測試模塊,可以將所述測試模塊編 譯為定義要在單一測試流中執(zhí)行的測試流、或測試模塊族。測試模塊向ATE 110提供指令, 以對UUT 120執(zhí)行測試。這可以包括向UUT 120提供輸入、或響應(yīng)于某些測試條件而監(jiān)視 UUT 120的參數(shù)等??梢詫y試模塊開發(fā)并修改為測試UUT 120、或UUT組件等的特定功能??梢皂憫?yīng)于由ATE 110執(zhí)行的測試來采集數(shù)據(jù)。在自動化測試系統(tǒng)100的本實施 例中,可以以用于在緊湊架構(gòu)中直接表示所記錄數(shù)據(jù)的原始形式來采集數(shù)據(jù)。然后,可以將 所采集的原始數(shù)據(jù)轉(zhuǎn)換為人類可讀的并且可以由工程師、和設(shè)計者等用于評估UUT 120的 結(jié)果報告。同樣,可以在數(shù)據(jù)庫或其他存儲介質(zhì)中存儲原始或格式化的數(shù)據(jù),以用于稍后的 回顧或?qū)淼慕Y(jié)果處理。由于UUT 120可能是具有許多組件和功能的復(fù)雜裝置,所以可能 需要采用許多測試子例程或測試模塊來完全地評定UUT 120的性能。照這樣,可以將多個 測試模塊添加到測試流,以便在單一測試流期間執(zhí)行不同的測試子例程。即,測試流可以是 要依次執(zhí)行以測試UUT 120的測試模塊族。
可以開發(fā)需要使用上面形態(tài)來測試的許多不同產(chǎn)品。此外,對現(xiàn)有產(chǎn)品進(jìn)行的改 變可能引起對于變更、修改、或創(chuàng)建新測試的需求。由于導(dǎo)致了在作為整體的裝置和由所述 裝置提供的功能兩者上的改變的開發(fā)的快速步調(diào),所以當(dāng)產(chǎn)品處于研發(fā)中時、用于修改或 創(chuàng)建新測試的此需求增強(qiáng)。當(dāng)正在連續(xù)地對新產(chǎn)品進(jìn)行開發(fā)時,緊湊框架適于對各種裝置 和組件進(jìn)行測試,并且提供用于快速修改測試過程、以適應(yīng)變化的所需測試條件的能力。相應(yīng)地,在本實施例中,測試模塊開發(fā)、測試流設(shè)計、和測試流執(zhí)行全部都構(gòu)成由 緊湊架構(gòu)提供的獨(dú)特功能。向負(fù)責(zé)與每個功能相關(guān)聯(lián)的每個任務(wù)的用戶提供這些功能。這 樣,由該緊湊架構(gòu)提供的每個功能可以適合于特定的用戶職責(zé),以消除復(fù)雜性和困難。這可 以包括為每個功能提供功能專門GUI140。照這樣,可以向具有職責(zé)專門任務(wù)的每個用戶呈 現(xiàn)與完成這個任務(wù)相關(guān)聯(lián)的緊湊架構(gòu)的特定功能。可以向每個功能提供專門GUI 140。然 而,由于在單一緊湊架構(gòu)內(nèi)執(zhí)行每個功能,所以也可以規(guī)定功能集合之間的任何重疊。艮口, 測試模塊開發(fā)者可以不需要具有關(guān)于測試流設(shè)計的任何知識,并且測試流設(shè)計者可以不需 要具有關(guān)于測試流模塊開發(fā)的任何知識。盡管使用該緊湊架構(gòu)來完成全部兩個任務(wù),但是 將所述功能彼此分離,可以相對隔離地完成每個任務(wù)。例如,考慮以下情形,其中新特征被添加到裝置,并因此需要用于評定此特征的新 測試。假設(shè)沒有能夠測試該新功能的現(xiàn)有測試模塊,于是測試模塊開發(fā)者將不得不生成用 于封裝測試子例程、以驗證該新特征的有效性的新測試模塊。然后,測試模塊開發(fā)者將能夠 開發(fā)模塊,而無需其中將使用該模塊的測試流情境的任何知識。類似地,不知道如何開發(fā)該 測試模塊的測試流設(shè)計者將能夠通過設(shè)計合并了該新測試模塊的測試流,而采用新開發(fā)的 測試模塊來測試該新功能。由于兩個用戶執(zhí)行這些任務(wù)、并且該兩個用戶不需要理解由另 一用戶執(zhí)行的任務(wù),所以可以通過使功能適合于正執(zhí)行每個功能的用戶的類型、來為特定 任務(wù)簡化并優(yōu)化每個需要采用的功能。現(xiàn)在轉(zhuǎn)到圖2,示出了用于描繪緊湊架構(gòu)的操作的流程圖200。緊湊架構(gòu)的操作在 步驟210中起動,在該步驟210中,ATE 110(參見圖1)發(fā)起緊湊架構(gòu)的執(zhí)行。然后,該緊 湊架構(gòu)在步驟220中例如使用圖形用戶界面來獲取關(guān)于用戶的信息。此用戶信息可以包括 用戶登陸標(biāo)識和密碼、或者用于區(qū)分用戶的標(biāo)識符的任何其他項。一旦被標(biāo)識,則可以預(yù)先 在該緊湊架構(gòu)內(nèi)將用戶定義為具有某些特性。這可以是向用戶給定的單一特性,或者可以 是多個特性。再進(jìn)一步,可以將用戶與所有特性相關(guān)聯(lián)。在步驟220中獲取的此用戶信息 用于在步驟230、240和250中確定用戶可以訪問什么功能。本發(fā)明的一個實施例包括三個 特性,所述三個特性包括測試模塊開發(fā)者230、測試流設(shè)計者M(jìn)0、和測試流執(zhí)行者250。這 些特性分別對應(yīng)于包括以下各項的功能測試模塊的開發(fā)232、測試流的設(shè)計M2、和執(zhí)行 測試流252。下面,進(jìn)一步描述這些功能的執(zhí)行。在圖2中,在步驟230中,該緊湊架構(gòu)確定所獲取的用戶角色信息是否對應(yīng)于測試 模塊開發(fā)者的用戶角色信息。如果對應(yīng),則該緊湊架構(gòu)在步驟231中顯示對應(yīng)于測試模塊 開發(fā)者的功能專門GUI 140。于是,該用戶在步驟232中訪問用于開發(fā)測試模塊的緊湊架構(gòu) 功能。在步驟MO中,將從步驟220中獲取的用戶特性信息評估為確定該用戶是否具有與 測試流設(shè)計者相關(guān)聯(lián)的特性。再次,如果是這樣,則該緊湊架構(gòu)在步驟241中顯示與測試流 設(shè)計相關(guān)聯(lián)的專門GUI 140,該專門GUI 140用于在步驟242中提供對于測試流設(shè)計功能的 訪問。類似地,在步驟250中,該緊湊架構(gòu)確定該用戶是否具有測試流執(zhí)行者特性。如果是這樣,則該緊湊架構(gòu)在步驟251中顯示測試執(zhí)行專門⑶I 140,該測試執(zhí)行專門⑶I 140用 于在步驟252中使用戶訪問與測試流執(zhí)行相關(guān)聯(lián)的架構(gòu)功能。應(yīng)該理解,用戶可以擁有兩個用戶特性,并因此,有權(quán)執(zhí)行兩個相關(guān)聯(lián)的功能。作 為示例,用戶可以具有用于測試模塊開發(fā)者230和測試流執(zhí)行者250兩者的特性。在此情 況下,用戶將有權(quán)訪問用于開發(fā)測試模塊232和執(zhí)行測試模塊252的功能。還應(yīng)該理解,用 戶可以具有所有特性,并且有權(quán)執(zhí)行所有功能232、242和252。此外,盡管當(dāng)前實施例包括 與三個功能對應(yīng)的三個特性,但是可以設(shè)想具有不同數(shù)目的特性和對應(yīng)功能的其他系統(tǒng)。在圖3所示的流程圖300中更加詳細(xì)地描繪了用于開發(fā)測試模塊232的功能。測 試模塊一般為用于控制用以提供特定測試功能的ATE 110的指令集合。在這點上,當(dāng)對UUT 120進(jìn)行開發(fā)時,可能要求新的或修改后的測試。相應(yīng)地,可以開發(fā)新的且不同的測試模塊, 以滿足此要求。為了促進(jìn)測試模塊的快速開發(fā)和修改,在步驟310中,緊湊架構(gòu)響應(yīng)于用戶 具有以下(多個)特性的確定,來提供在該架構(gòu)內(nèi)發(fā)起的測試模塊開發(fā)功能,所述(多個) 特性使得這個用戶能夠訪問用于對測試模塊進(jìn)行開發(fā)的功能。在步驟320中,開發(fā)者可以 經(jīng)由功能專門GUI 140(參見圖1)來輸入命令。功能專門GUI 140向用戶提供與測試模塊 的開發(fā)232相關(guān)聯(lián)的功能的控制,使得該用戶可以訪問并執(zhí)行這個功能。測試模塊開發(fā)者230可以具有對測試模塊進(jìn)行開發(fā)或修改的至少兩種潛在方式。 在步驟330中,測試模塊開發(fā)者可以直接通過功能專門⑶I 140來鍵入源代碼。此源代碼 表示ATE 110可以用于對UUT 120執(zhí)行一個或多個測試的控制指令。該架構(gòu)可以對在步驟 330中生成的源代碼進(jìn)行編譯和加載,以便生成該測試模塊。另外或替換地,測試模塊開發(fā)者可以在步驟340中開發(fā)外部庫。此外部庫可以包 括動態(tài)鏈接庫或該架構(gòu)用于執(zhí)行所期望的測試模塊的功能的其他外部數(shù)據(jù)。一旦開發(fā)者已 經(jīng)在步驟330中鍵入了源代碼或者在步驟340和350中開發(fā)并指定了適當(dāng)?shù)耐獠繋欤瑒t該 開發(fā)者可以在步驟360中將該測試模塊分配到類別。如下面進(jìn)一步解釋的,可以通過類別 來組織測試模塊,以便當(dāng)測試流設(shè)計者在選擇要對UUT執(zhí)行的測試時協(xié)助他們。另外,每個 測試模塊可能在步驟370中要求要由開發(fā)者定義的參數(shù)定義、結(jié)果極限和默認(rèn)值。該參數(shù) 定義包括執(zhí)行測試模塊的測試子例程所需的參數(shù)值。盡管如下面進(jìn)一步解釋的、這些參數(shù) 也可以由測試執(zhí)行者來鍵入,但是該測試模塊開發(fā)者可以定義參數(shù)的功能,并且建立出對 于進(jìn)行由該測試模塊執(zhí)行的測試而言什么參數(shù)是必須的。該測試模塊開發(fā)者還在步驟370 中定義結(jié)果極限和默認(rèn)值。在步驟370中由測試開發(fā)者定義的每個參數(shù)、結(jié)果極限和默認(rèn) 值可以與該測試模塊一起存儲在存儲器中。在這點上,該測試模塊可以用作可以在各種測 試流中進(jìn)行利用、以對一個或多個裝置進(jìn)行測試的預(yù)定義的測試子例程。而且,由于測試模 塊開發(fā)和測試流設(shè)計的功能是獨(dú)特的功能,所以測試模塊開發(fā)者不需要具有關(guān)于測試流設(shè) 計的任何知識,這是由于運(yùn)行每個測試模塊所要求的數(shù)據(jù)是獨(dú)特的,并且與該測試模塊一 起進(jìn)行存儲?,F(xiàn)在參考圖10,示出了用于示出測試模塊和測試流的組織的示意圖。如圖3所示, 測試模塊開發(fā)者在步驟360中定義用于每個測試模塊的類別(例如,類別(Category) 1、類 別2、類別η)。應(yīng)該理解,盡管在圖10中示出了三個類別,但是沒有對類別的數(shù)目進(jìn)行限制。 為了解釋,類別1包含三個測試模塊1040(標(biāo)記為1、2和幻。因此,要理解,在測試模塊1、 2和3的測試模塊開發(fā)中,測試模塊開發(fā)者已經(jīng)定義了這些測試模塊中的每一個將與類別1相關(guān)聯(lián)。類似地,將測試模塊4、5和6定義為屬于類別2,并且將測試模塊7、8和9定義為 屬于類別η。如每個類別的頂部測試模塊(即,測試模塊3、6和9)所示,每個測試模塊已經(jīng) 定義了對于每個測試模塊唯一的參數(shù)數(shù)據(jù)和結(jié)果處理數(shù)據(jù)?,F(xiàn)在轉(zhuǎn)到圖4,流程圖400描繪了使得用戶能夠設(shè)計測試流的功能。一旦緊湊架 構(gòu)已經(jīng)在步驟MO中確定出用戶具有測試流設(shè)計者的特性(參見圖2),則該緊湊架構(gòu)在步 驟410中發(fā)起測試流設(shè)計功能。該測試流設(shè)計者然后可以在步驟450中創(chuàng)建新的測試流。 可選步驟460在于對現(xiàn)有測試流的全部或部分進(jìn)行復(fù)制,以在步驟450中創(chuàng)建新的測試流。 在已經(jīng)創(chuàng)建了新測試流之后,設(shè)計者可以選擇要修改的測試流。替換地,測試流設(shè)計者可以 通過在步驟420中選擇要修改的現(xiàn)有測試流來開始。然后,該設(shè)計者在步驟430中選定要 在該測試流中包括的測試模塊的列表。如先前所提及的,可以根據(jù)類別來組織測試模塊,使 得測試流設(shè)計者可以更加容易地訪問所期望的測試模塊。在這點上,測試流設(shè)計者可以在 步驟440中從類別列表中挑選測試模塊,即選定與所需測試子例程功能對應(yīng)的適當(dāng)?shù)臏y試 模塊。再者,當(dāng)可能需要在單一測試流中測試UUT 120的許多組件和功能時,該測試設(shè)計者 可以對各種測試模塊進(jìn)行編譯,以便完成所期望的測試?yán)?。一旦測試流設(shè)計者已經(jīng)在步 驟430中完成了該測試模塊列表的編譯,則該測試流設(shè)計者可以在步驟470中對該測試流 進(jìn)行配置。這可以包括向現(xiàn)有參數(shù)提供參數(shù)的初始輸入或調(diào)整,該測試模塊的開發(fā)者使得 所述現(xiàn)有參數(shù)可用于進(jìn)行調(diào)整。返回參考圖10,描述了與要執(zhí)行的不同測試?yán)虒?yīng)的多個測試流(例如,測試 流(Test Flow) 1、測試流2和測試流η)。如可以領(lǐng)會的,每個測試流具有在該測試流內(nèi)定 義的各種測試模塊1040。例如,示出了包括測試模塊1、3、6、4和5的測試流1。要理解,可 以將任何數(shù)目的測試模塊1040與測試流相關(guān)聯(lián),以便完成所期望的測試?yán)?。另外,?zhí)行 測試模塊1040的順序可以處于由測試流設(shè)計者指定的任何順序中。另外,測試流設(shè)計者可 以創(chuàng)建任何數(shù)目的測試流。圖5圖示了用于表示用以執(zhí)行測試流的功能(參見圖2的步驟252)的流程圖500。 一旦緊湊架構(gòu)已經(jīng)正確地確定出用戶具有測試流執(zhí)行者的特性(例如,圖2的步驟250),則 該緊湊架構(gòu)在步驟510中發(fā)起測試流設(shè)計功能。接下來,該執(zhí)行者可以在步驟520中選擇 要執(zhí)行的所期望的測試流。然后,可以對該測試流進(jìn)行加載,并且在步驟530中可以向執(zhí)行 者呈現(xiàn)與功能專門⑶I 140對應(yīng)的配置面板,使得該執(zhí)行者可以向該測試流的配置做出必 要的調(diào)整??蛇x地,在步驟540中,該測試流執(zhí)行者可以對用于每個測試模塊的參數(shù)設(shè)置和 結(jié)果極限(limit)進(jìn)行配置。步驟540是可選的,這是因為每個測試模塊可以具有如由測 試模塊開發(fā)者所提供的與其相關(guān)聯(lián)的默認(rèn)參數(shù)設(shè)置和默認(rèn)結(jié)果極限。最終,在步驟550中, 該測試流執(zhí)行者執(zhí)行測試流,使得該緊湊架構(gòu)執(zhí)行在所指定的測試流中包括的每個測試模 塊。在圖6所示的流程圖600中描繪了執(zhí)行測試流的替換實施例。在步驟610中,測試 流執(zhí)行者可以發(fā)起該測試流的執(zhí)行。在步驟620中,緊湊架構(gòu)可以執(zhí)行其中測試流設(shè)計者 編譯為測試流的每個測試模塊。連續(xù)地,在此處理期間,在步驟640中從該測試流的執(zhí)行中 采集即時數(shù)據(jù)反饋,并且實時進(jìn)行顯示,使得該測試流執(zhí)行者可以實時地監(jiān)視該測試執(zhí)行 的進(jìn)度。此即時數(shù)據(jù)反饋還可以以圖形形式來提供數(shù)據(jù),以用于該數(shù)據(jù)的簡化闡釋。另外, 測試模塊開發(fā)者可以在對測試模塊進(jìn)行開發(fā)時使用此即時數(shù)據(jù)反饋,以對該測試模塊在被實時執(zhí)行時的性能和進(jìn)度進(jìn)行評估。在步驟630中,可以將與每個測試模塊的執(zhí)行相關(guān)聯(lián) 的原始數(shù)據(jù)編譯為一個或多個報告。在圖7中示出了用于描繪用以對原始結(jié)果數(shù)據(jù)進(jìn)行格式化的相關(guān)聯(lián)結(jié)果處理的 流程圖700。測試流執(zhí)行者在步驟701中通過選擇所期望的原始報告數(shù)據(jù)來開始。緊湊架 構(gòu)還可以包括報告處理器,該報告處理器操作為將在測試模塊執(zhí)行600期間收集的原始數(shù) 據(jù)變換為人類可讀的測試報告。該測試流執(zhí)行者可以在步驟702中選擇適當(dāng)?shù)臏y試報告處 理器。在步驟703中,702中所選擇的報告處理器操作為對在步驟701中選擇的被選原始 測試數(shù)據(jù)進(jìn)行變換,以生成測試報告。此測試報告可以包括關(guān)于UUT 120在測試流期間的 性能和與其性能相關(guān)聯(lián)的報告值的數(shù)據(jù),或者可以包括用于各種測試模塊或組件的“通過 (pass)”或“未通過(fail)”標(biāo)志。在測試流的執(zhí)行期間,測試執(zhí)行者可以控制測試流的操作,如圖8的流程圖800所 示。在步驟820中,測試流處于運(yùn)行狀態(tài)中,使得測試流600的執(zhí)行正在進(jìn)行中。該測試流 執(zhí)行者可以給出“停止(stop) ”命令821,使得該測試流從運(yùn)行狀態(tài)802直接進(jìn)入停止條件 860。此命令使該測試流的執(zhí)行中斷。替換地,該測試流執(zhí)行者可以鍵入“掛起(suspend)” 命令823。這將該測試流置于掛起狀態(tài)830中,使得緊湊架構(gòu)在以下線程處停止該測試流的 執(zhí)行,該線程運(yùn)行于正在該測試流中執(zhí)行的當(dāng)前測試模塊中。然后,該測試流可以前進(jìn)到暫 停狀態(tài)850。替換地,當(dāng)該測試流正在運(yùn)行時,該測試流執(zhí)行者可以鍵入“按照模塊暫停 (paused by module) ”命令824。這指令該緊湊架構(gòu)在完成當(dāng)前執(zhí)行的測試模塊時暫停該 測試流的執(zhí)行。然后,該緊湊架構(gòu)可以將該測試流置于按照模塊暫停狀態(tài)840中。當(dāng)完成 當(dāng)前運(yùn)行的模塊時,該測試流前進(jìn)到暫停狀態(tài)850。在處于暫停狀態(tài)中的時候,該測試流執(zhí) 行者可以鍵入“停止”命令821,以將該測試流置于停止?fàn)顟B(tài)860中。該測試流執(zhí)行者還可 以鍵入“重新開始(resume)”命令822,以將該測試流返回到運(yùn)行狀態(tài)820。該“重新開始” 命令822可以指令該測試流立即返回到運(yùn)行狀態(tài)820,或者在已滿足條件(例如,已經(jīng)過預(yù) 定的時間段、或該裝置處于某一溫度等)之后返回到運(yùn)行狀態(tài)。圖9圖示了用于執(zhí)行測試流的方法的詳細(xì)流程圖900。該測試流的執(zhí)行在步驟901 中開始。初始地,在步驟902中將該測試流的狀況設(shè)置為“運(yùn)行”。然后,緊湊架構(gòu)在步驟 903中發(fā)起用于執(zhí)行與該測試流相關(guān)聯(lián)的每個測試模塊的處理。步驟904確定測試流執(zhí)行 者是否已經(jīng)鍵入了模塊暫停命令824。如果已經(jīng)鍵入了模塊暫停命令824,則該處理前進(jìn)到 步驟922,并且將測試流狀況設(shè)置為“暫停(pause)”。基于在步驟923中的重新開始命令, 將該測試流設(shè)置回“運(yùn)行”,并且該測試流繼續(xù)。如果該執(zhí)行者沒有鍵入模塊暫停命令824, 則該測試流直接前進(jìn)到步驟905。在步驟905中,加載測試模塊程序,從而可以執(zhí)行該程序。在步驟906中,該測試模塊通過執(zhí)行子例程1(924)來開始運(yùn)行。然后,該測試流 前進(jìn)到步驟912,其中針對該測試流來對該測試模塊進(jìn)行初始化。這涉及對由測試模塊開發(fā) 者、測試流設(shè)計者或測試流執(zhí)行者定義的測試參數(shù)進(jìn)行加載。測試模塊實例在步驟913中 開始執(zhí)行。該測試模塊實例是指當(dāng)在步驟912中已經(jīng)進(jìn)行參數(shù)化之后的測試模塊,使得針 對具體的測試模塊來運(yùn)行特定的測試模塊實例。然后,該測試流在步驟914中前進(jìn)到預(yù)執(zhí) 行檢查,然后前進(jìn)到執(zhí)行和結(jié)果采集步驟915,并最終在步驟916中前進(jìn)到結(jié)果預(yù)處理。然 后,在步驟917中檢索結(jié)果。
然后,該測試流前進(jìn)到步驟907,其中通過執(zhí)行子例程2 (92 來記錄所述結(jié)果。在 步驟918中,該緊湊架構(gòu)首先確定是否已經(jīng)在該測試模塊的執(zhí)行期間對所述結(jié)果的狀況進(jìn) 行了評估。在所述結(jié)果處理已經(jīng)定義在該測試模塊的結(jié)果處理數(shù)據(jù)中的實例中,根據(jù)此定 義來處理所述結(jié)果,并且該處理繼續(xù)到步驟908。如果尚未這樣定義所述結(jié)果處理,則在步 驟919中將所述結(jié)果與輸入結(jié)果極限結(jié)盟(align)。在步驟920中,對所述結(jié)果進(jìn)行評估 920并且進(jìn)行記錄921。在步驟908中,然后向測試流執(zhí)行者報告所述結(jié)果和結(jié)果狀況。然 后,該緊湊架構(gòu)檢查該測試流,以確定是否存在要執(zhí)行的另一測試模塊,即步驟909。如果存 在,則該處理循環(huán)回到步驟904。如果不存在,則該處理前進(jìn)到步驟910,并且在步驟910中 將該測試流的狀況設(shè)置為“停止”。然后,該測試流在步驟911中終止。如可以領(lǐng)會的,各個測試流可以不存儲每個測試模塊的單獨(dú)實例。例如,在步驟 912中,當(dāng)在該測試流內(nèi)執(zhí)行每個測試模塊時,對測試模塊實例進(jìn)行初始化。雖然此測試模 塊實例由該測試流來訪問,但是該測試模塊仍可以維持在單一存儲器位置中。照這樣,當(dāng)測 試模塊開發(fā)者對測試模塊進(jìn)行修改時,不需要更新采用這個測試模塊的所有測試流。即,采 用這個測試模塊的每個測試流將執(zhí)行修改后的測試模塊。這防止了測試流將繼續(xù)采用過期 或廢棄的測試模塊的可能性。這還防止了測試設(shè)計者不得不連續(xù)地更新測試流,以在所述 測試流中反映每個測試模塊的最新版本。當(dāng)針對每個測試流來對測試模塊進(jìn)行初始化時, 將對最當(dāng)前版本的測試模塊進(jìn)行初始化。類似地,多個測試流可以這樣地利用單一測試模 塊。例如,如圖10所示,測試模塊4包括在測試流1、測試流2和測試流η中。在此情況下, 每個測試流將在執(zhí)行期間訪問測試模塊4的實例。盡管已經(jīng)在附圖和在前描述中詳細(xì)地圖示并描述了本發(fā)明,但是這種圖示和描述 要被認(rèn)為是示范性的并且本質(zhì)上不是約束性的。例如,在上文中描述的某些實施例可與其 他所描述的實施例進(jìn)行組合和/或以其他方式來進(jìn)行安排(例如,可以以其他次序來執(zhí)行 處理元件)。相應(yīng)地,應(yīng)該理解,僅僅已經(jīng)示出并描述了本發(fā)明的優(yōu)選實施例及其變形,并且 期望保護(hù)進(jìn)入本發(fā)明的精神內(nèi)的所有改變和修改。
權(quán)利要求
1.一種使用緊湊架構(gòu)的用于自動化測試的系統(tǒng),包括多個功能,包括以下各項中的至少一個測試模塊的開發(fā)、測試流的開發(fā)和測試流的執(zhí)行;認(rèn)證器,能操作為確定用戶的特性,所述特性定義了所述用戶能夠執(zhí)行所述一個或多 個功能中的哪一個;以及圖形用戶界面,對應(yīng)于所述多個功能。
2.根據(jù)權(quán)利要求1的系統(tǒng),還包括自動化測試設(shè)備,操作為執(zhí)行所述緊湊架構(gòu),以對單元進(jìn)行測試。
3.根據(jù)權(quán)利要求1的系統(tǒng),還包括數(shù)據(jù)顯示器,能操作為顯示與所述緊湊架構(gòu)的執(zhí)行相關(guān)聯(lián)的實時數(shù)據(jù)。
4.根據(jù)權(quán)利要求3的系統(tǒng),其中所述數(shù)據(jù)顯示器操作為顯示所述實時數(shù)據(jù)的圖形表示。
5.根據(jù)權(quán)利要求1的系統(tǒng),其中所述緊湊架構(gòu)還包括結(jié)果處理器,操作為將數(shù)據(jù)格式化為多個用戶定義的報告格式。
6.根據(jù)權(quán)利要求1的系統(tǒng),其中所述測試模塊的開發(fā)包括源代碼的修改,并且其中所 述緊湊架構(gòu)操作為對所述源代碼進(jìn)行編譯和加載。
7.根據(jù)權(quán)利要求6的系統(tǒng),其中所述緊湊架構(gòu)操作為在運(yùn)行時間動態(tài)地執(zhí)行所述源代碼。
8.根據(jù)權(quán)利要求1的系統(tǒng),其中所述測試模塊的開發(fā)包括指定外部過程調(diào)用。
9.根據(jù)權(quán)利要求2的系統(tǒng),還包括 多個所述自動化測試設(shè)備。
10.一種使用緊湊架構(gòu)的用于自動化測試的方法,包括以下步驟 執(zhí)行所述緊湊架構(gòu);確定第一用戶的特性;定義包括測試模塊的開發(fā)、測試流的開發(fā)和測試流的執(zhí)行的一個或多個功能;以及 取決于所述用戶特性來向所述第一用戶提供所述一個或多個功能中的至少一個。
11.根據(jù)權(quán)利要求10的方法,其中所述測試流包括多個測試模塊。
12.根據(jù)權(quán)利要求10的方法,還包括顯示與所述緊湊架構(gòu)的所述執(zhí)行相關(guān)的實時數(shù)據(jù)。
13.根據(jù)權(quán)利要求10的方法,還包括 使所述提供步驟中止;確定第二用戶的特性;取決于所述第二用戶的特性來向所述第二用戶提供所述一個或多個功能中的至少一 個,其中所述一個或多個功能中的所述至少一個針對所述第二用戶和所述第一用戶不同。
14.根據(jù)權(quán)利要求10的方法,還包括 執(zhí)行測試模塊;根據(jù)測試模塊的所述執(zhí)行來生成原始結(jié)果數(shù)據(jù);以及 使用被格式化為用戶定義的報告格式的所述原始結(jié)果數(shù)據(jù)來生成報告。
15.根據(jù)權(quán)利要求10的方法,還包括執(zhí)行測試模塊;執(zhí)行包括所述測試模塊的測試流; 接收命令;以及響應(yīng)于所述命令,暫停所述測試流的執(zhí)行,使得所述測試流掛起所述測試模塊的執(zhí)行。
16.根據(jù)權(quán)利要求15的方法,還包括 重新開始所述測試流的執(zhí)行。
17.根據(jù)權(quán)利要求10的方法,還包括 執(zhí)行測試模塊; 執(zhí)行包括所述測試模塊的測試流; 接收命令;以及響應(yīng)于所述命令,在完成所述測試模塊的執(zhí)行之后暫停所述測試流的執(zhí)行。
18.根據(jù)權(quán)利要求17的方法,還包括 重新開始所述測試流的執(zhí)行。
19.一種用于自動化測試的緊湊架構(gòu),包括測試模塊開發(fā)組件,操作為對測試模塊進(jìn)行開發(fā)和定義;多個測試模塊,其中所述測試模塊中的每一個包括參數(shù)數(shù)據(jù)和結(jié)果處理數(shù)據(jù),并且其 中所述多個測試模塊中的每一個操作為對受測單元執(zhí)行測試;配置模塊,操作為定義測試流,該測試流包括所述多個測試模塊中的至少一個;以及 執(zhí)行模塊,操作為執(zhí)行所述測試流;其中一個或多個用戶取決于所述一個或多個用戶的特性來執(zhí)行所述測試模塊、所述配 置模塊和所述執(zhí)行模塊。
20.根據(jù)權(quán)利要求19的用于自動化測試的緊湊架構(gòu),還包括結(jié)果報告,包括由所述執(zhí)行模塊生成的、響應(yīng)于所述一個或多個用戶的輸入而格式化 的原始數(shù)據(jù)。
全文摘要
提供了一種使用緊湊架構(gòu)的用于自動化測試的系統(tǒng)和方法(“效用”)。該效用包括多個功能,所述多個功能包括測試模塊的開發(fā)、測試流的開發(fā)和測試流的執(zhí)行。可以通過該緊湊架構(gòu)來對這些功能中的每一個進(jìn)行分離,使得可以將自動化測試功能劃分為各個職責(zé)。該各個職責(zé)可以包括測試開發(fā)者、測試流設(shè)計者和測試流執(zhí)行者。該效用還可以包括認(rèn)證器,該認(rèn)證器可操作為(例如,使用GUI來)確定用戶的各個職責(zé),并且提供與這個職責(zé)對應(yīng)的功能。該效用可以提供用于提供實時數(shù)據(jù)反饋的一個或多個顯示。此外,該效用能夠操作為生成定做的測試結(jié)果報告,該測試結(jié)果報告使得用戶能夠分析一個或多個受測裝置的性能。
文檔編號G06F11/26GK102144221SQ200980134475
公開日2011年8月3日 申請日期2009年9月3日 優(yōu)先權(quán)日2008年9月4日
發(fā)明者丁亞超, 祝國華 申請人:弗萊克斯電子有限責(zé)任公司