999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于模型的軟件測試用例生成方法比較研究

2017-03-29 07:45:19趙鶴高婉玲
現代計算機 2017年4期
關鍵詞:成本檢測方法

趙鶴,高婉玲

(四川大學計算機學院,成都 610064)

基于模型的軟件測試用例生成方法比較研究

趙鶴,高婉玲

(四川大學計算機學院,成都 610064)

隨著軟件系統的規模和復雜度的增加,軟件測試的自動化提上日程,軟件測試用例的自動化生成成為降低測試成本的重要途徑。模型檢測技術和工具的出現,使得軟件測試用例的生成更加自動化。本文對基于模型檢測技術的測試用例自動生成方法進行評估,與傳統的基于有限狀態機(FSM)模型的測試用例自動生成方法進行比較,采用系統文獻綜述和可控實驗的方法,進行定性和定量的比較分析。結果顯示,基于模型檢測技術的測試用例自動生成方法在自動化程度、測試覆蓋率、測試成本等方面都具有優勢,是一種可以應用和進一步研究的測試用例自動生成方案。

軟件自動化測試;測試用例自動生成;基于模型的測試用例生成;模型檢測;有限狀態機

0 引言

軟件自動化測試是把人工的測試行為轉化為自動執行的一種過程,一般使用特殊的軟件(與被測軟件分離)控制測試的執行,以及實際結果與預測結果的比較[1]。軟件自動化測試主要用于回歸測試,目的是分擔在保證軟件質量的前提下,縮短測試周期,降低測試成本。測試用例是一個描述輸入、執行操作以及期望輸出的文檔,用于判斷程序的某個屬性是否能夠正常的執行。測試用例的自動生成是指使用形式化方法,自動化的構建測試用例,是軟件自動化測試的關鍵和難點。

基于模型的測試用例自動生成是一種重要的方法,包括傳統的基于模型的方法和新的基于模型檢測技術的方法。軟件模型是用形式化的方法對軟件特征的抽象和刻畫,常見的、可用于測試用例生成的軟件模型包括:FSM模型、UML模型以及Markov模型等。模型檢測采用狀態空間搜索的方法檢測一個給定的模型是否滿足某個特定的屬性[2]。模型檢測技術通過分析模型的整個狀態空間來判斷給定的模型是否滿足某個屬性,如果屬性沒有得到滿足,模型檢測將會生成反例。對于測試而言,反例可以被看作是測試用例。

本文的研究范圍及目標是:對功能測試環境下基于FSM模型的測試用例生成方法以及基于模型檢測的測試用例生成方法進行比較,進而對基于模型檢測的測試用例生成方法進行評估。

1 測試用例自動生成方法的定性分析

本文在評估基于模型檢測技術的測試用例自動生成方法時,采用系統文獻綜述[3]方法,對現有文獻中的相關內容進行綜述,從定性的角度評估方法。

圖1 文獻年代分布對比圖

如圖1,基于FSM模型的測試用例生成方法起源較早,2006之后發展趨于平緩,目前已較為成熟。模型檢測技術應用于測試用例生成起源于1996年,從2001年之后發展很快,目前相關研究也較多。

表1 基于FSM模型的方法部分文獻作者分布表

表2 基于模型檢測的方法部分文獻作者分布表

從表1和表2可以看出:在基于FSM模型方法相關的220篇文獻中,發表過一篇文獻的占總數的47.27%,2篇的占26.82%,發表過7篇文獻的作者僅占總數的0.91%。在基于模型檢測技術相關的206篇文獻中,發表過一篇文獻的占總數的72.33%,發表過7篇文獻的作者僅占總數的0.49%。說明很多學者都有對這個話題進行研究,但是專注于此方面的作者卻很少,還沒有形成一個核心的作者群。

圖2基于FSM/模型檢測的測試用例生成中文獻數量排名前幾位的作者及篇數。

從圖2可以看出:Vijaykumar,N.L(7篇)和Huaikou,Miao.(7篇)這兩位作者在基于FSM模型方法中出現的頻次相對較高,Fraser,G.(6篇)和Liping,Li.、Saab, D.G.、Wotawa,F.(5篇)這幾位作者在基于模型檢測方法中出現的頻次相對較高,說明這幾位作者及其團隊對這兩個領域相關的研究較多,它們所編寫的文獻對于這兩類方法具有一定的指導意義。

圖2 基于FSM/模型檢測的測試用例生成中文獻數量排名前幾位的作者及篇數

2 測試用例自動生成方法的定性分析結果

發展歷程。基于FSM的測試用例生成方法是最早出現并得到應用的,目前已經具有比較成熟的理論基礎。七十年代末開始,各類基于FSM、EFSM模型的測試用例生成算法逐步出現,主要有T方法、U方法、D方法、W方法等。基于模型檢測的測試用例生成方法出現較晚,但是發展較快,目前的應用也比較廣泛。1996年Callahan[4]等人最早提出了使用模型檢測來自動生成測試用例,隨后越來越多的方法被提出并得到了應用。針對數字系統,一個基于模型檢測的保證高效覆蓋的測試用例覆蓋方法被提出[5]。Wijesekera等人利用模型檢測生成的反例和測試用例之間的形式化關系,用CTL公式得到測試需求,將測試用例集和與需求有關的反例進行覆蓋,從而可以獲得滿足測試準則的測試集[6]。John Rushby提供了使用模型檢測生成用于檢測軟/硬件的有效的測試集的方法[7]。

工具及自動化程度。基于模型檢測的方法自動化程度更高。目前,基于模型檢測的測試用例生成工具包括NuSMV、Spin、UPPAAL、CoVer、SAL等;基于FSM的測試用例生成的工具包括GOTCHA、TCBean、toolSET_Certify、ConformanceKit、Phact、TVEDA、RFT、Rational Robot等。

應用領域。均可應用到通信協議、Web應用、實時系統、控制系統、嵌入式系統中,基于模型檢測的方法的應用逐漸擴大到軟件的開發設計和系統的安全特性驗證,但是基于FSM的方法在工業界中的實際應用較少。

優缺點。基于模型檢測的方法自動化程度高,能夠產生反例,可以減少測試時間、提高測試效率。但在測試用例生成過程中會出現狀態爆炸問題[8],也有可能產生大量的冗余[9],另外時間的引入也會增加測試模型的復雜性。基于FSM的方法跟模型檢測一樣也可能產生大量的冗余,不僅如此,使用該方法生成測試用例還需要測試人員具備一定的理論基礎,且缺乏通用的工具支持[10];但是基于FSM的方法簡單[11]、敏捷,有成熟的理論基礎。

3 測試用例自動生成方法的定量比較分析

本文采用比較實驗,一方面,在針對同一個系統、生成同樣數量(長度)的測試用例條件下,比較兩種方法生成的測試用例的狀態覆蓋率、遷移覆蓋率、遷移對覆蓋率。另一方面,在針對同一個系統、保證測試覆蓋率相同的情況下,比較兩種方法生成的測試用例的數量(長度),即在測試成本上的差異。

3.1 實驗對象及工具選擇

被測系統的選擇考慮典型實例,覆蓋狀態及遷移的類型、有環/無環、簡單模型、復雜模型、真實模型等,具體模型圖3-7所示。

圖3 model1簡單模型[10]

圖4 model2中間模型

圖5 model3 Web應用實例—招聘信息發布系統

圖6 model4 Soft Drink vending machine[13]

分別選取ModelJunit和UPPAAL[14]作為傳統的基于模型的方法和模型檢測方法的工具代表,ModelJUnit開源工具以圖形化的界面更加直觀的展現狀態之間的變化,相對于其他工具而言,可以實現更多類型的覆蓋,可以控制生成測試序列的速度,使用非常方便,可與Eclipse軟件結合使用。UPPAAL在時間和空間上的性能是比較高[15],而且可以模擬生成不同的測試序列,并控制生成測試序列的速度。

3.2 實驗過程設計

(1)實驗一:在測試成本相同的情況下,比較測試覆蓋率

圖7 model5 specialFSMNoLoops—a trichotomous model

①輸入被測模型,確定要生成的測試用例的總長度;

②在ModelJUnit的測試設置中輸入已確定的測試用例總長度并選擇隨機算法,自動生成不同數目和長度的測試用例;在UPPAAL中使用模擬器,生成測試用例;

③利用ModelJUnit自動生成相應的測試用例總長度下的覆蓋率;記錄下UPPAAL生成的測試序列所覆蓋的遷移對的數量以及被測模型中遷移對的總數,通過“覆蓋的遷移對數目/總的遷移對數目”來獲取最終的覆蓋率。

(2)實驗二:在測試覆蓋率相同的情況下,比較測試成本

①根據上述步驟生成測試用例,并得到相應的狀態覆蓋率、遷移覆蓋率以及遷移對覆蓋率;

②分別記錄每組實驗中兩類方法具有相同的狀態覆蓋率、遷移覆蓋率、遷移對覆蓋率時測試用例的個數及總長度;

③根據所記錄的測試用例個數和總長度得出測試成本,并對測試成本進行比較。

4 測試用例自動生成方法的定量比較實驗結果及分析

采用隨機方法對被測系統進行多次實驗,統計分析兩種方法的結果,在生成序列的覆蓋率及測試成本方面對兩種工具的結果進行對比。

(1)實驗一:在測試成本相同的情況下,比較測試覆蓋率

對5個對象分別進行實驗,得到如表3-7所示的結果,經分析可知:

在model1中,當測試成本為3.4時,ModelJUnit的狀態覆蓋率為66.67%、遷移覆蓋率為50%、遷移對覆蓋率為25%,對應UPPAAL的分別為100%、66.67%、25%;可以看出UPPAAL的狀態和遷移覆蓋率都高于ModelJUnit,遷移對覆蓋率與ModelJUnit相等。隨著測試成本的增加,UPPAAL狀態和遷移覆蓋率依舊高于ModelJUnit,當測試成本大于等于8.2時,UPPAAL的遷移覆蓋率也高于ModelJUnit。即在測試成本相同的情況下,UPPAAL的狀態、遷移以及遷移對覆蓋率都比ModelJUnit高。

在model5實驗中,因為其中包含的狀態及遷移較多,所以達到全覆蓋的測試成本較高,很難達到全覆蓋。Model5是ModelJUnit自帶的例子,在測試成本為8.4的時候,ModelJUnit的狀態、遷移以及遷移對覆蓋率都比UPPAAL高,但是隨著測試成本的增加,ModelJU-nit的狀態、遷移以及遷移對覆蓋率都低于UPPAAL。

表3 model1覆蓋率對比結果

表4 model2覆蓋率對比結果

表5 model3覆蓋率對比結果

表6 model4覆蓋率對比結果

表7 model5覆蓋率對比結果

從model-model5中不同測試成本下所得出的狀態、遷移以及遷移對覆蓋率的平均值可以看出:除model4中UPPAAL的遷移覆蓋率以及遷移對覆蓋率比ModelJUnit低之外,UPPAAL的狀態、遷移以及遷移對覆蓋率的平均值都比ModelJUnit高。

在每個模型的不同測試成本實驗中,當測試成本較低時,ModelJUnit有時會比UPPAAL生成測試用例的各種覆蓋率高,可能說明當生成的測試用例數量少且測試用例的長度較短時,ModelJUnit效果更好。當生成測試用例的數量增多及長度增加之后,UPPAAL的效果更好。

(2)實驗二:在測試覆蓋率相同的情況下,比較測試成本

如圖8-10所示,由于每個模型的狀態及遷移數量不同,所以對每個模型選擇不同狀態、遷移和遷移對覆蓋率作為標準。每組實驗中,在相同的狀態覆蓋率以及相同的遷移覆蓋率的情況下,UPPAAL的測試成本小于ModelJUnit;在相同的遷移對覆蓋率的條件下,UPPAAL的測試成本小于ModelJUnit,并且其中UPPAAL生成的的測試用例個數及測試用例總長度都比ModelJUnit小,說明達到相同的覆蓋率時UPPAAL所需要生成的測試用例更少且更短,更節約測試成本。當模型的規模較小時,使用兩種方法的測試成本相差較小,當模型比較復雜時,兩種方法的測試成本差異比較明顯,如model5。

圖8 覆蓋率相同時的測試成本比較

圖9 遷移覆蓋率相同時的測試成本比較

圖10 遷移對覆蓋率相同時的測試成本比較

在簡單模型model1中,模型檢測方法具有更高的狀態、遷移以及遷移對覆蓋率,同時更節約測試成本;在中間模型model2中,傳統的方法的遷移對覆蓋率在測試成本較低時比模型檢測方法略高,除此之外,模型檢測方法具有更高的狀態和遷移覆蓋率,同時更節約測試成本;在描述簡單Web功能的model3中,得出的實驗結果與model1基本一致;在描述簡單嵌入式系統功能的model4中,傳統的方法的遷移與遷移對覆蓋率整體而言比模型檢測方法略高,模型檢測方法具有更高的狀態覆蓋率,兩類方法的測試成本差異較小;在較為復雜的model5中,狀態、遷移和遷移對覆蓋率與生成測試用例的數目有關,在生成的測試用例數量極少時,傳統的方法生成測試用例的覆蓋率較高,除此之外,模型檢測方法生成測試用例的覆蓋率更高,整體上模型檢測方法在節約測試成本方面具有明顯的優勢。

5 結語

模型檢測自動化程度高,具有良好的發展前景,而傳統的方法簡單、通用、具有成熟的理論基礎,但兩類方法都存在狀態爆炸和冗余問題。兩類方法都可以根據需求生成測試用例,模型檢測方法還可以針對某個特性生成反例;基于FSM的方法出現較早,且目前已經具有比較成熟的理論支撐,模型檢測方法雖然出現較晚,但是發展較快,且目前的應用也比較廣泛;兩類方法的應用領域都比較廣泛且具有較多的工具支撐,在自動化方面模型檢測方法具有一定的優勢;應用這兩類方法都可以簡化測試用例生成的過程,但是也存在一定的問題如冗余、狀態爆炸等。

就覆蓋率而言,在模型相對較大但測試成本較小時,可以考慮采用基于FSM的方法,其他情況下,模型檢測方法可以得到更高的覆蓋率。就測試成本而言,在隨機情況下且被測系統規模較小時,兩類方法的測試成本差別不大,可以根據其他需求進行選擇,但如果系統規模相對較大,建議選用模型檢測方法以減少測試成本。總之,基于模型檢測的方法是一個可以應用和進一步研究的測試用例自動生成方案。

[1]Kolawa,A.H.,Dorota.Automated Defect Prevention:Best Practices in Software Management[M].2007,Wiley-IEEE Computer Society Press.

[2]Clarke EM,G.O.,Peled D,model checking[M].2001:Cambridge:MIT Press.

[3]Athor.A Systematic Review of Model Based Testing Tool Support[R]

[4]John Callahan,F.S.,Steve Easterbrook.Automated Software Testing Using Model-Checking.in SPIN Workshop,1996[C].

[5]Franco Fummi,G.P.,Andrea Fedeli,Umberto Rossi,Franco Toto.On the Use of a High-Level Fault Model to Check Properties Incompleteness.in 1 st ACM/IEEE International Conference on Formal Methods and Models for Co-Design(MEMOCODE'03).[C].p.145-152.

[6]Wijesekera,D.,Ammann,Paul,Sun,Lingya,Fraser,Gordon.Relating Counterexamples to Test cases in CTL Model Checking Specifications.in 3rd International Workshop Advances in Model Based Testing,AMOST 2007.July 9,2007-September 12,2007[C].London,United kingdom,Association for Computing Machinery.p.75-84.

[7]Rushby,J.Formal Methods for Test Case Generation.in SRI International.2011.7[C].US

[8]Ammann,G.F.F.W.P.,Issues in Using Model Checkers for Test Case Generation[J].Journal of Systems&Software,2009.

[9]Fraser,G,F.Wotawa.Improving Model-Checkers for Software Testing.in Quality Software,2007.QSIC'07.Seventh International Conference on.2007[C].p.25-31.

[10]劉攀等.基于FSM的測試理論、方法及評估[J].計算機學報,2011(06):965-984.

[11]Santiago,V.,et al.An Environment for Automated Test Case Generation from Statechart-based and Finite State Machine-based Behavioral Models.in Software Testing Verification and Validation Workshop,2008.ICSTW'08.IEEE International Conference on,2008[C].63-72.

[12]Juristo,N.,A.Moreno,S.Vegas,Reviewing 25 Years of Testing Technique Experiments[J].Empirical Software Engineering,2004.9(1-2):7-44.

[13]Swain,R.P.,Vikas;Kumar Behera,Prafulla;Prasad Mohapatra,Durga,Automatic Test case Generation From UML State Chart Diagram[J].International Journal of Computer Applications,2012.42(7):26-36.

[14]Aggarwal,M.and S.Sabharwal.Test Case Generation from UML State Machine Diagram:A Survey.in 2012 3rd International Conference on Computer and Communication Technology,ICCCT 2012.2012[C].Allahabad,UP,India:IEEE Computer Society.p.133-140.

[15]郭華,莊雷,張習勇.UPPAAL:一種適合自動驗證實時系統的工具[J].微計算機信息,2006(15):52-54+190.

A Comparison of Methods for Software Test Case Generation Based on Model

ZHAO He,GAO Wan-ling

(College of Computer Science,Sichuan University,Chengdu 610064)

With the increase of scale and complexity of software systems,software test automation is on the agenda,the software test cases generation is an important way to reduce the test cost.It is possible to generate test cases more automatically due to the emergence of model checking techniques and tools.Compares software test case generation approaches based on model checking with the approaches based on Finite State Machine(FSM)model,combines systematic literature review and controlled experimental method to do qualitative and quantitative analysis.Evaluates that the model checking technology has advantages on the degree of automation,flexibility,test coverage and test cost over traditional methods.Using model checking to generate software test cases automatically is a feasible and effective method.

Software Test Automation;Automatic Test Case Generation;Model-Based Test Case Generation;Model Checking;Finite State Machine

1007-1423(2017)04-0020-07

10.3969/j.issn.1007-1423.2017.04.005

趙鶴(1992-),女,吉林長春人,本科,研究方向為軟件質量保障與測試

2016-12-06

2017-01-20

高婉玲(1992-),女,河南新鄉人,本科,研究方向為軟件質量保障與測試

猜你喜歡
成本檢測方法
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
2021年最新酒駕成本清單
河南電力(2021年5期)2021-05-29 02:10:00
溫子仁,你還是適合拍小成本
電影(2018年12期)2018-12-23 02:18:48
小波變換在PCB缺陷檢測中的應用
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
獨聯體各國的勞動力成本
主站蜘蛛池模板: a毛片免费看| 久久精品人妻中文视频| 成人精品亚洲| 欧美三級片黃色三級片黃色1| 国产成人三级| 久久精品视频亚洲| 亚洲欧美成人影院| 又黄又湿又爽的视频| 亚洲人成色77777在线观看| 亚洲国产精品无码AV| 免费全部高H视频无码无遮掩| 亚洲欧洲日韩综合色天使| 鲁鲁鲁爽爽爽在线视频观看| 91精品啪在线观看国产| 午夜性爽视频男人的天堂| av一区二区无码在线| 99视频在线免费| 欧美国产在线精品17p| 欧美伦理一区| 伊人网址在线| 免费观看亚洲人成网站| 国产综合另类小说色区色噜噜| 亚洲中字无码AV电影在线观看| 国产在线观看人成激情视频| 欧美中出一区二区| 九九免费观看全部免费视频| 97视频免费在线观看| 久久精品免费看一| 国产一区亚洲一区| 欧美精品二区| 国产成人你懂的在线观看| 伊人色综合久久天天| 久久久久无码国产精品不卡| 日本日韩欧美| 亚洲欧美精品日韩欧美| 亚洲高清日韩heyzo| 亚洲一级毛片| 国产精品自在在线午夜| 亚洲国产精品VA在线看黑人| 亚洲不卡av中文在线| 国产91色在线| 91无码国产视频| 亚洲乱码在线播放| 日本黄色不卡视频| 试看120秒男女啪啪免费| 亚洲美女久久| 日韩中文无码av超清| 精品国产一区二区三区在线观看 | 亚州AV秘 一区二区三区| 亚洲欧美在线综合一区二区三区| 一级做a爰片久久毛片毛片| 动漫精品中文字幕无码| 亚洲欧美日韩动漫| 国产AV无码专区亚洲精品网站| 成人a免费α片在线视频网站| 国产九九精品视频| 国产91丝袜| 伊人激情久久综合中文字幕| 天天做天天爱夜夜爽毛片毛片| 精品一区国产精品| 亚洲一区二区三区国产精华液| 亚洲男人的天堂久久香蕉| 亚洲国产看片基地久久1024| 亚洲欧洲日产国产无码AV| 久久特级毛片| 国产va免费精品| 九九九九热精品视频| 精品国产自在现线看久久| 伊人激情综合网| 日韩视频免费| 四虎国产成人免费观看| 欧美a在线看| 91外围女在线观看| 欧美成人午夜视频免看| 久久国产精品波多野结衣| 精品亚洲国产成人AV| 真人高潮娇喘嗯啊在线观看| 亚洲欧美一级一级a| 色悠久久综合| 日韩欧美91| 国产成人盗摄精品| 欧美97欧美综合色伦图|