詹澤梅
摘要: 覆蓋測試是軟件測試中的重要方法,路徑覆蓋測試中路徑集的自動生成能提高測試效率。該文提出了一種描述程序分支情況的分支關系圖,給出了基于分支關系圖的路徑集自動生成算法,實驗證明了該方法的正確性,能有效地求出程序路徑集。
關鍵詞:路徑集;分支關系圖;軟件測試
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)25-5898-04
An Method of Automatic Generation for Paths Set in Software Coverage Testing
ZHAN Ze-mei
(Computer Science College, Yangtze University, Jingzhou 434023,China)
Abstract: Coverage testing is a important method for software testing. Automatic generation for paths set can enhance testing efficiency. A graph of branch relation is proposed for depicting branches in the program. The paper gives an algorithm for finding out paths set, which can work efficiently. The correctness of the algorithm is verified on a example.
Key words: paths set;the graph of branch relation; software testing
軟件測試是軟件工程理論中非常重要的一個方面,是提高軟件產品質量和可靠性的關鍵。軟件測試可以分為功能測試和結構測試兩大類。其中結構測試又稱為白盒測試,是基于程序結構特征,以實現某種測試覆蓋為目的一種測試方法。路徑覆蓋就是一種針對結構測試的常用充分性準則[1],該方法可以有效地檢測程序中的錯誤。基于路徑覆蓋的測試[2]是設計足夠的測試數據,覆蓋程序中所有可能的路徑。目前設計測試用例基本上是預先確定路徑,針對路徑設計對應的測試用例,所以路徑集的確定對于路徑覆蓋測試非常重要。如果完全靠人工確定路徑集會花費很大精力,因此應該借助于自動化的方法。
路徑集就是指程序中所有可能的路徑的集合。路徑集中沒有兩條完全相同的路徑。由于程序中存在分支語句、循環語句,程序中的路徑的數目會非常大,因此,在有限的測試資源下進行路徑覆蓋測試,我們只考慮循環的兩種可能:循環體未執行和循環體至少執行一次。
目前已有的路徑集生成方法有:采用遺傳算法進行路徑生成的方法[3]和A. Bertolino 利用簡化的控制流圖來確定程序路徑。……