一種基于模型的軟件測(cè)試方法
本文關(guān)鍵詞:軟件測(cè)試技術(shù)
一種基于模型的軟件測(cè)試方法有效
申請(qǐng)?zhí)枺篊N201310455252.9 (進(jìn)入下載頁(yè)) 申請(qǐng)日:2013-09-27
申請(qǐng)/專(zhuān)利權(quán)人:西安電子科技大學(xué) 公開(kāi)/公告號(hào):CN103530228A
發(fā)明/設(shè)計(jì)人:段振華;苗俊磊;張南;田聰;王小兵;羅玲 公開(kāi)/公告日:2014-01-22
主分類(lèi)號(hào):G06F11/36
分類(lèi)號(hào):G06F11/36
搜索關(guān)鍵詞:
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于西安電子科技大學(xué),未經(jīng)西安電子科技大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【】
【說(shuō)明書(shū)】:
技術(shù)領(lǐng)域
本發(fā)明涉及測(cè)試技術(shù)領(lǐng)域,具體來(lái)講是一種基于模型的軟件測(cè)試方法。
背景技術(shù)
近幾年來(lái),隨著計(jì)算機(jī)軟硬件技術(shù)的迅猛發(fā)展,各種各樣的軟件系統(tǒng)應(yīng)運(yùn)而生,社會(huì)各行各業(yè)對(duì)軟件系統(tǒng)的依賴(lài)越來(lái)越強(qiáng),軟件系統(tǒng)的規(guī)模越來(lái)越大,復(fù)雜性也越來(lái)越高,對(duì)軟件系統(tǒng)的質(zhì)量要求也顯得更為重要。軟件測(cè)試和驗(yàn)證,是保證軟件正確性和提高軟件可靠性的最基本、最重要的手段。為了盡量減少花費(fèi)在軟件產(chǎn)品測(cè)試上的時(shí)間和精力,大量研究機(jī)構(gòu)開(kāi)始投入到軟件測(cè)試方法與測(cè)試工具的研究上。目前,軟件測(cè)試領(lǐng)域中的一個(gè)關(guān)鍵的、同時(shí)也是極為困難的問(wèn)題就是:如何設(shè)計(jì)和生成有效的測(cè)試用例。
隨著面向?qū)ο筌浖_(kāi)發(fā)技術(shù)的廣泛應(yīng)用和軟件測(cè)試自動(dòng)化的要求,基于模型的軟件測(cè)試逐漸得到重視。目前,軟件測(cè)試技術(shù)大體上可分為兩大類(lèi):一類(lèi)是白盒測(cè)試技術(shù),另一類(lèi)是黑盒測(cè)試技術(shù)。
白盒測(cè)試技術(shù)是把程序看成裝在一個(gè)白盒子里,即完全了解程序的內(nèi)部結(jié)構(gòu)和處理過(guò)程,按照程序內(nèi)部的邏輯結(jié)構(gòu),檢驗(yàn)程序中的每條通路是否都按照預(yù)定要求正確工作。白盒測(cè)試從考察程序的結(jié)構(gòu)和邏輯出發(fā),驗(yàn)證所構(gòu)造的程序是否符合設(shè)計(jì)要求,白盒測(cè)試包括邏輯覆蓋、域測(cè)試、符號(hào)測(cè)試、路徑分析、程序插樁及程序變異等。
白盒測(cè)試技術(shù)的缺點(diǎn)在于,白盒測(cè)試只根據(jù)程序的內(nèi)部結(jié)構(gòu)進(jìn)行測(cè)試,而不考慮程序的外部特征,如果程序結(jié)構(gòu)本身有問(wèn)題,比如程序邏輯有誤或是有紕漏,就無(wú)法發(fā)現(xiàn)錯(cuò)誤。另外,即使將程序中的每條路徑都測(cè)試了仍然可能有錯(cuò)誤,原因在于:第一,窮舉路徑測(cè)試不能查出程序違反了設(shè)計(jì)規(guī)范;第二,窮舉路徑測(cè)試不可能查出程序中因紕漏路徑而出現(xiàn)的錯(cuò)誤;第三,窮舉路徑測(cè)試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯(cuò)誤。
黑盒測(cè)試技術(shù),又稱(chēng)為功能測(cè)試技術(shù),與白盒測(cè)試技術(shù)恰恰相反,它把程序看成一個(gè)黑盒子,完全不用考慮程序的內(nèi)部結(jié)構(gòu)和處理過(guò)程。黑盒測(cè)試是在程序接口進(jìn)行的測(cè)試,它只檢查程序功能是否按照預(yù)先的要求正常工作,即接收輸入數(shù)據(jù)是否產(chǎn)生正確的輸出結(jié)果。黑盒測(cè)試技術(shù)包括邊界值分析技術(shù)、等價(jià)分類(lèi)技術(shù)及因果圖技術(shù)等。
黑盒測(cè)試技術(shù)的缺點(diǎn)在于,黑盒測(cè)試是一種窮舉輸入的測(cè)試方法,不僅要窮舉所有合法的輸入,還要窮舉那些不合法但是可能的輸入進(jìn)行測(cè)試。但是根據(jù)軟件測(cè)試的局限性,不太可能完全覆蓋所有的輸入情況,測(cè)試代價(jià)太大。黑盒測(cè)試的研究重點(diǎn)在于如何從輸入域中選擇適當(dāng)數(shù)量的、對(duì)發(fā)現(xiàn)錯(cuò)誤具有代表性的測(cè)試輸入來(lái)有效的進(jìn)行測(cè)試。
白盒測(cè)試方法是從開(kāi)發(fā)者的角度在源代碼級(jí)使用軟件分析和理解技術(shù),對(duì)程序的內(nèi)部邏輯結(jié)構(gòu)進(jìn)行分析來(lái)測(cè)試系統(tǒng),而黑盒測(cè)試方法通過(guò)從用戶(hù)的角度測(cè)試軟件系統(tǒng)是否符合需求規(guī)格,這兩類(lèi)方法各有側(cè)重,在測(cè)試的實(shí)踐中是互補(bǔ)的。但它們又各有缺點(diǎn),并且不能在方法內(nèi)部進(jìn)行完善來(lái)解決,而且在面向?qū)ο笳Z(yǔ)境下,軟件的設(shè)計(jì)思路和軟件的結(jié)構(gòu),與傳統(tǒng)的面向過(guò)程的軟件相比有了很大的變化,而傳統(tǒng)的軟件測(cè)試方法不能適應(yīng)這樣的變化。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種基于模型的軟件測(cè)試方法,通過(guò)UML(unified爉odeling爈anguage,統(tǒng)一建模語(yǔ)言)模型圖自動(dòng)生成滿(mǎn)足一定覆蓋準(zhǔn)則的測(cè)試用例,從而快速有效的完成軟件測(cè)試,適應(yīng)軟件的設(shè)計(jì)思路和軟件的結(jié)構(gòu)、與傳統(tǒng)的面向過(guò)程的軟件之間的變化,彌補(bǔ)白盒測(cè)試和黑盒測(cè)試的不足。
為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案,一種基于模型的軟件測(cè)試方法,其特征在于,包括如下步驟:
S1.分析被測(cè)試軟件,根據(jù)測(cè)試目的,確定測(cè)試對(duì)象和測(cè)試特征;
S2.選擇和構(gòu)造UML模型,該UML模型表述了需求所表述的所有可能行為;
S3.對(duì)UML模型進(jìn)行驗(yàn)證,排查UML模型構(gòu)造時(shí)可能出現(xiàn)的有界性、安全性、死鎖和狀態(tài)可達(dá)性,確保UML模型的正確性;
S4.通過(guò)深度優(yōu)先搜索算法遍歷UML模型,自動(dòng)生成測(cè)試用例,根據(jù)充分性準(zhǔn)則計(jì)算相關(guān)的覆蓋率,完成對(duì)測(cè)試用例的評(píng)估;
S5.根據(jù)待測(cè)程序和所述UML模型得到的測(cè)試用例生成測(cè)試腳本,自動(dòng)執(zhí)行所述測(cè)試腳本,并保存執(zhí)行測(cè)試腳本得到的實(shí)際輸出結(jié)果;
S6.根據(jù)測(cè)試用例的實(shí)際輸出與預(yù)期輸出的比較,得出測(cè)試結(jié)果,再根據(jù)測(cè)試目標(biāo)與預(yù)先設(shè)定好的停止準(zhǔn)則,決定是否需要修改模型或修改待測(cè)程序。
在上述技術(shù)方案的基礎(chǔ)上,所述充分性準(zhǔn)則包括:
基于控制流的充分性準(zhǔn)則:語(yǔ)句覆蓋準(zhǔn)則、條件覆蓋準(zhǔn)則和判斷覆蓋準(zhǔn)則;
基于數(shù)據(jù)流的充分性準(zhǔn)則:定義引用覆蓋準(zhǔn)則、上下文覆蓋準(zhǔn)則;
基于故障的充分性準(zhǔn)則:弱變異覆蓋準(zhǔn)則、強(qiáng)變異覆蓋準(zhǔn)則。
在上述技術(shù)方案的基礎(chǔ)上,所述覆蓋率用來(lái)度量測(cè)試完整性和充分性,其包括:邏輯覆蓋、函數(shù)覆蓋以及功能覆蓋,其中邏輯覆蓋包括:語(yǔ)句覆蓋、判定覆蓋、條件覆蓋以及路徑覆蓋。
在上述技術(shù)方案的基礎(chǔ)上,所述S1中分析被測(cè)試軟件包括:被測(cè)試軟件是面向?qū)ο蟮拈_(kāi)發(fā)技術(shù)或者是面向過(guò)程的開(kāi)發(fā)技術(shù)、被測(cè)試軟件所采用的開(kāi)發(fā)語(yǔ)言、被測(cè)試軟件開(kāi)發(fā)的系統(tǒng)環(huán)境。
在上述技術(shù)方案的基礎(chǔ)上,所述UML模型為機(jī)器可讀的模型,用于對(duì)被測(cè)試軟件進(jìn)行描述、可視化處理、構(gòu)造和建立軟件系統(tǒng)的文檔。
在上述技術(shù)方案的基礎(chǔ)上,所述S3中,對(duì)UML模型進(jìn)行有界性、安全性、死鎖及狀態(tài)可達(dá)性驗(yàn)證。
在上述技術(shù)方案的基礎(chǔ)上,所述停止準(zhǔn)則包括實(shí)際輸出結(jié)果與測(cè)試用例的預(yù)期輸出結(jié)果相同,程序所具有的功能與UML模型所具有的功能一致。
在上述技術(shù)方案的基礎(chǔ)上,所述測(cè)試用例主要包括三部分:測(cè)試場(chǎng)景、測(cè)試輸入數(shù)據(jù)和預(yù)期輸出序列,,測(cè)試用例的生成方法主要針對(duì)所述三部分相關(guān)信息的獲取。
在上述技術(shù)方案的基礎(chǔ)上,所述測(cè)試腳本為可以被自動(dòng)化測(cè)試工具執(zhí)行的指令,所述測(cè)試腳本可以被創(chuàng)建,或使用測(cè)試自動(dòng)化工具自動(dòng)生成,或用編程語(yǔ)言編程來(lái)完成,或通過(guò)創(chuàng)建、用測(cè)試自動(dòng)化工具自動(dòng)生成及用編程語(yǔ)言編程共同完成。
在上述技術(shù)方案的基礎(chǔ)上,所述測(cè)試腳本包括以下功能:
a.驅(qū)動(dòng)程序執(zhí)行,包括編譯程序執(zhí)行和運(yùn)行程序執(zhí)行;
b.檢測(cè)程序的執(zhí)行過(guò)程;
c.向程序傳遞所需的輸入,并得到程序的執(zhí)行輸出。
本發(fā)明的有益效果在于:
1、本發(fā)明基于模型的軟件測(cè)試方法,使得基于UML的用例生成方法的流程更加規(guī)范,更加易于生成滿(mǎn)足高覆蓋要求的測(cè)試用例。
2.所述生成測(cè)試用例均是通過(guò)UML模型得到的,并且可以通過(guò)結(jié)合待測(cè)程序自動(dòng)執(zhí)行測(cè)試,故而大大提高了測(cè)試的自動(dòng)化水平。
3、在基于模型的軟件測(cè)試中,測(cè)試用例的生成僅僅依賴(lài)于UML模型,并不依賴(lài)于被測(cè)試的軟件,因此測(cè)試用例的生成可以在軟件開(kāi)發(fā)完成前進(jìn)行。
4、系統(tǒng)的模型是根據(jù)系統(tǒng)功能需求構(gòu)建的,所以通過(guò)模型生成的測(cè)試用例可以直接覆蓋系統(tǒng)的需求,減少測(cè)試用例的冗余。
5、當(dāng)需求或者系統(tǒng)發(fā)生更改時(shí),基于模型的軟件測(cè)試只需要根據(jù)改變后的模型重新生成測(cè)試用例,易于維護(hù)。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例基于模型的軟件測(cè)試方法流程圖。
圖2為本發(fā)明步驟S4流程圖;
圖3為本發(fā)明步驟S5流程圖;
圖4為本發(fā)明步驟S6流程圖。
具體實(shí)施方式
以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
如圖1所示,本發(fā)明為一種基于模型的軟件測(cè)試方法,所述方法包括以下步驟:
S1:充分了解軟件需求規(guī)范和設(shè)計(jì)文檔、用戶(hù)手冊(cè),了解被測(cè)系統(tǒng),根據(jù)測(cè)試目標(biāo)確定被測(cè)組件及其功能特征。分析被測(cè)試軟件,根據(jù)測(cè)試目的,確定測(cè)試對(duì)象和測(cè)試特征;
S2:選擇和構(gòu)造UML模型,該UML模型表述了需求所表述的所有可能行為;通過(guò)軟件的系統(tǒng)特征和各個(gè)模型的特征,選擇并建立合適的模型作為測(cè)試用例生成的模型。
S3:模型驗(yàn)證:
基于形式化方法與可視化UML相結(jié)合的建模思想,設(shè)計(jì)一套從UML模型到Promela模型的轉(zhuǎn)換規(guī)則,開(kāi)發(fā)由UML模型自動(dòng)生成Promela代碼的轉(zhuǎn)換工具。在轉(zhuǎn)換工具中通過(guò)調(diào)用SPIN自動(dòng)驗(yàn)證Promela代碼,來(lái)驗(yàn)證UML模型,排查模型構(gòu)造時(shí)可能出現(xiàn)的問(wèn)題,以確保UML模型正確性。
S4:測(cè)試用例自動(dòng)生成:具體請(qǐng)參考圖2,測(cè)試用例主要包含了測(cè)試場(chǎng)景、測(cè)試輸入數(shù)據(jù)和預(yù)期輸出序列這三部分內(nèi)容,測(cè)試用例的生成主要針對(duì)自動(dòng)獲取這三部分的相關(guān)信息。在生成測(cè)試用例時(shí),我們首先需要將由步驟S2、S3得到的UML模型轉(zhuǎn)化為形式化模型,通過(guò)深度優(yōu)先搜索算法,得到所有的測(cè)試場(chǎng)景,再由測(cè)試人員根據(jù)軟件系統(tǒng)的需求在測(cè)試場(chǎng)景上添加輸入數(shù)據(jù)等所需的信息,完成測(cè)試用例的生成。
在生成測(cè)試用例的過(guò)程中,需要對(duì)于選擇和循環(huán)等進(jìn)行處理,找出形式化模型上所有的路徑,每條路徑即是一個(gè)測(cè)試場(chǎng)景。
S5:請(qǐng)參考圖3,測(cè)試用例自動(dòng)執(zhí)行:測(cè)試用例的自動(dòng)執(zhí)行是軟件測(cè)試自動(dòng)化的關(guān)鍵步驟,以下為具體實(shí)施過(guò)程:
分析由S4得到的測(cè)試用例,若能從UML模型得到的測(cè)試用例中得到輸入數(shù)據(jù)和預(yù)期輸出,則采用由UML模型得到的測(cè)試數(shù)據(jù),否則根據(jù)被測(cè)程序建立約束系統(tǒng),然后通過(guò)隨機(jī)法、靜態(tài)法、動(dòng)態(tài)法或者試探法,求解約束系統(tǒng),得到測(cè)試數(shù)據(jù)。
為您推薦 專(zhuān)利分類(lèi)
G 物理
G06 計(jì)算;推算;計(jì)數(shù)G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過(guò)測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過(guò)處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過(guò)軟件的測(cè)試或調(diào)試防止錯(cuò)誤
本文編號(hào):1174461
本文鏈接:http://www.sikaile.net/wenshubaike/dxkc/1174461.html