亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于時(shí)間安全輸入輸出自動(dòng)機(jī)的測(cè)試方法及系統(tǒng)的制作方法

文檔序號(hào):6632737閱讀:198來(lái)源:國(guó)知局

專利名稱::基于時(shí)間安全輸入輸出自動(dòng)機(jī)的測(cè)試方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及一種時(shí)間安全輸入輸出自動(dòng)機(jī)的測(cè)試方法,也涉及利用該測(cè)試方法實(shí)現(xiàn)的測(cè)試系統(tǒng),屬于軟件測(cè)試
技術(shù)領(lǐng)域
。
背景技術(shù)
:和運(yùn)行環(huán)境的交互行為存在時(shí)間約束的系統(tǒng)稱為實(shí)時(shí)系統(tǒng)。對(duì)于很多實(shí)時(shí)系統(tǒng)而言,系統(tǒng)的功能性錯(cuò)誤或者對(duì)時(shí)間約束的偏移都會(huì)產(chǎn)生災(zāi)難性的后果。為了提高實(shí)時(shí)系統(tǒng)的質(zhì)量,一般采用驗(yàn)證或測(cè)試的方法,其中,測(cè)試是唯一能夠在運(yùn)行時(shí)刻檢驗(yàn)實(shí)時(shí)系統(tǒng)動(dòng)態(tài)行為的方法。從70年代開(kāi)始,研究人員就已經(jīng)基于各種時(shí)間無(wú)關(guān)形式模型,如有限狀態(tài)機(jī)、擴(kuò)展有限狀態(tài)機(jī)、標(biāo)號(hào)轉(zhuǎn)移系統(tǒng)等等,提出了許多測(cè)試用例生成方法,其中有些方法,如U-方法、D-方法、W-方法和Wp-方法,已經(jīng)在通信協(xié)議、硬件電路設(shè)計(jì)等領(lǐng)域得到了較為廣泛的應(yīng)用,但是這類方法無(wú)法描述實(shí)時(shí)系統(tǒng)中的時(shí)間約束。從90年代中期開(kāi)始,隨著時(shí)序邏輯(TemporalLogic,TL)、時(shí)間自動(dòng)機(jī)(TimedAutomata,TA)、時(shí)間標(biāo)號(hào)遷移系統(tǒng)(TimedlabeledTransitionSystem,TLTS)等時(shí)間相關(guān)形式模型理論的逐步成熟,人們開(kāi)始研究如何利用時(shí)間相關(guān)的形式模型來(lái)對(duì)實(shí)時(shí)系統(tǒng)進(jìn)行測(cè)試。然而,由于實(shí)時(shí)系統(tǒng)引入了時(shí)間維,理論上來(lái)說(shuō)其狀態(tài)空間是無(wú)限的;另外,系統(tǒng)中的時(shí)間約束也增加了分析系統(tǒng)可能行為的難度,這些都給實(shí)時(shí)系統(tǒng)測(cè)試帶來(lái)了極大的困難。當(dāng)前,有一些實(shí)時(shí)系統(tǒng)測(cè)試方法首先將實(shí)時(shí)系統(tǒng)模型轉(zhuǎn)換為不含時(shí)間約束系統(tǒng)模型,以消除時(shí)間約束對(duì)系統(tǒng)行為分析造成的影響,然后使用時(shí)間無(wú)關(guān)的測(cè)試方法進(jìn)行測(cè)試。然而,這些方法為了能夠?qū)崿F(xiàn)時(shí)間模型向非時(shí)間模型的轉(zhuǎn)換,大多對(duì)模型的時(shí)間描述能力進(jìn)行了限制;另外,盡管轉(zhuǎn)換生成的時(shí)間無(wú)關(guān)模型的狀態(tài)數(shù)有限,但仍然相當(dāng)龐大,還需要進(jìn)一步簡(jiǎn)化。另外,為了降低狀態(tài)空間爆炸給測(cè)試用例生成時(shí)帶來(lái)的難度,已經(jīng)存在一些系統(tǒng)化簡(jiǎn)方案,它們采用各種(強(qiáng)度不同的)時(shí)間抽象方法來(lái)對(duì)系統(tǒng)進(jìn)行簡(jiǎn)化。這些方法基本思想均是將時(shí)間自動(dòng)機(jī)中的一個(gè)位置和一個(gè)時(shí)間域一起構(gòu)成一個(gè)符號(hào)狀態(tài)以生成有限狀態(tài)模型,其中最為典型的是域圖(RegionGraph)和區(qū)圖(ZoneGraph)。但是,區(qū)圖并不適合用于測(cè)試,其主要原因是區(qū)圖中的符號(hào)狀態(tài)不具有穩(wěn)定性屬性,根據(jù)區(qū)圖生成的符號(hào)狀態(tài)轉(zhuǎn)移序列并不一定可行,這使得采用這種方法生成測(cè)試用例的方法往往只能用于測(cè)試系統(tǒng)中與狀態(tài)可達(dá)性相關(guān)的屬性。域圖生成的符號(hào)狀態(tài)圖雖然滿足穩(wěn)定性,但是該方法生成的符號(hào)狀態(tài)數(shù)會(huì)隨著時(shí)間自動(dòng)機(jī)中時(shí)鐘個(gè)數(shù)以及時(shí)間約束常數(shù)的大小而進(jìn)行指數(shù)增長(zhǎng)。利用經(jīng)典的符號(hào)狀態(tài)拆分方法可以獲得最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)轉(zhuǎn)移圖(MinimalStableTransitionGraphofSymbolState,MSTGSS)。盡管對(duì)于狀態(tài)可達(dá)性分析而言,該方法生成的符號(hào)狀態(tài)轉(zhuǎn)移圖是最簡(jiǎn)穩(wěn)定的,但是對(duì)于測(cè)試而言,該方法所生成的轉(zhuǎn)移圖中仍然存在冗余的抽象時(shí)間延遲轉(zhuǎn)移;另外,該方法的執(zhí)行效率也有待改進(jìn)。由于對(duì)時(shí)間描述能力的限制以及狀態(tài)化簡(jiǎn)方法不完善,目前基于時(shí)間自動(dòng)機(jī)的實(shí)施系統(tǒng)測(cè)試工具,如COSPAN、KRONOS、UPPAAL等,普遍存在測(cè)試不充分、測(cè)試執(zhí)行速度慢、難以用于復(fù)雜系統(tǒng)的測(cè)試等缺陷。
發(fā)明內(nèi)容因?yàn)闀r(shí)間安全輸入輸出自動(dòng)機(jī)中時(shí)間變量可以取實(shí)數(shù)值,所以即使一個(gè)非常簡(jiǎn)單的時(shí)間安全輸入輸出自動(dòng)機(jī)模型,也會(huì)存在無(wú)窮多個(gè)狀態(tài);另外,時(shí)間安全輸入輸出自動(dòng)機(jī)的動(dòng)作轉(zhuǎn)移中含有時(shí)鐘約束條件,只有當(dāng)時(shí)鐘約束條件滿足時(shí)動(dòng)作轉(zhuǎn)移才可以進(jìn)行。這種狀態(tài)空間爆炸以及時(shí)鐘約束條件對(duì)模型中行為的影響給測(cè)試造成了極大的困難,為此需要將時(shí)間安全輸入輸出自動(dòng)機(jī)模型轉(zhuǎn)換為更加適合測(cè)試的模型。針對(duì)上述問(wèn)題,本發(fā)明的目的在于提供一種基于時(shí)間安全輸入輸出自動(dòng)機(jī)(TimedSafetyInput/OutputAutomata,簡(jiǎn)稱TSIOA)的測(cè)試方法,該測(cè)試方法充分利用TSIOA描述機(jī)制簡(jiǎn)單和描述能力強(qiáng)大的特點(diǎn),通過(guò)增加預(yù)處理過(guò)程以及采用更加簡(jiǎn)潔的符號(hào)狀態(tài)拆分算子等方法改進(jìn)了符號(hào)狀態(tài)拆分方法,并從所生成的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)轉(zhuǎn)移圖中去除了和測(cè)試無(wú)關(guān)的抽象時(shí)間延遲轉(zhuǎn)移,從而得到更加簡(jiǎn)單的不含抽象時(shí)間轉(zhuǎn)移穩(wěn)定符號(hào)狀態(tài)轉(zhuǎn)移圖(UntimedStableTransitionGraphofSymbolState,簡(jiǎn)稱USTGSS);然后利用USTGSS依次生成滿足各種結(jié)構(gòu)覆蓋標(biāo)準(zhǔn)的含時(shí)間延遲變量轉(zhuǎn)移動(dòng)作序列和時(shí)間測(cè)試用例,從而有效避免因?yàn)橐霑r(shí)間而導(dǎo)致的狀態(tài)空間爆炸,并且能夠有效的發(fā)現(xiàn)系統(tǒng)中存在的各種轉(zhuǎn)移錯(cuò)誤和時(shí)間錯(cuò)誤。為實(shí)現(xiàn)上述的發(fā)明目的,本發(fā)明所提供的基于時(shí)間安全輸入輸出自動(dòng)機(jī)的測(cè)試方法包括以下步驟,如圖1所示(1)建立被測(cè)系統(tǒng)的形式模型所使用的建模工具是時(shí)間安全輸入輸出自動(dòng)機(jī),時(shí)間安全輸入輸出自動(dòng)機(jī)模型描述了被測(cè)系統(tǒng)的轉(zhuǎn)移關(guān)系和各種時(shí)間約束。(2)化簡(jiǎn)形式模型對(duì)被測(cè)系統(tǒng)的形式模型進(jìn)行化簡(jiǎn),采用改進(jìn)的符號(hào)狀態(tài)拆分算法不斷遞歸地進(jìn)行符號(hào)狀態(tài)拆分,直至獲得滿足穩(wěn)定性的符號(hào)狀態(tài)集合,即,含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖。具體過(guò)程為首先根據(jù)模型中的位置以及位置對(duì)應(yīng)的時(shí)間不變量創(chuàng)建最初的符號(hào)狀態(tài)集合;之后根據(jù)每個(gè)位置自身的時(shí)間域和從其出發(fā)的轉(zhuǎn)移的約束條件來(lái)進(jìn)行拆分;然后從初始符號(hào)狀態(tài)出發(fā),按照轉(zhuǎn)移關(guān)系來(lái)遍歷狀態(tài)集,每遇到一個(gè)符號(hào)狀態(tài)便利用拆分操作來(lái)判斷其是否滿足穩(wěn)定性,如果不滿足則回溯到該符號(hào)狀態(tài)的緊前符號(hào)狀態(tài)重新判斷其穩(wěn)定性,不斷遞歸地進(jìn)行符號(hào)狀態(tài)拆分,直至獲得滿足穩(wěn)定性的符號(hào)狀態(tài)集合。(3)轉(zhuǎn)移去除抽象時(shí)間對(duì)含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖(MSTGSS進(jìn)行化簡(jiǎn),采用抽象時(shí)間去除算法,將抽象時(shí)間轉(zhuǎn)移從狀態(tài)圖中去除,從而得到不含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖。MSTGSS中除了含有動(dòng)作轉(zhuǎn)移,還含有抽象的時(shí)間延遲轉(zhuǎn)移。抽象的時(shí)間延遲轉(zhuǎn)移表示經(jīng)過(guò)了一個(gè)時(shí)間延遲,但是不能確定具體的時(shí)間量。實(shí)際上,對(duì)于符號(hào)狀態(tài)圖中的每一個(gè)動(dòng)作轉(zhuǎn)移來(lái)說(shuō),都存在相應(yīng)的時(shí)間延遲轉(zhuǎn)移位于動(dòng)作轉(zhuǎn)移之前,但是MSTGSS中只描述了那些會(huì)導(dǎo)致符號(hào)狀態(tài)的可達(dá)性發(fā)生變化的時(shí)間延遲轉(zhuǎn)移,而那些不會(huì)導(dǎo)致符號(hào)狀態(tài)可達(dá)性發(fā)生變化的時(shí)間延遲轉(zhuǎn)移則隱含在符號(hào)狀態(tài)中。這種對(duì)時(shí)間延遲轉(zhuǎn)移的區(qū)分對(duì)于符號(hào)狀態(tài)可達(dá)性分析是有意義的,但是,由于測(cè)試執(zhí)行過(guò)程中只能觀察被測(cè)系統(tǒng)的輸入、輸出動(dòng)作以及動(dòng)作發(fā)生的時(shí)刻,而并不知道時(shí)間延遲轉(zhuǎn)移是否對(duì)轉(zhuǎn)移圖中符號(hào)狀態(tài)的可達(dá)性產(chǎn)生了影響;另外測(cè)試所需要的是具體的動(dòng)作發(fā)生時(shí)刻,而并不是抽象的時(shí)間延遲,所以對(duì)于測(cè)試而言這種區(qū)分沒(méi)有用處。為此,如果是為了測(cè)試的目的,可以將MSTGSS中的抽象時(shí)間延遲轉(zhuǎn)移去除,從而對(duì)轉(zhuǎn)移圖進(jìn)一步簡(jiǎn)化。去除了抽象時(shí)間延遲轉(zhuǎn)移后得到的轉(zhuǎn)移圖中每一個(gè)動(dòng)作轉(zhuǎn)移之前都有一個(gè)隱含的時(shí)間延遲轉(zhuǎn)移,故而可以在轉(zhuǎn)移圖中每一個(gè)轉(zhuǎn)移動(dòng)作之前增加一個(gè)時(shí)間變量來(lái)表示時(shí)間延遲量,并將這個(gè)時(shí)間變量與動(dòng)作轉(zhuǎn)移合并成新的轉(zhuǎn)移標(biāo)號(hào)。(4)生成轉(zhuǎn)移動(dòng)作序列根據(jù)不含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖生成可執(zhí)行的含時(shí)間延遲變量的轉(zhuǎn)移動(dòng)作序列,轉(zhuǎn)移動(dòng)作序列中每?jī)蓚€(gè)轉(zhuǎn)移動(dòng)作之間均含有一個(gè)時(shí)間延遲變量。(5)執(zhí)行轉(zhuǎn)移動(dòng)作序列,采用動(dòng)態(tài)約束求解方法,求解轉(zhuǎn)移動(dòng)作序列中時(shí)間延遲變量的值,具體做法是首先根據(jù)轉(zhuǎn)移動(dòng)作序列建立線性約束系統(tǒng),然后求解當(dāng)前連續(xù)輸入動(dòng)作之前的時(shí)間延遲變量,并根據(jù)求得的結(jié)果執(zhí)行測(cè)試,直到轉(zhuǎn)移動(dòng)作序列執(zhí)行完畢。(6)報(bào)告測(cè)試結(jié)果。本發(fā)明的另一個(gè)目的在于提供一種與上述方法相對(duì)應(yīng)的基于時(shí)間安全輸入輸出自動(dòng)機(jī)的測(cè)試系統(tǒng),所述的系統(tǒng)通過(guò)計(jì)算機(jī)軟件實(shí)現(xiàn)。如圖2所示,基于時(shí)間安全輸入輸出自動(dòng)機(jī)的測(cè)試系統(tǒng)包括系統(tǒng)建模器、模型轉(zhuǎn)換器、轉(zhuǎn)移動(dòng)作生成器、測(cè)試用例生成和執(zhí)行器、測(cè)試執(zhí)行接口。其中,系統(tǒng)建模器根據(jù)被測(cè)系統(tǒng)規(guī)約,對(duì)整個(gè)被測(cè)系統(tǒng)進(jìn)行建模,所使用的建模工具是時(shí)間安全輸入輸出自動(dòng)機(jī)(TSIOA),測(cè)試系統(tǒng)主要基于TSIOA模型對(duì)被測(cè)系統(tǒng)進(jìn)行測(cè)試。所述的模型轉(zhuǎn)換器由時(shí)間自動(dòng)機(jī)化簡(jiǎn)模塊和時(shí)間轉(zhuǎn)移去除模塊構(gòu)成,用于對(duì)由系統(tǒng)建模器生成的TSIOA模型進(jìn)行化簡(jiǎn)。首先利用時(shí)間自動(dòng)機(jī)化簡(jiǎn)模塊將TSIOA模型化簡(jiǎn)為最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)轉(zhuǎn)移圖(MSTGSS),然后利用時(shí)間轉(zhuǎn)移去除模塊繼續(xù)對(duì)MSTGSS進(jìn)行化簡(jiǎn),輸出不含抽象時(shí)間延遲遷移的穩(wěn)定符號(hào)狀態(tài)轉(zhuǎn)移圖(USTGSS)。所述的轉(zhuǎn)移動(dòng)作生成器根據(jù)模型轉(zhuǎn)換器輸出的USTGSS,利用上述的測(cè)試方法中步驟(4)所述的方法,生成可行的含時(shí)間延遲變量的轉(zhuǎn)移動(dòng)作序列,其中,轉(zhuǎn)移動(dòng)作序列中每?jī)蓚€(gè)轉(zhuǎn)移動(dòng)作之間均含有一個(gè)時(shí)間延遲變量,表示時(shí)間的遷移。所述的測(cè)試用例生成和執(zhí)行器動(dòng)態(tài)求解并執(zhí)行所述轉(zhuǎn)移動(dòng)作生成器生成的轉(zhuǎn)移動(dòng)作序列中的時(shí)間延遲變量,從而獲得系統(tǒng)的時(shí)間測(cè)試用例,并通過(guò)測(cè)試執(zhí)行接口來(lái)執(zhí)行測(cè)試。時(shí)間測(cè)試用例生成和執(zhí)行器中含有線性約束求解模塊、用例生成模塊和用例執(zhí)行模塊,其中,線性約束求解模塊用于求解時(shí)間延遲量,該模塊可以以多項(xiàng)式時(shí)間求解滿足時(shí)間約束的時(shí)間延遲變量的值。為了獲得更好的錯(cuò)誤檢測(cè)能力,所述線性約束求解模塊在求解時(shí)間延遲變量時(shí)不僅考慮系統(tǒng)本身的各種時(shí)間約束,還引入了時(shí)間極值函數(shù),從而實(shí)現(xiàn)各種時(shí)間延遲策略。利用線性約束求解模塊求解轉(zhuǎn)移動(dòng)作序列中的時(shí)間延遲變量,用例生成模塊便可以得到測(cè)試用例,同時(shí),用例執(zhí)行模塊也可以通過(guò)測(cè)試執(zhí)行接口執(zhí)行所得到的測(cè)試用例。所述時(shí)間極值函數(shù)是指TSIOA模型中使用到的各種計(jì)時(shí)器的線性表達(dá)式的極值,包括極大值和極小值,以及它們的組合情況。所述時(shí)間延遲策略主要是指各種時(shí)間延遲量的極值,包括轉(zhuǎn)移動(dòng)作序列最長(zhǎng)、最短時(shí)間延遲,時(shí)間延遲變量最大、最小值,時(shí)間延遲變量的極值組合等。所述測(cè)試執(zhí)行接口實(shí)現(xiàn)所述測(cè)試管理器與所述測(cè)試用例執(zhí)行器之間的連接,測(cè)試用例中所有的輸入轉(zhuǎn)移動(dòng)作均通過(guò)測(cè)試執(zhí)行接口發(fā)送給被測(cè)系統(tǒng),同時(shí),測(cè)試系統(tǒng)也通過(guò)測(cè)試執(zhí)行接口來(lái)接收所有被測(cè)系統(tǒng)的輸出轉(zhuǎn)移動(dòng)作。本發(fā)明所實(shí)現(xiàn)的基于時(shí)間安全輸入輸出自動(dòng)機(jī)的測(cè)試方法及測(cè)試系統(tǒng),可以將時(shí)間測(cè)試用例中的轉(zhuǎn)移動(dòng)作和時(shí)間延遲量分開(kāi)處理,其中前者是在不含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖基礎(chǔ)上利用時(shí)間無(wú)關(guān)靜態(tài)測(cè)試方法獲得,后者通過(guò)建立線性約束系統(tǒng)和引入時(shí)間極值函數(shù)在測(cè)試過(guò)程中動(dòng)態(tài)求解得到。利用這種方法可以根據(jù)系統(tǒng)的模型,很方便地生成滿足各種結(jié)構(gòu)覆蓋和時(shí)間延遲極值覆蓋標(biāo)準(zhǔn)的測(cè)試用例集合,適用于各種具有時(shí)間約束軟件系統(tǒng)的黑盒測(cè)試。圖1是基于時(shí)間輸入輸出自動(dòng)機(jī)模型的測(cè)試方法流程圖;圖2是基于時(shí)間輸入輸出自動(dòng)機(jī)模型的測(cè)試系統(tǒng)結(jié)構(gòu)示意圖;圖3是實(shí)施例中一時(shí)間安全輸入輸出自動(dòng)機(jī)模型示意圖;圖4是圖3中的模型經(jīng)過(guò)預(yù)處理得到的符號(hào)狀態(tài)集合;圖5是圖4經(jīng)過(guò)符號(hào)狀態(tài)拆分后得到的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)轉(zhuǎn)移圖G;圖6是圖5去除了抽象時(shí)間轉(zhuǎn)移后得到的不含抽象時(shí)間的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)轉(zhuǎn)移圖。具體實(shí)施例方式以下結(jié)合附圖對(duì)本發(fā)明所提供的基于時(shí)間輸入輸出自動(dòng)機(jī)模型的測(cè)試方法及其系統(tǒng)做進(jìn)一步的描述,但不構(gòu)成對(duì)本發(fā)明的限制。實(shí)施例一基于時(shí)間輸入輸出自動(dòng)機(jī)模型的測(cè)試方法(1)采用時(shí)間安全輸入輸出自動(dòng)機(jī)建立被測(cè)系統(tǒng)的形式模型,該模型如圖3所示,該模型初始位置為I0,時(shí)鐘x和y都為0,隨著時(shí)間的變化,當(dāng)x大于1時(shí),系統(tǒng)便可以接受動(dòng)作a,并轉(zhuǎn)移到位置I1,在轉(zhuǎn)移過(guò)程中將時(shí)鐘y重置為0;同樣,當(dāng)系統(tǒng)位于I1,時(shí)鐘x小于3并且y大于1時(shí),系統(tǒng)可以輸動(dòng)作c,并轉(zhuǎn)移到位置I3上。該圖中位置I0和位置I1分別有一個(gè)時(shí)間不變量限制,表示只有x小于2,系統(tǒng)才可以位于I0,只有當(dāng)y小于等于2,系統(tǒng)才可以位于I1。(2)對(duì)圖3所示的時(shí)間輸入輸出自動(dòng)機(jī)模型進(jìn)行化簡(jiǎn),得到含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖。在本實(shí)施例中,該步驟是通過(guò)一種改進(jìn)的符號(hào)狀態(tài)拆分方法實(shí)現(xiàn)的,具體的算法實(shí)現(xiàn)如下其中,參數(shù)A表示一個(gè)時(shí)間輸入輸出自動(dòng)機(jī)(TSIOA)模型,ρ表示當(dāng)前符號(hào)狀態(tài)集,α表示可達(dá)符號(hào)狀態(tài)集,σ表示當(dāng)前α集合中穩(wěn)定的符號(hào)狀態(tài)集合。該算法中的第3-6步是預(yù)處理過(guò)程,其中第3、4步將一個(gè)TSIOA模型A的每一個(gè)位置和其時(shí)間不變量組合構(gòu)成最初的符號(hào)狀態(tài)集合W,第5、6步將W中的每一個(gè)符號(hào)狀態(tài)根據(jù)A中與其對(duì)應(yīng)的轉(zhuǎn)移的條件進(jìn)行拆分。從第8步開(kāi)始,對(duì)符號(hào)狀態(tài)集中符號(hào)狀態(tài)進(jìn)行拆分,如果一個(gè)可達(dá)符號(hào)狀態(tài)X已經(jīng)是穩(wěn)定的,那么第12步將X加到σ并將其所有緊后符號(hào)狀態(tài)加入σ中;否則將X移出穩(wěn)定的符號(hào)狀態(tài)集合α,為了避免α為空,第14步對(duì)X的拆分結(jié)果進(jìn)行判斷,如果存在含有初始狀態(tài)的符號(hào)狀態(tài)Y,則將其加入到α;第15、16步分別將X的緊前符號(hào)狀態(tài)移出σ,并根據(jù)拆分結(jié)果更新當(dāng)前符號(hào)狀態(tài)集ρ。第10步中split拆分操作得到的符號(hào)狀態(tài)集合是最簡(jiǎn)穩(wěn)定的,所以最終得到的符號(hào)狀態(tài)集合是最簡(jiǎn)穩(wěn)定的。本實(shí)施例中,以圖3所示的時(shí)間輸入輸出自動(dòng)機(jī)模型為參數(shù)調(diào)用上述的算法,經(jīng)過(guò)算法的預(yù)處理過(guò)程可以得到了如圖4所示的經(jīng)過(guò)預(yù)處理獲得的符號(hào)狀態(tài)集合,該圖中包含11個(gè)符號(hào)狀態(tài),其中每個(gè)符號(hào)狀態(tài)中的位置信息表示了該符號(hào)狀態(tài)是從時(shí)間自動(dòng)輸入輸出自動(dòng)機(jī)模型的哪個(gè)狀態(tài)經(jīng)過(guò)預(yù)處理拆分得到的。在圖3所示算法的輸出結(jié)果的基礎(chǔ)上增加轉(zhuǎn)移關(guān)系后,得到了圖5所示的經(jīng)過(guò)符號(hào)狀態(tài)拆分后得到的轉(zhuǎn)移圖G,該圖包含了10符號(hào)狀態(tài)圖,各個(gè)符號(hào)狀態(tài)圖中轉(zhuǎn)移均滿足穩(wěn)定性要求,另外除了動(dòng)作轉(zhuǎn)移之外,該圖還含有抽象時(shí)間轉(zhuǎn)移τ,表示一個(gè)時(shí)間長(zhǎng)度不確定的時(shí)間轉(zhuǎn)移。圖5所示的這種轉(zhuǎn)移圖稱為最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)轉(zhuǎn)移圖(MSTGSS),它是一個(gè)三元組{V,E,v0},分別表示轉(zhuǎn)移圖中符號(hào)狀態(tài)集合,轉(zhuǎn)移集合以及初始符號(hào)狀態(tài)。(3)對(duì)含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖進(jìn)行化簡(jiǎn),得到不含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖。在本實(shí)施例中,該步驟具體所采用的算法如下其主要思想是將轉(zhuǎn)移圖中的抽象時(shí)間延遲轉(zhuǎn)移與緊跟其后的動(dòng)作轉(zhuǎn)移合并,合并的轉(zhuǎn)移只用動(dòng)作轉(zhuǎn)移來(lái)表示,從而將抽象時(shí)間延遲轉(zhuǎn)移以及那些只用于表示這種轉(zhuǎn)移的符號(hào)狀態(tài)從轉(zhuǎn)移圖中去除。其中,方法第3至10步用于將抽象時(shí)間延遲轉(zhuǎn)移從G中去除方法第11至13步用于刪除那些由于去除了顯示時(shí)間延遲轉(zhuǎn)移而導(dǎo)致在符號(hào)狀態(tài)圖中不可達(dá)的符號(hào)狀態(tài)及相關(guān)轉(zhuǎn)移;方法第14至16步在符號(hào)狀態(tài)圖中每一個(gè)轉(zhuǎn)移動(dòng)作之前增加一個(gè)用于表示時(shí)間遷移的變量ti。將圖5所示的MSTGSSG作為輸入,調(diào)用上述的算法得到如圖6所示的符號(hào)狀態(tài)轉(zhuǎn)移圖G’,該圖通過(guò)將圖5中的抽象時(shí)間轉(zhuǎn)移以及只用于表示抽象時(shí)間轉(zhuǎn)移的符號(hào)狀態(tài)去除之后,只包含6個(gè)符號(hào)狀態(tài),其中每一個(gè)轉(zhuǎn)移都是動(dòng)作轉(zhuǎn)移;另外為了表示動(dòng)作轉(zhuǎn)移之前的時(shí)間延遲量,圖6中在每個(gè)轉(zhuǎn)移動(dòng)作前增加了一個(gè)時(shí)間延遲變量。圖6所示的這種轉(zhuǎn)移圖稱為不含抽象時(shí)間轉(zhuǎn)移的穩(wěn)定符號(hào)狀態(tài)轉(zhuǎn)移圖(USTGSS)。USTGSS使用時(shí)間變量來(lái)統(tǒng)一表示MSTGSS中的抽象時(shí)間延遲以及隱含的時(shí)間延遲,是對(duì)MSTGSS的一種更簡(jiǎn)潔的表示。(4)根據(jù)不含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖生成可執(zhí)行的含時(shí)間延遲變量的轉(zhuǎn)移動(dòng)作序列;USTGSS中轉(zhuǎn)移標(biāo)號(hào)是由一個(gè)時(shí)間變量和一個(gè)轉(zhuǎn)移動(dòng)作構(gòu)成,因?yàn)閁STGSS具有穩(wěn)定性,所以生成的轉(zhuǎn)移動(dòng)作序列一定可行,如果不考慮時(shí)間因素,便可以使用時(shí)間無(wú)關(guān)的測(cè)試方法來(lái)生成轉(zhuǎn)移動(dòng)作序列。因?yàn)閁STGSS中不包含確定的時(shí)間信息,所以生成的動(dòng)作序列無(wú)法直接執(zhí)行,故而只能使用靜態(tài)方法來(lái)生成轉(zhuǎn)移動(dòng)作序列。在轉(zhuǎn)移動(dòng)作序列的生成過(guò)程中,可以考慮各種結(jié)構(gòu)覆蓋標(biāo)準(zhǔn),如狀態(tài)覆蓋、轉(zhuǎn)移覆蓋和路徑覆蓋等等。另外,為了避免生成的動(dòng)作序列過(guò)多,在生成測(cè)試用例時(shí)還可以引入測(cè)試目的,從而只對(duì)系統(tǒng)的某一部分或者特定屬性進(jìn)行測(cè)試。(5)執(zhí)行轉(zhuǎn)移動(dòng)作序列,并且求解轉(zhuǎn)移動(dòng)作序列中時(shí)間延遲變量的值,生成時(shí)間測(cè)試用例。在本實(shí)施例中,轉(zhuǎn)移動(dòng)作序列σ的具體執(zhí)行過(guò)程為其中,第2步首先根據(jù)符號(hào)狀態(tài)轉(zhuǎn)移系統(tǒng)G和轉(zhuǎn)移動(dòng)作序列σ建立一個(gè)線性約束系統(tǒng)CON;因?yàn)橄到y(tǒng)輸出動(dòng)作的時(shí)間無(wú)法控制,因而第4-6步利用線性約束求解方法求解時(shí)間變量時(shí),只對(duì)到下一個(gè)輸出動(dòng)作之前所有輸入動(dòng)作前的時(shí)間延遲量進(jìn)行求解;第7-9步根據(jù)所求得的時(shí)間延遲量來(lái)執(zhí)行相應(yīng)的輸入動(dòng)作;第10-17步處理被測(cè)系統(tǒng)期望的輸出動(dòng)作,如果輸出動(dòng)作不是所期望的或者等待時(shí)間不滿足約束限制,則返回false,否則繼續(xù)執(zhí)行。因?yàn)闇y(cè)試系統(tǒng)對(duì)被測(cè)系統(tǒng)只具有有限的觀察性,如果一個(gè)輸入動(dòng)作之后沒(méi)有輸出動(dòng)作,那么便無(wú)法判斷該輸入動(dòng)作是否被正確地執(zhí)行,故而上述執(zhí)行過(guò)程中只執(zhí)行σ中最后一個(gè)輸出動(dòng)作便返回。其中,第6步在采用線性約束求解方法求解時(shí)間延遲變量值時(shí),滿足時(shí)間約束的時(shí)間延遲變量的解往往是一個(gè)實(shí)數(shù)集合,因此必須考慮如何從中選擇適合的解來(lái)執(zhí)行測(cè)試。這里我們的策略是選擇時(shí)間延遲變量的極值來(lái)執(zhí)行測(cè)試,以便能夠更加有效地檢測(cè)系統(tǒng)中存在的錯(cuò)誤。為了能夠選擇時(shí)問(wèn)延遲變量的極值來(lái)執(zhí)行轉(zhuǎn)移動(dòng)作序列,我們?cè)诜椒ㄖ幸霕O值函數(shù)fun??紤]到線性約束求解方法的能力,fun可以是上述執(zhí)行過(guò)程中第6步中所涉及的時(shí)間變量構(gòu)成的線性函數(shù)。在上述執(zhí)行過(guò)程的第6步求解時(shí)間延遲變量時(shí),除了要滿足系統(tǒng)中相應(yīng)的時(shí)間約束條件,還必須讓函數(shù)fun取極大或極小值。實(shí)際的測(cè)試執(zhí)行過(guò)程中,用戶可以根據(jù)不同的測(cè)試目的來(lái)選擇相應(yīng)的極值函數(shù)。例如,為了測(cè)試一個(gè)轉(zhuǎn)移動(dòng)作序列的最長(zhǎng)(短)時(shí)間執(zhí)行過(guò)程,可以將極值函數(shù)定義為所涉及的所有時(shí)間變量之和。(6)報(bào)告測(cè)試執(zhí)行結(jié)果。實(shí)施例二基于時(shí)間輸入輸出自動(dòng)機(jī)模型的測(cè)試系統(tǒng)根據(jù)上述實(shí)施例一中所描述的方法,用于實(shí)現(xiàn)該方法的一個(gè)軟件系統(tǒng)的組成如圖2所示,該系統(tǒng)包括系統(tǒng)建模器,用于實(shí)現(xiàn)實(shí)施例一中的步驟(1);模型轉(zhuǎn)換器,其包括時(shí)間自動(dòng)機(jī)化簡(jiǎn)模塊和時(shí)間轉(zhuǎn)移去除模塊,分別用于實(shí)現(xiàn)步驟(2)和(3);轉(zhuǎn)移動(dòng)作生成器,用于實(shí)現(xiàn)步驟(4),測(cè)試用例生成和執(zhí)行器,用于實(shí)現(xiàn)步驟(5),其包括線性約束求解模塊、測(cè)試用例生成模塊和測(cè)試用例執(zhí)行模塊;測(cè)試執(zhí)行接口,用于實(shí)現(xiàn)所述測(cè)試用例生成和執(zhí)行器與測(cè)試管理器之間的連接,測(cè)試用例中所有的輸入轉(zhuǎn)移動(dòng)作均通過(guò)測(cè)試執(zhí)行接口發(fā)送給被測(cè)系統(tǒng),同時(shí),測(cè)試系統(tǒng)也通過(guò)測(cè)試執(zhí)行接口來(lái)接收所有被測(cè)系統(tǒng)的輸出轉(zhuǎn)移動(dòng)作。以上對(duì)本發(fā)明所述的基于時(shí)間安全輸入輸出自動(dòng)機(jī)的測(cè)試方法及其進(jìn)行了詳細(xì)的說(shuō)明,但顯然本發(fā)明的具體實(shí)現(xiàn)形式并不局限于此。對(duì)于本
技術(shù)領(lǐng)域
的一般技術(shù)人員來(lái)說(shuō),在不背離本發(fā)明所述方法的精神和權(quán)利要求范圍的情況下對(duì)它進(jìn)行的各種顯而易見(jiàn)的改變都在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1.一種基于時(shí)間安全輸入輸出自動(dòng)機(jī)的測(cè)試方法,包括如下步驟(1)采用時(shí)間安全輸入輸出自動(dòng)機(jī)建立被測(cè)系統(tǒng)的形式模型;(2)對(duì)被測(cè)系統(tǒng)的形式模型進(jìn)行化簡(jiǎn),得到含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖;(3)對(duì)含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖進(jìn)行化簡(jiǎn),得到不含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖;(4)根據(jù)不含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖生成可執(zhí)行的含時(shí)間延遲變量的轉(zhuǎn)移動(dòng)作序列;(5)執(zhí)行轉(zhuǎn)移動(dòng)作序列,并且求解轉(zhuǎn)移動(dòng)作序列中時(shí)間延遲變量的值,生成時(shí)間測(cè)試用例。2.如權(quán)利要求1所述的測(cè)試方法,其特征在于,所述的步驟(2)包括1)根據(jù)模型中的位置以及位置對(duì)應(yīng)的時(shí)間不變量創(chuàng)建最初的符號(hào)狀態(tài)集合;2)根據(jù)每個(gè)位置自身的時(shí)間域和從其出發(fā)的轉(zhuǎn)移的約束條件來(lái)進(jìn)行拆分;3)然后從初始符號(hào)狀態(tài)出發(fā),按照轉(zhuǎn)移關(guān)系來(lái)遍歷所述的狀態(tài)集,每遇到一個(gè)符號(hào)狀態(tài)便利用拆分操作來(lái)判斷其是否滿足穩(wěn)定性,如果不滿足則回溯到該符號(hào)狀態(tài)的緊前符號(hào)狀態(tài)重新判斷其穩(wěn)定性,不斷遞歸地進(jìn)行符號(hào)狀態(tài)拆分,直至獲得滿足穩(wěn)定性的符號(hào)狀態(tài)集合。3.如權(quán)利要求1所述的測(cè)試方法,其特征在于,所述的步驟(3)包括1)將抽象時(shí)間轉(zhuǎn)移和相鄰的動(dòng)作轉(zhuǎn)移進(jìn)行合并;2)將不可達(dá)符號(hào)狀態(tài)從轉(zhuǎn)移圖中去除。4.如權(quán)利要求1所述的測(cè)試方法,其特征在于,所述的步驟(5)中求解時(shí)間延遲變量的值采用約束求解方法,首先根據(jù)轉(zhuǎn)移動(dòng)作序列建立線性約束系統(tǒng),然后引入時(shí)間極值函數(shù),求解當(dāng)前連續(xù)輸入動(dòng)作之前的時(shí)間延遲變量,并根據(jù)求得的結(jié)果執(zhí)行測(cè)試,直到轉(zhuǎn)移動(dòng)作序列執(zhí)行完畢。5.如權(quán)利要求4所述的測(cè)試方法,其特征在于,所述的時(shí)間極值函數(shù)由用戶指定,其形式為時(shí)間安全輸入輸出自動(dòng)機(jī)模型中各種計(jì)時(shí)器的線性表達(dá)式的極值,包括極大值和極小值,以及它們的組合情況。6.一種基于時(shí)間安全輸入輸出自動(dòng)機(jī)的測(cè)試系統(tǒng),其特征在于,包括系統(tǒng)建模器,用于對(duì)被測(cè)系統(tǒng)進(jìn)行建模,生成時(shí)間安全輸入輸出自動(dòng)機(jī)模型;模型轉(zhuǎn)換器,用于對(duì)所述的模型進(jìn)行化簡(jiǎn),輸出不含抽象時(shí)間延遲遷移的穩(wěn)定符號(hào)狀態(tài)轉(zhuǎn)移圖;轉(zhuǎn)移動(dòng)作生成器,用于根據(jù)所述的穩(wěn)定符號(hào)狀態(tài)轉(zhuǎn)移圖,生成可執(zhí)行的含時(shí)間延遲變量的轉(zhuǎn)移動(dòng)作序列;時(shí)間測(cè)試用例生成和執(zhí)行器,用于求解所述符號(hào)狀態(tài)轉(zhuǎn)移圖中的時(shí)間延遲量,進(jìn)而得到測(cè)試用例;測(cè)試執(zhí)行接口,用于實(shí)現(xiàn)所述測(cè)試管理器與所述測(cè)試用例執(zhí)行器之間的連接。7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述的模型轉(zhuǎn)換器包括時(shí)間自動(dòng)機(jī)化簡(jiǎn)模塊,用于將時(shí)間安全輸入輸出自動(dòng)機(jī)模型化簡(jiǎn)成含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖;時(shí)間轉(zhuǎn)移去除模塊,用于將含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖進(jìn)一步化簡(jiǎn)成不含抽象時(shí)間轉(zhuǎn)移的最簡(jiǎn)穩(wěn)定符號(hào)狀態(tài)圖。8.如權(quán)利要求6所述的測(cè)試系統(tǒng),其特征在于,所述的時(shí)間測(cè)試用例生成和執(zhí)行器中含有線性約束求解模塊、用例生成模塊和用例執(zhí)行模塊,其中,線性約束求解模塊用于求解時(shí)間延遲量,用例生成模塊可以根據(jù)所求得的時(shí)間延遲變量的值得到測(cè)試用例。9.如權(quán)利要求8所述的測(cè)試系統(tǒng),其特征在于,所述線性約束求解模塊在求解時(shí)間延遲變量時(shí)不僅滿足系統(tǒng)本身的各種時(shí)間約束,還引入了時(shí)間極值函數(shù)來(lái)實(shí)現(xiàn)各種時(shí)間延遲策略。10.如權(quán)利要求9所述的測(cè)試系統(tǒng),其特征在于,所述時(shí)間極值函數(shù)包括模型中使用到的各種計(jì)時(shí)器的線性表達(dá)式的極值,包括極大值和極小值,以及它們的組合情況。全文摘要本發(fā)明基于時(shí)間自動(dòng)機(jī)的一種變體——時(shí)間安全輸入輸出自動(dòng)機(jī)提出了一種實(shí)時(shí)系統(tǒng)測(cè)試系統(tǒng)和測(cè)試方法。該方法首先將時(shí)間安全輸入輸出自動(dòng)機(jī)描述的系統(tǒng)模型轉(zhuǎn)換為不含抽象時(shí)間延遲遷移的穩(wěn)定符號(hào)狀態(tài)轉(zhuǎn)移圖;然后采用基于輸入/輸出標(biāo)號(hào)遷移系統(tǒng)的測(cè)試方法來(lái)靜態(tài)生成滿足各種結(jié)構(gòu)覆蓋標(biāo)準(zhǔn)的含時(shí)間延遲變量轉(zhuǎn)移動(dòng)作序列;最后,引入的時(shí)間極值函數(shù)并利用線性約束求解方法動(dòng)態(tài)求解轉(zhuǎn)移動(dòng)作序列中的時(shí)間延遲變量以進(jìn)行測(cè)試。利用本方法所實(shí)現(xiàn)的測(cè)試系統(tǒng)適用于各種帶時(shí)間約束的軟件系統(tǒng)的黑盒測(cè)試。文檔編號(hào)G06F11/36GK1971535SQ20051008693公開(kāi)日2007年5月30日申請(qǐng)日期2005年11月21日優(yōu)先權(quán)日2005年11月21日發(fā)明者趙琛,陳偉申請(qǐng)人:中國(guó)科學(xué)院軟件研究所
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1