本發(fā)明屬于測試測量技術(shù)領(lǐng)域,具體涉及一種并行測試任務(wù)的同步觸發(fā)執(zhí)行方法。
背景技術(shù):
近年來,并行測試技術(shù)在測試測量領(lǐng)域備受關(guān)注且得到了越來越廣泛的應(yīng)用。以半導(dǎo)體測試行業(yè)所采用并行測試技術(shù)為例,目前配套自動測試設(shè)備(automatictestequipment,ate)/系統(tǒng)(automatictestsystem,ats)通常利用測試夾具一次裝載一批待測件,并發(fā)執(zhí)行這些uut測試任務(wù)(線程或進程)。這些ate/ats有效提高了測試效率與測試吞吐率。但是,由于所采用并行測試環(huán)境主要是單處理器非實時操作系統(tǒng)(如windows),因而難以實現(xiàn)嚴格意思上的同一時刻執(zhí)行多個uut測試任務(wù),只是極短時間間隔內(nèi)的多線程/多進程并發(fā)處理。一般做法如圖1所示,整體上,操作用戶首先通過測試任務(wù)操作界面依次啟動各個uut測試任務(wù),然后各個uut測試任務(wù)獨立并發(fā)執(zhí)行,相互之間無影響,輪流占用處理器時間與儀表設(shè)備資源;局部上看,單個uut測試任務(wù)按次序調(diào)整測試基本信息、執(zhí)行各個預(yù)定測試動作(包括測試狀態(tài)設(shè)置、信號激勵、信號測量、數(shù)據(jù)采集、存儲記錄、報表生成…)直到所有測試動作執(zhí)行完畢后,視條件換下一個uut繼續(xù)進行處理,如此循環(huán)反復(fù)直到完成所有uut的批量測試。歸納起來,可以說是“整體并行化異步并發(fā)執(zhí)行、局部串行化順序處理”。顯然,目前這種執(zhí)行處理方式存在不足:各個uut測試任務(wù)從執(zhí)行啟動到執(zhí)行就緒之間存在逐漸增加的不確定時間延遲,這種時延隨著uut測試任務(wù)并發(fā)數(shù)目的增加越發(fā)明顯,因而無法適用于多個uut測試任務(wù)要求“同時執(zhí)行”的時間敏感場景需求。
并行測試技術(shù)是為了解決串行順序測試技術(shù)測試效率低、資源利用率低的問題而提出的。傳統(tǒng)的串行順序測試在同一個時刻或同一時間間隔內(nèi)只能對一個uut測試任務(wù)進行處理,而并行測試技術(shù)則能夠“同時執(zhí)行”多個uut測試任務(wù)。這不僅能夠提高測試效率、縮短測試時間,而且可以減少各個測試資源的空閑等待狀態(tài)時間,讓多個uut共享有限且寶貴的測試資源,有效節(jié)約測試成本。目前,并行測試技術(shù)的應(yīng)用主要集中在半導(dǎo)體生產(chǎn)測試、軟件測試、通訊產(chǎn)品協(xié)議一致性測試與裝備維修檢測等領(lǐng)域。國內(nèi)對并行測試技術(shù)的研究方興未艾,相關(guān)研究成果主要集中在并行測試系統(tǒng)的體系結(jié)構(gòu)、系統(tǒng)模型與任務(wù)調(diào)度等方面,尚未形成系統(tǒng)理論。
2.1.1并行測試系統(tǒng)的概念
傳統(tǒng)的自動測試系統(tǒng)采用的測試方法是基于串行概念的順序測試(sequencetest),其基本思路如圖2所示。當對一個uut進行測試任務(wù)執(zhí)行時,其測試動作按預(yù)先順序進行處理,一直到其所有動作處理完畢后,才能夠開始處理后續(xù)的uut測試任務(wù)。若存在多個uut測試任務(wù)執(zhí)行時,則是按照預(yù)先設(shè)定的順序依次進行處理,即一個uut測試任務(wù)處理完畢才開始執(zhí)行下一個uut測試任務(wù)。
下面給出區(qū)別于傳統(tǒng)順序測試的并行測試系統(tǒng)概念。
定義1.1并行測試系統(tǒng):測試系統(tǒng)處理器在同一時間間隔內(nèi)按照一定的調(diào)度策略將輸入系統(tǒng)存儲設(shè)備中多個測試對象的測試任務(wù)序列有效并行處理,測試系統(tǒng)在同一時間段內(nèi)可運行多項測試任務(wù)。測試任務(wù)序列劃分的依據(jù)是考慮任務(wù)之間的數(shù)據(jù)無關(guān)、資源無關(guān)和控制無關(guān)等因素。并行測試系統(tǒng)是在傳統(tǒng)串行測試系統(tǒng)的基礎(chǔ)上通過資源的整合和軟件運行模式的改變演化而來的。
目前,并行測試系統(tǒng)的架構(gòu)按照所使用處理器數(shù)目可劃分為單處理器并行測試結(jié)構(gòu)和多處理器并行測試結(jié)構(gòu)。其中,多處理器并行測試結(jié)構(gòu)具有兩個以上的處理器,通過高速通訊總線、共享存儲空間或輸入/輸出系統(tǒng)進行測試,對軟硬件資源均有較高的要求。按多處理器之間的關(guān)系分為分布式處理結(jié)構(gòu)和主從處理結(jié)構(gòu)兩類。分布式并行測試結(jié)構(gòu)中的每臺計算機均可獨立高效地執(zhí)行測試任務(wù),并通過高速網(wǎng)絡(luò)來實現(xiàn)測試同步和資源共享;主從處理器結(jié)構(gòu)則是利用處于從屬地位且功能單一的從處理器來分擔主處理器的部分工作,以減輕主處理器的負擔、提高測試效率。單處理器并行測試結(jié)構(gòu)則是通過對不同測試任務(wù)的調(diào)度來分配單個處理器處理任務(wù)的時間從而實現(xiàn)并行測試。其中的測試任務(wù)以多個線程(multiplethreads)或多個進程(multipleprocesses)的形式存在,通過中央處理器(centralprocessingunit,cpu)處理器在線程或進程間的切換來完成測試執(zhí)行處理。兩者比較而言,多處理器并行測試結(jié)構(gòu)對系統(tǒng)的硬件要求較高、結(jié)構(gòu)復(fù)雜,單處理器并行測試結(jié)構(gòu)的硬件要求較低、結(jié)構(gòu)簡單。因而,普遍適用且能有效降低測試成本的還是單處理器并行測試結(jié)構(gòu)。
2.1.2并行測試技術(shù)的優(yōu)勢
并行測試技術(shù)通過對測試資源的優(yōu)化利用,大大提高了測試吞吐率、提高了測試資源利用率、縮減了測試時間,進而有效節(jié)約了測試成本。主要表現(xiàn)為:
提高測試吞吐率。并行測試系統(tǒng)通過多種方式實現(xiàn)測試資源的動態(tài)分配與優(yōu)化調(diào)度,能夠在同一時間內(nèi)并發(fā)地執(zhí)行多個uut測試任務(wù)。從批量測試的角度看來,通過增加單位時間內(nèi)uut的數(shù)量就能夠提高整個測試系統(tǒng)的效率。測試系統(tǒng)的效率越高,對測試吞吐率的提高程度就越高。
提高測試資源利用率。并行測試對測試資源利用率的提高主要包括兩點,一是盡量使測試資源處于工作狀態(tài),二是使測試資源得到充分的利用。并行測試任務(wù)不斷地運行,申請測試資源地使用,測試資源一旦閑置就再次被新的測試任務(wù)申請使用。在理想情況下,整個測試過程中測試資源一直處于工作狀態(tài),即測試資源在整個測試的過程中一直處于非空閑狀態(tài)。
縮減測試時間。據(jù)統(tǒng)計,采用順序測試方式時,處理器約80%的時間處于空閑狀態(tài)。以美國ni(nationalinstruments)公司測試管理軟件teststand的實驗結(jié)果為例:在單處理器多線程并行條件下,利用teststand軟件運行同樣的uut測試任務(wù)序列,其并行測試模式下耗費時間比串行順序模式下耗費時間縮減約33%。測試時間縮減效果比較明顯。
2.2現(xiàn)有技術(shù)實現(xiàn)方案
2.2.1并行測試的實現(xiàn)方式
并行測試的實現(xiàn)方式主要有三種形式:第一種是針對多個uut的并行測試,其任務(wù)調(diào)度的對象是各個uut測試任務(wù),每個uut對應(yīng)一個uut測試任務(wù);第二種是單個uut上多個測試任務(wù)的并行測試,其任務(wù)調(diào)度的對象是同一個uut的多個測試任務(wù);第三種則是前面兩種形式的結(jié)合,即調(diào)度對象是多個uut的多個測試任務(wù)。鑒于這些不同規(guī)模的測試任務(wù)之間需要避免死鎖、競爭和饑餓等問題,第一種形式顯然實現(xiàn)起來最為簡單直接,因而也被主流成熟并行測試軟件所普遍采用。這些并行測試軟件包括美國nl公司teststand、美國tyx公司的testbase等,它們均提供了針對多個uut的并行測試解決方案,以uut為粒度單元進行任務(wù)調(diào)度。
以美國nl公司所提供的teststand軟件為例,teststand采用基于單處理器多線程的并行測試結(jié)構(gòu),其任務(wù)調(diào)度采用系統(tǒng)軟件設(shè)計中常用的基于優(yōu)先級的搶占調(diào)度方法,要求一種uut對應(yīng)一個測試序列,可設(shè)置測試序列優(yōu)先級,利用鎖(lock)對象來確保多uut競爭時某個uut對資源的獨占性。teststand的并行測試提供兩種模型:批量過程模型(batchprocessmodel)和并行過程模型(parallelprocessmodel),如圖3所示。其中,批量過程模型中將多個uut測試任務(wù)作為一組,確保該組中的多個uut測試任務(wù)同時開始執(zhí)行且等待處理同時結(jié)束。批量過程模型默認情況下不關(guān)心中間測試動作項,所有的uut測試動作項在執(zhí)行過程中是完全獨立且并行的。比較而言,批量過程模型下uut必須等待最慢的uut測試任務(wù)完畢后才能算是測試結(jié)束,顯然處于閑置狀態(tài)的測試時間較長。批量過程模型較多應(yīng)用于半導(dǎo)體生產(chǎn)測試領(lǐng)域;并行過程模型的應(yīng)用較為普遍,該模型下各個uut測試任務(wù)完全獨立且互不影響。針對單個uut而言,其測試執(zhí)行是按順序串行處理的,從啟動測試直到所有測試動作執(zhí)行完畢,之后視情況更換下一個uut繼續(xù)進行處理。理想狀態(tài)下測試執(zhí)行過程中不存在競爭、死鎖等問題,可大幅度提高測試效率與測試吞吐率。
綜上所述,無論是批量過程模型,還是并發(fā)處理模型,由于并行測試系統(tǒng)中所采用并行測試環(huán)境主要是單處理器非實時操作系統(tǒng)(如windows),加上儀表設(shè)備、測試接口裝置等臨界資源的約束限制,實際上目前的各種并行測試系統(tǒng)并沒有真正實現(xiàn)“同時執(zhí)行”多個uut測試任務(wù),而僅僅實現(xiàn)了固定時間間隔內(nèi)的uut測試任務(wù)并發(fā)執(zhí)行處理。
下面描述一下目前已有并行測試系統(tǒng)中的并行測試任務(wù)執(zhí)行方法。
2.2.2已有的并行測試任務(wù)執(zhí)行方法
目前已有的并行測試任務(wù)執(zhí)行方法,主要側(cè)重于利用成熟技術(shù)與貨架軟硬件資源進行綜合集成,歸納起來可以說是“整體上并發(fā)執(zhí)行、局部串行化順序處理”。下面以應(yīng)用較為普遍的teststand軟件并行過程模型(parallelprocessmodel)為例加以說明:如圖1所示,整體上,操作用戶首先利用測試任務(wù)操作界面依次啟動各個uut測試任務(wù),然后各個uut測試任務(wù)獨立并發(fā)執(zhí)行,相互之間無影響,輪流占用處理器時間與儀表設(shè)備資源;局部上看,單個uut測試任務(wù)按次序調(diào)整測試基本信息、執(zhí)行各個預(yù)定測試動作(包括測試狀態(tài)設(shè)置、信號激勵、信號測量、數(shù)據(jù)采集、存儲記錄、報表生成…)直到所有測試動作執(zhí)行完畢后,視用戶操作條件換下一個uut繼續(xù)進行處理,如此循環(huán)反復(fù)直到完成所有uut的批量測試。顯然,從執(zhí)行流程上看,這種執(zhí)行方法是“整體并行化異步并發(fā)執(zhí)行、局部串行化順序處理”。
因而,這種并行測試任務(wù)執(zhí)行方法存在不足:各個uut測試任務(wù)從啟動到就緒之間存在逐漸增加的不確定時間延遲,無法適用于各個uut測試任務(wù)“同時執(zhí)行”的時間敏感場景需求。隨著uut并行規(guī)模的增加,uut測試任務(wù)并發(fā)數(shù)目必然增多,這種不確定的時延現(xiàn)象越發(fā)嚴重!
現(xiàn)有的多個uut并行測試任務(wù)執(zhí)行處理技術(shù),由操作用戶通過軟件測試任務(wù)操作界面依次啟動各個uut測試任務(wù),然后各個uut測試任務(wù)依次就緒并獨立并發(fā)執(zhí)行,輪流占用處理器時間與儀表設(shè)備資源完成相關(guān)測試動作。該技術(shù)存在如下缺點:
1、各個uut測試任務(wù)從執(zhí)行啟動到功能就緒之間存在不確定的時間延遲。由于并行測試運行環(huán)境是單處理器非實時操作系統(tǒng)(如windows),技術(shù)實現(xiàn)上采用的是多進程或多線程結(jié)構(gòu),均是通過處理器在進程間或線程間切換來完成處理,這就必然會占用處理器cpu時間與內(nèi)存資源,因而時間延遲不可避免。uut測試任務(wù)的依次啟動處理,本質(zhì)上是一個創(chuàng)建線程或加載進程、功能就緒初始化的過程。啟動處理過程所占用的cpu時間越長,也就意味著uut測試任務(wù)就緒的時間延遲量越大。同時,由于這個啟動處理過程存在著與其它線程或進程之間的處理器資源競爭,各個uut測試任務(wù)執(zhí)行的這種時延間隔必然是不確定的。
2、無法實現(xiàn)各個uut測試任務(wù)“同時執(zhí)行”的需求場景。“同時執(zhí)行”,意味著各個uut并行測試任務(wù)必須在同一時刻或者極短時間間隔內(nèi)并發(fā)執(zhí)行。uut測試任務(wù)從執(zhí)行啟動到就緒之間所存在的不確定時延,必然導(dǎo)致難以實現(xiàn)“同時執(zhí)行”。而且,隨著uut測試任務(wù)數(shù)并發(fā)目的增加,這種時間延遲的不確定性越發(fā)明顯。因而,現(xiàn)有技術(shù)無法適用于多個uut測試任務(wù)要求“同時執(zhí)行”的時間敏感場景需求。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中存在的上述技術(shù)問題,本發(fā)明提出了一種并行測試任務(wù)的同步觸發(fā)執(zhí)行方法,設(shè)計合理,克服了現(xiàn)有技術(shù)的不足,能夠有效解決uut測試任務(wù)的執(zhí)行時間延遲不確定且受uut并行測試數(shù)目影響的問題,具有良好的效果。
為了實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種并行測試任務(wù)的同步觸發(fā)執(zhí)行方法,包括如下步驟:
步驟1:設(shè)計uut測試任務(wù)同步觸發(fā)器,提供其屬性參數(shù)與功能函數(shù)的應(yīng)用編程接口;
步驟2:設(shè)計uut測試任務(wù)操作界面,提供測試狀態(tài)顯示區(qū)域與uut測試過程控制功能按鈕;
步驟3:設(shè)計uut測試任務(wù)操作界面的測試過程配置按鈕,注冊回調(diào)函數(shù)為彈出測試過程配置窗口;
步驟4:設(shè)計uut測試任務(wù)操作界面的測試過程啟動按鈕,注冊回調(diào)函數(shù)為所有同步觸發(fā)器的觸發(fā)狀態(tài)依次設(shè)置為激活狀態(tài);
步驟5:設(shè)計uut測試任務(wù)操作界面的測試過程停止按鈕,注冊回調(diào)函數(shù)為停止正在運行中的uut測試任務(wù);
步驟6:設(shè)計uut測試任務(wù)操作界面的測試過程退出按鈕,注冊回調(diào)函數(shù)為退出當前人機交互界面;
步驟7:操作用戶通過uut測試任務(wù)操作界面進行uut測試過程的控制選項參數(shù)調(diào)整與設(shè)置;
步驟8:操作用戶通過uut測試任務(wù)操作界面進行uut測試任務(wù)的啟動、停止或退出操作。
優(yōu)選地,在步驟1中,同步觸發(fā)器的屬性參數(shù)至少包括控制句柄id、觸發(fā)類型、觸發(fā)狀態(tài)與觸發(fā)動作;功能函數(shù)至少包括創(chuàng)建觸發(fā)器、觸發(fā)類型設(shè)置、觸發(fā)狀態(tài)設(shè)置、觸發(fā)動作注冊與釋放觸發(fā)器;
其中,控制句柄id為唯一數(shù)值,規(guī)定大于0為正常成功狀態(tài),小于0為異常失敗狀態(tài),等于0表示觸發(fā)器已進行資源釋放;單個同步觸發(fā)器對應(yīng)一個uut測試任務(wù),且通過該控制句柄id來進行資源申請、參數(shù)配置、功能調(diào)用與資源釋放;
觸發(fā)類型至少包括立即執(zhí)行和延遲執(zhí)行,延遲時間可設(shè)置,而且時間控制精度與并發(fā)任務(wù)執(zhí)行的時間延遲同量級;
觸發(fā)狀態(tài)至少包括激活與無效兩種;激活狀態(tài)下依據(jù)觸發(fā)類型進行觸發(fā)動作執(zhí)行且不允許進行觸發(fā)動作重新注冊;無效狀態(tài)下觸發(fā)器的觸發(fā)動作處于失去執(zhí)行能力且允許進行觸發(fā)動作的注冊;
觸發(fā)動作至少允許指定為當前有效的測試動作序列、可執(zhí)行測試應(yīng)用程序或動態(tài)庫模式測試應(yīng)用程序媒體文件,觸發(fā)動作在觸發(fā)激活狀態(tài)下立刻響應(yīng)執(zhí)行且正常結(jié)束后自動變更觸發(fā)狀態(tài)為無效;
觸發(fā)類型缺省設(shè)置為立即執(zhí)行,觸發(fā)狀態(tài)缺省設(shè)置為無效,觸發(fā)動作缺省注冊為uut測試任務(wù)動作序列。
優(yōu)選地,在步驟2中,測試狀態(tài)顯示區(qū)域至少包括uut測試基本信息、uut測試過程狀態(tài)與用戶操作記錄;uut測試基本信息至少包括操作用戶、測試時間、測試環(huán)境、測試資源以及測試對象的名稱和相關(guān)屬性;uut測試過程狀態(tài)包括未裝載(unloaded)、就緒(ready)、運行中(running)、暫停(halted)、已完成(finish)與未知(unknown);用戶操作記錄顯示用戶通過uut測試任務(wù)操作界面所產(chǎn)生的日志信息與異常錯誤信息;
uut測試過程控制功能按鈕至少包括配置按鈕、啟動按鈕、停止按鈕與退出按鈕;配置按鈕用于輔助用戶對測試過程模型、測試工位并發(fā)數(shù)目與uut測試任務(wù)應(yīng)用程序進行設(shè)置,測試過程模型至少提供順序過程模型、并行過程模型與批量過程模型三種,測試工位并發(fā)數(shù)目與uut測試任務(wù)并發(fā)數(shù)目保持一致、uut測試任務(wù)并發(fā)數(shù)目與觸發(fā)器數(shù)目保持一致,uut測試任務(wù)應(yīng)用程序被指定為當前有效的測試動作序列、可執(zhí)行測試應(yīng)用程序或動態(tài)庫模式測試應(yīng)用程序媒體文件;啟動按鈕用于輔助用戶來控制uut測試任務(wù)在后臺進行自動執(zhí)行,并在更新各個uut測試任務(wù)的測試過程狀態(tài);停止按鈕用于輔助用戶強制終止正在運行中的uut測試任務(wù);退出按鈕用于輔助用戶退出當前的uut測試任務(wù)操作界面;功能按鈕的無效屬性的控制關(guān)系設(shè)置為:進入uut測試任務(wù)操作界面時,停止按鈕無效為真,其他按鈕無效為假;啟動按鈕執(zhí)行后,停止按鈕無效為假,其他按鈕無效為真;停止按鈕執(zhí)行后,所有按鈕無效為真;單個uut測試任務(wù)執(zhí)行完成且進行uut測試過程狀態(tài)顯示時,若所有uut測試過程狀態(tài)均不是運行中,則停止按鈕無效為真、其他按鈕無效為假。
優(yōu)選地,在步驟3中,測試過程配置窗口控制選項至少包括測試過程模型、測試工位并發(fā)數(shù)目與uut測試任務(wù)應(yīng)用程序;調(diào)整完畢確認成功后返回uut測試任務(wù)操作界面時,按照控制選項參數(shù)進行自動配置,按照測試工位并發(fā)數(shù)目依次進行觸發(fā)器創(chuàng)建與觸發(fā)器屬性參數(shù)設(shè)置,觸發(fā)狀態(tài)設(shè)置為無效、觸發(fā)動作注冊為所選uut測試任務(wù)應(yīng)用程序;
其中,測試過程模型至少提供順序過程模型、并行過程模型與批量過程模型三種,缺省為并行過程模型;測試工位并發(fā)數(shù)目與uut測試任務(wù)并發(fā)數(shù)目對應(yīng),限制數(shù)值為≥1、小于最大uut并發(fā)數(shù)目,缺省數(shù)值為4;uut測試任務(wù)應(yīng)用程序被指定為當前有效的測試動作序列、可執(zhí)行測試應(yīng)用程序或動態(tài)庫模式測試應(yīng)用程序媒體文件。
優(yōu)選地,在步驟4中,所述注冊回調(diào)函數(shù)的代碼執(zhí)行優(yōu)化為最少時間耗費,當單個觸發(fā)器的狀態(tài)設(shè)置為激活時,其觸發(fā)動作立刻被執(zhí)行到,當所有觸發(fā)器批量激活時,觸發(fā)動作所指定uut測試任務(wù)能夠同時被執(zhí)行到。
優(yōu)選地,在步驟5中,具體包括如下步驟:
步驟5.1:依次判斷各個uut測試過程狀態(tài)是否在運行中;
若:判斷結(jié)果為各個uut測試過程狀態(tài)沒有在運行中,則略過當前uut測試過程處理;
或判斷結(jié)果為各個uut測試過程狀態(tài)在運行中,則設(shè)置相應(yīng)的觸發(fā)器激活狀態(tài)無效,等待后臺觸發(fā)動作所執(zhí)行的uut測試任務(wù)退出,并同步更新測試狀態(tài)顯示;
步驟5.2:相應(yīng)觸發(fā)器的觸發(fā)動作依據(jù)測試過程具體情況對觸發(fā)無效狀態(tài)進行響應(yīng),觸發(fā)動作執(zhí)行結(jié)束時,判斷觸發(fā)狀態(tài)是否為激活,若是則設(shè)置觸發(fā)狀態(tài)為無效;
步驟5.3判斷觸發(fā)動作執(zhí)行返回狀態(tài);
若:判斷結(jié)果為觸發(fā)動作執(zhí)行返回狀態(tài)正常,則同步更新uut測試過程狀態(tài)為已完成;
或判斷結(jié)果為觸發(fā)動作執(zhí)行返回狀態(tài)不正常,則同步更新uut測試過程狀態(tài)為暫停。
優(yōu)選地,在步驟6中,依次根據(jù)各個觸發(fā)器判斷觸發(fā)狀態(tài)是否為無效;
若:判斷結(jié)果為觸發(fā)狀態(tài)為無效,則提示等待;
或判斷結(jié)果為觸發(fā)狀態(tài)為有效,則依次釋放各個觸發(fā)器資源以及uut測試任務(wù)操作界面相關(guān)資源。
優(yōu)選地,在步驟7中,可調(diào)整控制選項參數(shù)至少包括測試過程模型、測試工位并發(fā)數(shù)目、uut測試任務(wù)應(yīng)用程序;測試工位并發(fā)數(shù)目與觸發(fā)器數(shù)目對應(yīng),uut測試任務(wù)應(yīng)用程序與觸發(fā)動作對應(yīng);控制選項參數(shù)調(diào)整完畢后,若測試過程模型為并行過程模型,則按照觸發(fā)器數(shù)目進行觸發(fā)器創(chuàng)建與觸發(fā)器屬性參數(shù)設(shè)置,其中觸發(fā)類型設(shè)置為立即執(zhí)行、觸發(fā)狀態(tài)設(shè)置為無效、觸發(fā)動作注冊為所選uut測試任務(wù)應(yīng)用程序。
優(yōu)選地,在步驟8中,具體包括如下步驟:
步驟8.1:響應(yīng)uut測試任務(wù)操作界面的測試過程人機界面交互;若為啟動按鈕執(zhí)行,則執(zhí)行步驟8.2;否則,繼續(xù)空閑等待;
步驟8.2:將各個uut測試任務(wù)觸發(fā)器的觸發(fā)狀態(tài)都設(shè)置為激活,更新所有功能按鈕的無效狀態(tài);
步驟8.3:各個uut測試任務(wù)觸發(fā)器對應(yīng)的觸發(fā)動作按照預(yù)先設(shè)定進行自動響應(yīng)執(zhí)行,各個測試任務(wù)功能就緒;
步驟8.4:單個uut測試任務(wù)觸發(fā)器對應(yīng)的觸發(fā)動作執(zhí)行處理,即調(diào)整uut測試基本信息、執(zhí)行所注冊觸發(fā)動作的uut測試任務(wù)應(yīng)用程序以及通知uut測試任務(wù)操作界面進行測試執(zhí)行狀態(tài)顯示;
步驟8.5:響應(yīng)操作用戶通過uut測試任務(wù)操作界面所進行的人工干預(yù);若為停止按鈕操作,則更新所有功能按鈕的無效狀態(tài),然后執(zhí)行步驟8.7;
步驟8.6:單個uut測試任務(wù)的觸發(fā)動作執(zhí)行完畢后,設(shè)置當前觸發(fā)器的觸發(fā)狀態(tài)為無效,提示并引導(dǎo)用戶確定是否處理下一個uut測試任務(wù);若處理下一個uut測試任務(wù),則設(shè)置當前觸發(fā)器的觸發(fā)狀態(tài)為激活,然后執(zhí)行步驟8.3;否則,執(zhí)行步驟8.7;
步驟8.7:更新uut測試過程狀態(tài)顯示與用戶操作記錄日志顯示;
步驟8.8:響應(yīng)uut測試任務(wù)操作界面的測試過程人機界面交互;若為啟動按鈕執(zhí)行,則執(zhí)行步驟8.2;若為退出按鈕執(zhí)行,則依次釋放各個觸發(fā)器資源以及uut測試任務(wù)操作界面相關(guān)資源。
本發(fā)明所帶來的有益技術(shù)效果:
本發(fā)明所提出的并行測試任務(wù)的同步觸發(fā)執(zhí)行方法,基于同步觸發(fā)器搭建各個uut測試任務(wù)的測試過程控制機制,利用觸發(fā)器屬性參數(shù)設(shè)置和功能函數(shù)調(diào)用來完成測試過程控制選項的預(yù)先調(diào)整與設(shè)置,當用戶通過測試任務(wù)操作界面來啟動uut測試任務(wù)時,可立刻執(zhí)行所注冊的所有uut測試任務(wù)應(yīng)用程序;本發(fā)明具有uut測試任務(wù)的執(zhí)行時間延遲穩(wěn)定可設(shè)且不受uut并行測試數(shù)目影響的優(yōu)點,尤其適用于要求各個uut測試任務(wù)“同時執(zhí)行”的需求場景。
附圖說明
圖1為待測件測試任務(wù)執(zhí)行的流程圖。
圖2為順序測試任務(wù)執(zhí)行示意圖。
圖3為批量過程模型和并行過程模型的示意圖。
圖4為本發(fā)明方法的流程框圖。
圖5為本發(fā)明方法的動作關(guān)系示意圖。
具體實施方式
下面結(jié)合附圖以及具體實施方式對本發(fā)明作進一步詳細說明:
一種并行測試任務(wù)的同步觸發(fā)執(zhí)行方法,其流程如圖4所示,動作關(guān)系如圖5所示,針對多個uut測試任務(wù)“同時執(zhí)行”的需求場景,基于同步觸發(fā)器搭建各個uut測試任務(wù)的測試過程控制機制,利用觸發(fā)器屬性參數(shù)設(shè)置和功能函數(shù)調(diào)用來完成測試過程控制選項的預(yù)先調(diào)整與設(shè)置。當用戶通過測試任務(wù)操作界面來啟動uut測試任務(wù)時,可立刻執(zhí)行所注冊的所有uut測試任務(wù)應(yīng)用程序,進而有效改善uut測試任務(wù)并發(fā)執(zhí)行的時延現(xiàn)象。具體包括如下步驟:
步驟100,設(shè)計uut測試任務(wù)同步觸發(fā)器,提供屬性參數(shù)與功能函數(shù)api(applicationprogramminginterface);
步驟102,設(shè)計uut測試任務(wù)操作界面,提供測試狀態(tài)顯示區(qū)域與uut測試過程控制功能按鈕;
步驟104,設(shè)計uut測試任務(wù)操作界面的測試過程配置按鈕,注冊回調(diào)函數(shù)為彈出測試過程配置窗口;
步驟106,設(shè)計uut測試任務(wù)操作界面的測試過程啟動按鈕,注冊回調(diào)函數(shù)為所有同步觸發(fā)器的觸發(fā)狀態(tài)依次設(shè)置為激活狀態(tài);
步驟108,設(shè)計uut測試任務(wù)操作界面的測試過程停止按鈕,注冊回調(diào)函數(shù)為停止正在運行中的uut測試任務(wù);
步驟110,設(shè)計uut測試任務(wù)操作界面的測試過程退出按鈕,注冊回調(diào)函數(shù)為退出當前人機交互界面;
步驟112,操作用戶通過uut測試任務(wù)操作界面進行uut測試過程的控制選項參數(shù)調(diào)整與設(shè)置;
步驟114,操作用戶通過uut測試任務(wù)操作界面進行uut測試任務(wù)的啟動、停止或退出操作。
在步驟100中,具體包括:
a、利用處理器內(nèi)部高精度時鐘發(fā)生器和操作系統(tǒng)提供的異步定時器或線程池機制來設(shè)計同步觸發(fā)器,提供屬性參數(shù)與功能函數(shù)api。其中屬性參數(shù)至少包括控制句柄id、觸發(fā)類型、觸發(fā)狀態(tài)與觸發(fā)動作,功能函數(shù)至少包括創(chuàng)建觸發(fā)器、觸發(fā)類型設(shè)置、觸發(fā)狀態(tài)設(shè)置、觸發(fā)動作注冊與釋放觸發(fā)器;
b、控制句柄id為唯一數(shù)值,約定大于0為正常成功狀態(tài),小于0為異常失敗狀態(tài),等于0表示觸發(fā)器已進行資源釋放;單個同步觸發(fā)器對應(yīng)一個uut測試任務(wù),且通過該控制句柄id來進行資源申請、參數(shù)配置、功能調(diào)用與資源釋放;
c、觸發(fā)類型至少包括立即執(zhí)行和延遲執(zhí)行,延遲時間可設(shè)置,而且時間控制精度與并發(fā)任務(wù)執(zhí)行的時間延遲同量級(受處理器時鐘發(fā)生器計數(shù)時間精度限制);
d、觸發(fā)狀態(tài)至少包括激活與無效兩種。激活狀態(tài)下依據(jù)觸發(fā)類型進行觸發(fā)動作執(zhí)行且不允許進行觸發(fā)動作重新注冊;無效狀態(tài)下觸發(fā)器的觸發(fā)動作處于失去執(zhí)行能力且允許進行觸發(fā)動作的注冊;
e、觸發(fā)動作至少允許指定為當前有效的測試動作序列、可執(zhí)行測試應(yīng)用程序或動態(tài)庫模式測試應(yīng)用程序媒體文件,觸發(fā)動作在觸發(fā)激活狀態(tài)下立刻響應(yīng)執(zhí)行且正常結(jié)束后自動變更觸發(fā)狀態(tài)為無效。要求觸發(fā)動作優(yōu)化設(shè)計,既方便觸發(fā)點火時快速自動執(zhí)行,又要允許重新注冊為其他uut測試任務(wù)應(yīng)用程序;
f,觸發(fā)類型缺省設(shè)置為立即執(zhí)行,觸發(fā)狀態(tài)缺省設(shè)置為無效,觸發(fā)動作缺省注冊為uut測試任務(wù)動作序列。
在步驟102中,具體包括:
a、顯示區(qū)域至少包括uut測試基本信息顯示、uut測試過程狀態(tài)顯示與用戶操作記錄顯示。uut測試基本信息至少包括操作用戶、測試時間、測試環(huán)境、測試資源以及測試對象的名稱和相關(guān)屬性;uut測試過程狀態(tài)包括未裝載(unloaded)、就緒(ready)、運行中(running)、暫停(halted)、已完成(finish)與未知(unknown);用戶操作記錄顯示用戶通過uut測試任務(wù)操作界面所產(chǎn)生的日志信息與異常錯誤信息;
b、uut測試過程功能按鈕至少包括配置、啟動、停止與退出。配置按鈕可以輔助用戶對測試過程模型、測試工位并發(fā)數(shù)目與uut測試任務(wù)應(yīng)用程序進行設(shè)置,測試過程模型至少提供順序過程模型、并行過程模型與批量過程模型三種,測試工位并發(fā)數(shù)目與uut測試任務(wù)并發(fā)數(shù)目對應(yīng),uut測試任務(wù)應(yīng)用程序被指定為當前有效的測試動作序列、可執(zhí)行測試應(yīng)用程序或動態(tài)庫模式測試應(yīng)用程序媒體文件;啟動按鈕可以輔助用戶來控制uut測試任務(wù)在后臺進行自動執(zhí)行,并在更新各個uut測試任務(wù)的測試過程狀態(tài);停止按鈕可以輔助用戶強制終止正在運行中的uut測試任務(wù);退出按鈕可以輔助用戶退出當前的uut測試任務(wù)操作界面。功能按鈕的無效屬性設(shè)置控制關(guān)系設(shè)計為:進入uut測試任務(wù)操作界面時,停止按鈕無效為真,其他按鈕無效為假;啟動按鈕執(zhí)行后,停止按鈕無效為假,其他按鈕無效為真;停止按鈕執(zhí)行后,所有按鈕無效為真;單個uut測試任務(wù)執(zhí)行完成且進行uut測試過程狀態(tài)顯示時,若所有uut測試過程狀態(tài)均不是運行中(running),則停止按鈕無效為真、其他按鈕無效為假。
在步驟104中,具體包括:測試過程配置窗口控制選項至少包括測試過程模型、測試工位并發(fā)數(shù)目與uut測試任務(wù)應(yīng)用程序。調(diào)整完畢確認成功后返回uut測試任務(wù)操作界面時,按照控制選項參數(shù)進行自動配置。按照測試工位并發(fā)數(shù)目依次進行觸發(fā)器創(chuàng)建與觸發(fā)器屬性參數(shù)設(shè)置,觸發(fā)狀態(tài)設(shè)置為無效、觸發(fā)動作注冊為所選uut測試任務(wù)應(yīng)用程序;
其中,測試過程模型至少提供順序過程模型、并行過程模型與批量過程模型三種,缺省為并行過程模型。測試工位并發(fā)數(shù)目與uut測試任務(wù)并發(fā)數(shù)目對應(yīng),限制數(shù)值為大于等于1、小于最大uut并發(fā)數(shù)目,缺省數(shù)值為4。uut測試任務(wù)應(yīng)用程序可指定為當前有效的測試動作序列、可執(zhí)行測試應(yīng)用程序或動態(tài)庫模式測試應(yīng)用程序媒體文件。
在步驟106中,具體包括:所注冊回調(diào)函數(shù)的代碼執(zhí)行應(yīng)優(yōu)化為最少時間耗費,以確保其執(zhí)行時間耗費與觸發(fā)時延相比較可以忽略不計。當單個觸發(fā)器的狀態(tài)設(shè)置為激活時,其觸發(fā)動作可以立刻被執(zhí)行到。當所有觸發(fā)器批量激活時,觸發(fā)動作所指定uut測試任務(wù)則能夠同時被執(zhí)行到,進而確保通過各個觸發(fā)器的觸發(fā)動作執(zhí)行來完成所有uut測試任務(wù)的并發(fā)處理。
在步驟108中,具體包括如下步驟:
a、依次判斷各個uut測試過程狀態(tài)是否為running(運行中)。若否,則略過當前uut測試過程處理;若是,則設(shè)置相應(yīng)的觸發(fā)器激活狀態(tài)無效、等待后臺觸發(fā)動作所執(zhí)行的uut測試任務(wù)進行退出,并同步更新測試狀態(tài)顯示;
b、相應(yīng)觸發(fā)器的觸發(fā)動作可以依據(jù)測試過程具體情況對觸發(fā)無效狀態(tài)進行響應(yīng)。觸發(fā)動作執(zhí)行結(jié)束時,判斷觸發(fā)狀態(tài)是否為激活,若是則設(shè)置觸發(fā)狀態(tài)為無效;
c、若觸發(fā)動作執(zhí)行返回狀態(tài)為正常,則同步更新uut測試過程狀態(tài)為finish(已完成),否則同步更新uut測試過程狀態(tài)為halted(暫停)。
在步驟110中,具體包括:
依次根據(jù)各個觸發(fā)器判斷觸發(fā)狀態(tài)是否為無效,若是則進行提示等待,若否則進行相關(guān)資源的釋放。
在步驟112中,具體包括:
可調(diào)整控制選項參數(shù)至少包括測試過程模型、測試工位并發(fā)數(shù)目(對應(yīng)觸發(fā)器數(shù)目)與uut測試任務(wù)應(yīng)用程序(對應(yīng)觸發(fā)動作);控制選項參數(shù)調(diào)整完畢后,若測試過程模型為并行過程模型,則按照觸發(fā)器數(shù)目進行觸發(fā)器創(chuàng)建與觸發(fā)器屬性參數(shù)設(shè)置,其中觸發(fā)類型設(shè)置為立即執(zhí)行、觸發(fā)狀態(tài)設(shè)置為無效、觸發(fā)動作注冊為所選uut測試任務(wù)應(yīng)用程序。
在步驟114中,具體包括如下步驟:
a、響應(yīng)uut測試任務(wù)操作界面的測試過程人機界面交互。若為啟動按鈕執(zhí)行,則執(zhí)行b;否則,繼續(xù)空閑等待;
b、將各個uut測試任務(wù)觸發(fā)器的觸發(fā)狀態(tài)都設(shè)置為激活,更新所有功能按鈕的無效狀態(tài);
c、各個uut測試任務(wù)觸發(fā)器對應(yīng)的觸發(fā)動作按照預(yù)先設(shè)定進行自動響應(yīng)執(zhí)行,各個測試任務(wù)功能就緒;
d、單個uut測試任務(wù)觸發(fā)器對應(yīng)的觸發(fā)動作執(zhí)行處理,即調(diào)整uut測試基本信息、執(zhí)行所注冊觸發(fā)動作的uut測試任務(wù)應(yīng)用程序、通知uut測試任務(wù)操作界面進行測試執(zhí)行狀態(tài)顯示;
e、響應(yīng)操作用戶通過uut測試任務(wù)操作界面所進行的人工干預(yù)。若為停止按鈕操作,則更新所有功能按鈕的無效狀態(tài)后執(zhí)行g(shù);
f、單個uut測試任務(wù)的觸發(fā)動作執(zhí)行完畢后,設(shè)置當前觸發(fā)器的觸發(fā)狀態(tài)為無效,提示并引導(dǎo)用戶確定是否處理下一個uut測試任務(wù)。若處理下一個uut測試任務(wù),則設(shè)置當前觸發(fā)器的觸發(fā)狀態(tài)為激活、執(zhí)行c;否則,繼續(xù)執(zhí)行g(shù);
g、更新uut測試過程狀態(tài)顯示與用戶操作記錄日志顯示;
h、響應(yīng)uut測試任務(wù)操作界面的測試過程人機界面交互。若為啟動按鈕執(zhí)行,則執(zhí)行步驟b;若為退出按鈕執(zhí)行,則依次釋放各個觸發(fā)器資源、釋放uut測試任務(wù)操作界面相關(guān)資源。
當然,上述說明并非是對本發(fā)明的限制,本發(fā)明也并不僅限于上述舉例,本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明的實質(zhì)范圍內(nèi)所做出的變化、改型、添加或替換,也應(yīng)屬于本發(fā)明的保護范圍。