專(zhuān)利名稱(chēng):基于執(zhí)行路徑全過(guò)程的系統(tǒng)窗口期滑動(dòng)測(cè)試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于執(zhí)行路徑全過(guò)程的系統(tǒng)窗口期滑動(dòng)測(cè)試方法,屬于操作系統(tǒng)開(kāi)發(fā)與測(cè)試方法領(lǐng)域。
背景技術(shù):
對(duì)嵌入式實(shí)時(shí)操作系統(tǒng)(ERTOS)開(kāi)發(fā)和測(cè)試技術(shù)的研究主要集中在實(shí)時(shí)性能參數(shù)的測(cè)試上,通常包括上下文切換時(shí)間(task switching time)、搶占時(shí)間(preemptiontime)、中斷延遲時(shí)間(interrupt latency time)等。對(duì)于系統(tǒng)設(shè)計(jì)正確性測(cè)試,實(shí)際測(cè)試時(shí)劃分為功能性測(cè)試,其測(cè)試用例設(shè)計(jì)通常是針對(duì)每一項(xiàng)測(cè)試要求設(shè)計(jì)單獨(dú)的測(cè)試用例?,F(xiàn)有技術(shù)存在的主要問(wèn)題I.針對(duì)系統(tǒng)功能測(cè)試,其測(cè)試粒度過(guò)大,不能很好的測(cè)試系統(tǒng)的正確性,很多問(wèn)題需要在實(shí)際使用過(guò)程中才能發(fā)現(xiàn)。2.逐項(xiàng)測(cè)試的方法不能驗(yàn)證系統(tǒng)的整體工作情況。
發(fā)明內(nèi)容
為了解決上述問(wèn)題,本發(fā)明提供了一種全新的嵌入式實(shí)時(shí)操作系統(tǒng)測(cè)試方法,它通過(guò)對(duì)硬件時(shí)鐘定時(shí)器的配置,在測(cè)試用例設(shè)計(jì)時(shí)利用設(shè)計(jì)的邏輯,來(lái)驗(yàn)證操作系統(tǒng)在特定接口的任務(wù)切換、上下文保存等整個(gè)執(zhí)行路徑中,異步中斷在不同階段到來(lái)時(shí)并執(zhí)行相關(guān)耦合性的其他接口,以此來(lái)形成各種交錯(cuò)路徑組合,測(cè)試和驗(yàn)證操作系統(tǒng)能否正確執(zhí)行,根據(jù)不同的設(shè)置情況,相鄰兩次中斷到來(lái)的時(shí)間間隔可以精確到一個(gè)CPU周期。為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下一種基于執(zhí)行路徑全過(guò)程的系統(tǒng)窗口期滑動(dòng)測(cè)試方法,包括以下步驟I)設(shè)置時(shí)鐘相關(guān)寄存器預(yù)分頻計(jì)數(shù)器,預(yù)置數(shù)寄存器,計(jì)數(shù)器控制寄存器;2)注冊(cè)時(shí)鐘中斷服務(wù)程序,使能時(shí)鐘中斷;3)設(shè)置時(shí)鐘中斷發(fā)生的步進(jìn)值,初始值為I ;4)獲取時(shí)鐘計(jì)數(shù)器當(dāng)前計(jì)數(shù)值;5)若計(jì)數(shù)值大于步進(jìn)值,則轉(zhuǎn)到步驟4),否則繼續(xù)以下步驟;6)獲取另一時(shí)鐘計(jì)數(shù)器的值,將其作為被測(cè)試接口的計(jì)時(shí)開(kāi)始值;7)調(diào)用被測(cè)試接口;8)獲取步驟6)中的時(shí)鐘計(jì)數(shù)器值,將其作為被測(cè)試接口的計(jì)時(shí)結(jié)束值;9)計(jì)時(shí)結(jié)束值減去計(jì)時(shí)開(kāi)始值,計(jì)算被測(cè)試接口的耗時(shí);10)增加步進(jìn)值,若該步進(jìn)值小于時(shí)鐘計(jì)數(shù)器的初始設(shè)置值,則轉(zhuǎn)到步驟4),否則終止。本發(fā)明的有益效果是在實(shí)際使用中,根據(jù)不同硬件平臺(tái)特性,包括晶振頻率、預(yù)分頻計(jì)數(shù)器、預(yù)置數(shù)寄存器、計(jì)數(shù)器控制寄存器的不同設(shè)置,可以控制相鄰兩次時(shí)鐘中斷產(chǎn)生的時(shí)間間隔,在最優(yōu)情況下可以保證兩次中斷的間隔為一個(gè)CPU周期。由于引入類(lèi)似高度可控的中斷源,可以打破被測(cè)試接口的任意執(zhí)行路徑,所以只要將其有限的耦合性相關(guān)接口路徑引入到重入路徑中,就可以列舉出所有的執(zhí)行路徑組合,以此用形式化驗(yàn)證的思想解決操作系統(tǒng)內(nèi)核多重入、多路徑的形式化驗(yàn)證難題,可以有效提升操作系統(tǒng)內(nèi)核開(kāi)發(fā)和測(cè)試的覆蓋性難題。
圖I為系統(tǒng)調(diào)用時(shí)段說(shuō)明圖;圖2為測(cè)試用例工作流程圖。
具體實(shí)施例方式本發(fā)明提供了一種基于執(zhí)行路徑全過(guò)程的系統(tǒng)窗口期滑動(dòng)測(cè)試方法。一種基于執(zhí)行路徑全過(guò)程的系統(tǒng)窗口期滑動(dòng)測(cè)試方法,包括以下步驟 I)設(shè)置時(shí)鐘相關(guān)寄存器預(yù)分頻計(jì)數(shù)器,預(yù)置數(shù)寄存器,計(jì)數(shù)器控制寄存器;2)注冊(cè)時(shí)鐘中斷服務(wù)程序,使能時(shí)鐘中斷;3)設(shè)置時(shí)鐘中斷發(fā)生的步進(jìn)值,初始值為I ;4)獲取時(shí)鐘計(jì)數(shù)器當(dāng)前計(jì)數(shù)值;5)若計(jì)數(shù)值大于步進(jìn)值,則轉(zhuǎn)到步驟4),否則繼續(xù)以下步驟;6)獲取另一時(shí)鐘計(jì)數(shù)器的值,將其作為被測(cè)試接口的計(jì)時(shí)開(kāi)始值;7)調(diào)用被測(cè)試接口;8)獲取步驟6)中的時(shí)鐘計(jì)數(shù)器值,將其作為被測(cè)試接口的計(jì)時(shí)結(jié)束值;9)計(jì)時(shí)結(jié)束值減去計(jì)時(shí)開(kāi)始值,計(jì)算被測(cè)試接口的耗時(shí);10)增加步進(jìn)值,若該步進(jìn)值小于時(shí)鐘計(jì)數(shù)器的初始設(shè)置值,則轉(zhuǎn)到步驟4),否則終止。系統(tǒng)調(diào)用過(guò)程與中斷對(duì)應(yīng)時(shí)間關(guān)系共分為兩種系統(tǒng)調(diào)用過(guò)程中不被時(shí)鐘中斷打斷;系統(tǒng)調(diào)用過(guò)程中被時(shí)鐘中斷打斷;在系統(tǒng)調(diào)用過(guò)程中執(zhí)行以下步驟I)記錄每次系統(tǒng)調(diào)用從開(kāi)始到返回所花費(fèi)的時(shí)間;2)創(chuàng)建高優(yōu)先級(jí)任務(wù)Tl和低優(yōu)先級(jí)任務(wù)T2,Tl用來(lái)調(diào)用測(cè)試用例,T2負(fù)責(zé)設(shè)置全局標(biāo)志,可以被Tl用來(lái)判別切換是否成功;3)在Tl中調(diào)用測(cè)試用例,打印系統(tǒng)調(diào)用時(shí)間;4)重復(fù)步驟3)直到兩種系統(tǒng)調(diào)用過(guò)程與中斷對(duì)應(yīng)時(shí)間關(guān)系全部出現(xiàn)。本發(fā)明屬于操作系統(tǒng)功能和性能測(cè)試中采用的一種高精度測(cè)試方法,主要用于測(cè)試系統(tǒng)調(diào)用過(guò)程中,異步時(shí)鐘中斷到來(lái)時(shí)系統(tǒng)的響應(yīng)情況。其工作原理是通過(guò)配置計(jì)數(shù)器控制寄存器及相關(guān)寄存器,調(diào)整時(shí)鐘中斷發(fā)生的時(shí)機(jī),使中斷連同其服務(wù)程序在被測(cè)接口整個(gè)執(zhí)行路徑中發(fā)生,從而觀察在不同時(shí)間點(diǎn)中斷發(fā)生時(shí)的各種路徑交錯(cuò)組合是否能使操作系統(tǒng)正常工作及其各項(xiàng)性能指標(biāo)所產(chǎn)生的變化等。在實(shí)際使用中,根據(jù)不同硬件平臺(tái)特性,包括晶振頻率、預(yù)分頻計(jì)數(shù)器、預(yù)置數(shù)寄存器、計(jì)數(shù)器控制寄存器的不同設(shè)置,可以控制相鄰兩次時(shí)鐘中斷產(chǎn)生的時(shí)間間隔,在最優(yōu)情況下可以保證兩次中斷的間隔為一個(gè)CPU周期。由于引入類(lèi)似高度可控的中斷源,可以任意打破被測(cè)試接口的任意執(zhí)行路徑,所以只要將其有限的耦合性相關(guān)接口路徑引入到重入路徑中,就可以列舉出所有的執(zhí)行路徑組合,以此用形式化驗(yàn)證的思想解決操作系統(tǒng)內(nèi)核多重入、多路徑的形式化驗(yàn)證難題,可以有效提升操作系統(tǒng)內(nèi)核開(kāi)發(fā)和測(cè)試的覆蓋性難題。下面詳細(xì)說(shuō)明。本發(fā)明方法包括以下步驟I)設(shè)置兩個(gè)時(shí)鐘相關(guān)寄存器預(yù)分頻計(jì)數(shù)器,預(yù)置數(shù)寄存器,計(jì)數(shù)器控制寄存器,以初始化時(shí)鐘相關(guān)寄存器,此處假設(shè)時(shí)鐘計(jì)數(shù)器是按照從大到小計(jì)數(shù)的,其中一個(gè)作為系統(tǒng)時(shí)鐘,一個(gè)作為計(jì)數(shù)時(shí)鐘,計(jì)數(shù)時(shí)鐘的時(shí)鐘周期要大于系統(tǒng)時(shí)鐘周期,且以大于被測(cè)接口執(zhí)行時(shí)間為宜,避免在測(cè)試被測(cè)接口時(shí)計(jì)數(shù)時(shí)鐘發(fā)生中斷,而造成一定的計(jì)時(shí)誤差; 2)注冊(cè)時(shí)鐘中斷服務(wù)程序,使能時(shí)鐘中斷,以開(kāi)啟時(shí)鐘,并在時(shí)鐘中斷到來(lái)時(shí),調(diào)用中斷服務(wù)程序進(jìn)行計(jì)時(shí)處理;3)設(shè)置一步進(jìn)值,其初始值為1,該步進(jìn)值用于控制系統(tǒng)時(shí)鐘窗口期;4)獲取系統(tǒng)時(shí)鐘計(jì)數(shù)器當(dāng)前的計(jì)數(shù)值;5)若計(jì)數(shù)值大于步進(jìn)值,則轉(zhuǎn)到步驟4),此步驟5)的意圖是排除掉窗口期以外的值;6)獲取計(jì)數(shù)時(shí)鐘的值,該值用于被測(cè)試接口的計(jì)時(shí)開(kāi)始值;7)調(diào)用被測(cè)試接口;8)獲取計(jì)數(shù)時(shí)鐘值,該值用于被測(cè)試接口的計(jì)時(shí)結(jié)束值;9)取計(jì)時(shí)開(kāi)始值減去計(jì)時(shí)結(jié)束值,用作被測(cè)試接口的耗時(shí),由于計(jì)數(shù)時(shí)鐘計(jì)數(shù)器是從大到小計(jì)數(shù)的,故計(jì)時(shí)開(kāi)始值大于計(jì)時(shí)結(jié)束值;10)增加步進(jìn)值,若小于I)中設(shè)置的系統(tǒng)時(shí)鐘計(jì)數(shù)器的初始值,則繼續(xù)擴(kuò)大窗口期,轉(zhuǎn)到4),否則說(shuō)明已經(jīng)到達(dá)最大的時(shí)鐘窗口期,終止。系統(tǒng)調(diào)用過(guò)程與中斷對(duì)應(yīng)時(shí)間關(guān)系共分為兩種,如圖I所示I.系統(tǒng)調(diào)用過(guò)程中不被時(shí)鐘中斷打斷;2.系統(tǒng)調(diào)用過(guò)程中被時(shí)鐘中斷打斷。測(cè)試流程如下所示此處假設(shè)目標(biāo)板有兩個(gè)時(shí)鐘定時(shí)器timerl和timer2,并且timer2為系統(tǒng)時(shí)鐘中斷觸發(fā)寄存器,具體步驟如下I)設(shè)置timerl為計(jì)數(shù)器,記錄每次系統(tǒng)調(diào)用從開(kāi)始到返同所花費(fèi)的時(shí)間;2)創(chuàng)建任務(wù) Tl(high priority)和 T2(low priority),Tl 用來(lái)調(diào)用測(cè)試用例,T2負(fù)責(zé)設(shè)置全局標(biāo)志,可以被Tl用來(lái)判別切換是否成功;3)在TI中調(diào)用測(cè)試用例,打印系統(tǒng)調(diào)用時(shí)間;4)重復(fù)步驟3)直到圖I中兩種情況全部出現(xiàn)。測(cè)試用例如圖2所示I)獲取系統(tǒng)時(shí)鐘定時(shí)器timer2的值,如果值大于步進(jìn)值scale,則轉(zhuǎn)到I),否則轉(zhuǎn)到2);2)獲取定時(shí)器timerl的值,用于被測(cè)試接口計(jì)時(shí)開(kāi)始值;3)調(diào)用被測(cè)試接口 tsk_delay ;
4)再次獲取定時(shí)器timerl的值,用于被測(cè)試接口計(jì)時(shí)結(jié)束值;5)計(jì)算被測(cè)試接口時(shí)間值time,打印該值;6)步進(jìn)值scale增加delta, delta為相鄰兩次系統(tǒng)調(diào)用時(shí)刻的間隔;7)如果步進(jìn)值scale大于系統(tǒng)時(shí)鐘定時(shí)器間隔則終止;否則轉(zhuǎn)到I)。實(shí)現(xiàn)范例代碼用C語(yǔ)言實(shí)現(xiàn),硬件平臺(tái)為SPARC V8,操作系統(tǒng)為SZ0S。系統(tǒng)時(shí)鐘配置部分與具體硬件平臺(tái)有關(guān),以下代碼為珠海歐比特公司的S698-MIL芯片最小系統(tǒng)開(kāi)發(fā)板所使用的配置
權(quán)利要求
1.一種基于執(zhí)行路徑全過(guò)程的系統(tǒng)窗口期滑動(dòng)測(cè)試方法,其特征在于包括以下步驟 1)設(shè)置時(shí)鐘相關(guān)寄存器預(yù)分頻計(jì)數(shù)器,預(yù)置數(shù)寄存器,計(jì)數(shù)器控制寄存器; 2)注冊(cè)時(shí)鐘中斷服務(wù)程序,使能時(shí)鐘中斷; 3)設(shè)置時(shí)鐘中斷發(fā)生的步進(jìn)值,初始值為I; 4)獲取時(shí)鐘計(jì)數(shù)器當(dāng)前計(jì)數(shù)值; 5)若計(jì)數(shù)值大于步進(jìn)值,則轉(zhuǎn)到步驟4),否則繼續(xù)以下步驟; 6)獲取另一時(shí)鐘計(jì)數(shù)器的值,將其作為被測(cè)試接口的計(jì)時(shí)開(kāi)始值; 7)調(diào)用被測(cè)試接口; 8)獲取步驟6)中的時(shí)鐘計(jì)數(shù)器值,將其作為被測(cè)試接口的計(jì)時(shí)結(jié)束值; 9)計(jì)時(shí)結(jié)束值減去計(jì)時(shí)開(kāi)始值,計(jì)算被測(cè)試接口的耗時(shí); 10)增加步進(jìn)值,若該步進(jìn)值小于時(shí)鐘計(jì)數(shù)器的初始設(shè)置值,則轉(zhuǎn)到步驟4),否則終止。
2.如權(quán)利要求I所述的基于執(zhí)行路徑全過(guò)程的系統(tǒng)窗口期滑動(dòng)測(cè)試方法,其特征在于 系統(tǒng)調(diào)用過(guò)程與中斷對(duì)應(yīng)時(shí)間關(guān)系共分為兩種 系統(tǒng)調(diào)用過(guò)程中不被時(shí)鐘中斷打斷; 系統(tǒng)調(diào)用過(guò)程中被時(shí)鐘中斷打斷; 在系統(tǒng)調(diào)用過(guò)程中執(zhí)行以下步驟 1)記錄每次系統(tǒng)調(diào)用從開(kāi)始到返同所花費(fèi)的時(shí)間; 2)創(chuàng)建高優(yōu)先級(jí)任務(wù)Tl和低優(yōu)先級(jí)任務(wù)T2,Tl用來(lái)調(diào)用測(cè)試用例,T2負(fù)責(zé)設(shè)置全局標(biāo)志,可以被Tl用來(lái)判別切換是否成功; 3)在Tl中調(diào)用測(cè)試用例,打印系統(tǒng)調(diào)用時(shí)間; 4)重復(fù)步驟3)直到兩種系統(tǒng)調(diào)用過(guò)程與中斷對(duì)應(yīng)時(shí)間關(guān)系全部出現(xiàn)。
全文摘要
本發(fā)明涉及基于執(zhí)行路徑全過(guò)程的系統(tǒng)窗口期滑動(dòng)測(cè)試方法,包括步驟1)設(shè)置時(shí)鐘相關(guān)寄存器;2)注冊(cè)時(shí)鐘中斷服務(wù)程序,使能時(shí)鐘中斷;3)設(shè)置時(shí)鐘中斷發(fā)生的步進(jìn)值;4)獲取時(shí)鐘計(jì)數(shù)器當(dāng)前計(jì)數(shù)值;5)若計(jì)數(shù)值大于步進(jìn)值,則轉(zhuǎn)到步驟4);6)獲取另一時(shí)鐘計(jì)數(shù)器的值,作為被測(cè)試接口的計(jì)時(shí)開(kāi)始值;7)調(diào)用被測(cè)試接口;8)獲取步驟6)中的時(shí)鐘計(jì)數(shù)器值作為被測(cè)試接口的計(jì)時(shí)結(jié)束值;9)計(jì)時(shí)結(jié)束值減去計(jì)時(shí)開(kāi)始值,計(jì)算被測(cè)試接口的耗時(shí);10)增加步進(jìn)值,若該步進(jìn)值小于時(shí)鐘計(jì)數(shù)器的初始設(shè)置值,則轉(zhuǎn)到步驟4),否則終止。本發(fā)明用形式化驗(yàn)證的思想解決操作系統(tǒng)內(nèi)核多重入、多路徑的形式化驗(yàn)證難題,可以有效提升操作系統(tǒng)內(nèi)核開(kāi)發(fā)和測(cè)試的覆蓋性難題。
文檔編號(hào)G06F11/36GK102968376SQ20121052991
公開(kāi)日2013年3月13日 申請(qǐng)日期2012年12月10日 優(yōu)先權(quán)日2012年12月10日
發(fā)明者闞宏偉, 程勝, 李紅兵, 周志軍, 孫磊, 魏明, 黃察夫, 呂紫旭, 靳仕慧, 卓保特, 劉貴, 吳常明, 張春艷, 陶戈丹 申請(qǐng)人:北京神舟航天軟件技術(shù)有限公司