王紹婷 倫立軍
摘 要:在白盒測試中,包括的測試方法有代碼檢查法、靜態(tài)結構分析法、靜態(tài)質量度量法、邏輯覆蓋法、基路徑測試法等等,而這其中,最為普遍運用測試的方法是基路徑測試法。它是在程序控制流圖的基礎上,分析控制結構的圈復雜度,導出一個基本可執(zhí)行路徑的集合,從而設計并產生測試用例的方法,它擁有著最強壯的覆蓋標準。本文從實際出發(fā),理論結合實踐,深入研究基路徑測試的概念、定義、理論,并設計出一個新的基路徑算法BPA算法獲取基路徑,并給出一個案例研究證明該算法的有效性。
關鍵詞:軟件測試;基路徑;BPA
中圖分類號:TP311 文獻標識號:A 文章編號:2095-2163(2014)06-
Abstract: There are some testing methods in white box testing such as code inspection, static structure analyzing, static quality measurement, logical coverage, basis path testing. The method of basis path testing has been widely used among those. Based on the program control flow graph, the method analyzes the cyclomatic complexity of control structure, derives the set of basis executable paths, and finally, devises and generates the test cases. It is the strongest coverage criterion. The paper proceeds from the actual situation, bonding the theory and practice, researching deeply the concept, definition and theory of basis path testing. Thus, propose a new strategy BPA to obtain the basis testing paths. As a result, give a case study to show the efficiency.
Key words: Software Testing; Basis Path; BPA
0 引言
隨著軟件產業(yè)的興盛發(fā)展,軟件系統(tǒng)的設計規(guī)模與復雜程度正在與日俱增,并且軟件的生產成本也將隨之而一路走高;連帶性地,在軟件系統(tǒng)中暗存的bug所可能造成的損失也已不可小視,甚至可能發(fā)生災難性的后果。有鑒于此,軟件產品作為人腦高度智力化的精粹與明證,而且正是基于這一特殊重要性,就是的軟件產品的質量得到了學界廣泛的重視與研究。
軟件質量就是軟件的生命。為了保證軟件產品的質量,人們在長期的開發(fā)過程中累積了大量經驗和有效方法。雖然如此,也只能盡量減少軟件中的錯誤與不足,卻未能完全避免軟件系統(tǒng)中不再有bug。
針對以上狀況,軟件測試即應運而生。測試就是檢查軟件質量,排除軟件故障的最有效和完備的技術手段與方法,并由此推進了軟件測試理論在現(xiàn)實應用中的蓬勃發(fā)展。其中,運用最為廣泛的就是基路徑測試法[1]。
1 基路徑測試
基路徑測試方法是在程序控制流圖的基礎上,通過分析控制構造的圈復雜度[2],以導出基本可執(zhí)行路徑的集合,從而設計出測試用例的方法。基路徑測試的實現(xiàn)步驟如下[3]:
(1)程序控制流圖。根據程序內容,畫出程序控制流圖[4]。
(2)程序圈復雜度。計算程序的環(huán)路復雜性,導出程序基路徑集合中的獨立路徑數,這是確定程序中每個可執(zhí)行語句至少執(zhí)行一次所必須的測試用例數目的上界。
(3)導出測試用例。根據圈復雜度和程序結構設計用例數據輸入和預期結果。
(4)準備測試用例。確?;窂郊现械拿恳粭l路徑的執(zhí)行。
2 一個新的基路徑算法BPA
運用基路徑測試法(三種方式)計算從結點1到結點13的基路徑數為6;運用新提出的算法也找到了6條基路徑,且路徑相同,證明了新算法的有效性、正確性、完備性。
4 結束語
基路徑測試是白盒測試中應用最普遍的技術,利用圈復雜度計算獨立路徑數目,即能保證測試的完備性。本文正是以此為基礎,設計了一個新的算法來實現(xiàn)基路徑集合的獲取,找到所有獨立的基路徑,旨在以使程序達到合理有效地覆蓋測試,下一步工作將考慮研發(fā)基路徑覆蓋工具,并結合遺傳算法實現(xiàn)基路徑集合的獲取,再與測試工具[6]進行性能上的比較分析。
參考文獻:
[1]杜慶峰,肖瀟.基本路徑測試技術研究[J].信息與電腦(理論版),2010,(6):129-130.
[2]肖自乾,王弗雄,陳經優(yōu). 基本路徑測試方法之圈復雜度計算[J].軟件導刊,2009,8(7):10-12.
[3]賈曉強. 基于白盒測試的基本路徑測試[J].渭南師范學院學報,2008,23(2):71-73
[4]解圣霞.基于基本路徑測試的程序圖自動生成的應用研究[J].通化師范學院學報,2009,30(12):32-35.
[5]GHIDUK A S. Automatic generation of basis test paths using variable length genetic algorithm[J]. Information Processing Letters,2014,114(6):304-316.
[6]單錦輝,王戟,齊治昌,等. 面向路徑的測試數據自動生成工具的設計與實現(xiàn)[J].計算機工程與科學,2002,24(1):103-107.