?

白盒測試之基本路徑測試技術探析

2014-05-25 00:33仝海燕呂洪善
關鍵詞:白盒控制流測試用例

仝海燕,呂洪善,賈 爽

(1.亳州師范高等??茖W校理化系,安徽 亳州 236800;2.亳州職業技術學院電子與電氣工程系,安徽 亳州 236800)

白盒測試之基本路徑測試技術探析

仝海燕1,呂洪善2,賈 爽1

(1.亳州師范高等??茖W校理化系,安徽 亳州 236800;2.亳州職業技術學院電子與電氣工程系,安徽 亳州 236800)

結合教學過程中的內容,分析了白盒測試技術中覆蓋率較強的測試技術——基本路徑測試方法的相關概念,闡述了利用基本路徑測試設計測試用例的過程,最后通過實例說明基本路徑測試方法的使用。

軟件測試;軟件質量保證;白盒測試;基本路徑測試

目前,各種類型軟件的使用無處不在,已經涉及人們生活的各個方面,如日常生活中的手機、智能冰箱、新一代數字電視、電子商務等等。在軟件的使用過程中,或多或少的會碰到一些不愉快的事情,如信息顯示不對、數據不完整、操作不靈活等,這些都是軟件質量問題,另外由軟件問題有時會引起其他問題,特別是經濟、醫學、軍事等領域有關的軟件,一旦軟件質量出現異常將會造成很嚴重的后果。軟件質量的優劣日益受到人們的重視,為減少乃至避免軟件故障的問題,軟件測試是保證軟件質量的最有效手段,在軟件正式上市之前,要對軟件進行相關的測試,以保證軟件正常運行。軟件測試技術包括很多,本文結合在軟件測試課程授課的一些經驗,主要對白盒測試技術中覆蓋率較強的基本路徑測試技術進行了介紹,包括基本路徑測試的相關概念、測試用例設計過程,最后結合實例介紹基本路徑測試方法的使用。

1 基本路徑測試技術的相關概念

1.1 軟件測試的定義

隨著人們對軟件質量認識和重視的程度,不同的階段軟件測試的定義也不同。1972年軟件測試的宗師Bill Hetzel博士在其論著《The Complete Guide to Software Testing》(《軟件測試完全指導書》)中指出:“軟件測試就是建立一種信心,認為程序能夠按預期的設想運行?!?979年,Glen ford J.Myers的《軟件測試的藝術》中將軟件測試定義為“測試是為發現錯誤而執行的一個程序或者系統的過程。[1]”1983年,Bill Hetzel在《軟件測試完全指南》一書中指出:“測試是以評價一個程序或者系統屬性為目標的任何一種活動,測試是對軟件質量的度量”。到了2002年,Rick和Stefan在《系統的軟件測試》中對軟件測試做了進一步定義:“測試是為了度量和提高被測軟件的質量,對測試軟件進行工程設計、實施和維護的整個生命周期過程”[2]。

1.2 白盒測試

白盒測試是按照程序內部的結構測試程序,通過測試來檢測產品內部動作是否按照設計規格說明書的規定正常進行,檢驗程序中的每條通路是否都能按預定要求正確工作。白盒測試一般用來分析程序的內部結構,對測試者而言是透明的,測試者可以看到被測程序源代碼,并分析其內部結構[3]。因此,白盒測試也叫結構測試或邏輯驅動測試。

白盒測試要求對被測程序的結構特性做到一定程度的覆蓋,并以軟件中某類成分是否都已得到測試來判斷軟件測試的充分性。覆蓋的標準主要有語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋、路徑覆蓋6種[4]。其中覆蓋強度最強的是路徑覆蓋,但由于軟件程序的復雜性,要達到理想的路徑測試是完全不可能的,因此在進行路徑測試時需要把覆蓋的路徑數進行縮減,實際測試時往往采用的是基本路徑測試技術。

1.3 基本路徑測試

基本路徑測試是在程序控制流圖的基礎上,通過分析控制構造的環路復雜性,導出基本可執行路徑集合,然后據此設計測試用例[4,5]。設計出的測試用例要保證在測試中程序的每一條可執行語句至少執行一次。

1.4 程序控制流圖

在進行軟件(程序)測試的設計時,對程序的流程圖進行簡化,圖1中每個處理都退化成一個結點,流線變成連接不同結點的有向弧,簡化之后所得的圖形稱為程序控制流圖,即控制流圖是退化的程序流程圖[5]??刂屏鲌D將程序流程圖中結構化構件改用一般有向圖的形式表示。

在軟件(程序)的控制流圖中對應的圖形符號如圖1所示。圖1中的圓圈稱為結點,代表程序代碼中的一個或多個無分支語句,箭頭表示控制流的方向,也稱為邊。出度大于1的結點稱為判定結點或分支結點,對應的是代碼中的條件。由邊和結點所圍成的封閉部分叫區域,對控制流圖中的區域進行計數時注意將圖形外的部分也要算一個區域統計進去。

圖1 控制流圖中的圖形符號

1.5 程序環形復雜性

程序的環路復雜性也稱為McCabe復雜性度量或圈復雜度[5]。環形復雜性是為軟件邏輯復雜度進行度量的一種尺度,在進行程序的基本路徑測試時,從程序的環路復雜性可導出程序基本路徑集合中的獨立路徑條數,根據獨立路徑數目可確保程序中每個可執行語句至少執行一次的測試用例數目。

1.6 獨立路徑

獨立路徑是指包括一組以前沒有處理的語句或條件的一條路徑。從程序的控制流圖來看,一條獨立路徑至少包含有一條在其他獨立路徑中從未有過的邊的路徑[5,6]。對于給定的控制流圖,由獨立路徑構成的基本路徑集合不是唯一的,在設計測試用例時只要能夠確?;韭窂郊械膱绦?,就可以使得程序中的每個可執行語句至少執行一次。

2 基本路徑測試法設計測試用例的過程

基本路徑測試方法是根據程序的控制流圖,計算出相應的環形復雜性,通過環形復雜性的值確定獨立路徑的數目,從而導出控制流圖的基本路徑集,然后結合基本路徑集對程序或軟件進行測試用例的設計。這種方法適合于模塊的詳細設計及源程序,測試的主要步驟如下:以項目或軟件測詳細設計或代碼為基礎,導出程序的控制流圖;根據控制流圖,采用環形復雜性的計算方法得到的相應控制流圖的環形復雜性,環形復雜性的計算方法在后面有所描述;根據程序的環型復雜性,確定程序的獨立路徑數目,導出程序的獨立路徑,從而得出基本路徑集;根據基本路徑集設計測試用例,確保路徑集中每條獨立路徑的執行。

3 基本路徑測試技術的實例應用

下面結合軟件測試課程的教學內容,來說明使用基本路徑測試技術設計測試用例的應用。

3.1 實例代碼描述

3.2 基本路徑測試技術方法來設計測試用例

根據代碼畫程序的控制流圖時,若是連續的順序執行語句在控制流圖中可以壓縮為一個結點,若代碼中的條件是復合條件時,要在畫控制流圖時注意先將復合條件轉化為單條件。根據前面介紹的基本路徑測試技術生成測試用例的方法。

第一步,依據程序代碼導出該實例對應的控制流圖,如圖2所示。

第二步,根據程序的控制流圖計算程序的環形復雜性。環形復雜性的計算方法可以根據控制流圖的結點和邊數進行計算,也可以根據控制流圖的判定結點數目來計算,還可以根據控制流圖的區域數來計算。給定控制流圖的環形復雜性的值為控制流圖的邊數減去控制流圖的結點數后再加上2或者是控制流圖的區域數目或者是判定結點的數目加1。本文采用結點和邊數來計算,該實例中控制流圖的邊數為11,結點數目為9,邊數減去結點數后為2,將該數字再加上2即可得到該控制流圖的復雜性為4。

圖2 實例的控制流圖

第三步,根據程序控制流圖的復雜性,確定程序的獨立路徑數目,導出相應的獨立路徑,得出程序的基本路徑集。通過第二步可知程序控制流圖的環形復雜性為4,找出控制流圖的獨立路徑數目為4,下面給出本例的具體獨立路徑:

路徑1:1-8->9->17

路徑2:1-8->9->10->11->15->16->9>17

路徑3:1-8->9->10->12->15->16->9->17

路徑4:1-8->9->10>12->13-14->15->16->9->17

第四步,上面的4條獨立路徑構成的基本路基集,依據這個基本路基集可設計4個相應的測試用例數據,如表1所示。用這些數據作為測試輸入數據,可以確保這4條獨立路徑的執行,使程序能夠達到基本路徑覆蓋的標準。對于源程序中的循環體,設計的測試數據遵循簡化的Z路徑覆蓋,也就是說測試的輸入數據使程序的循環體執行零次或1次。

4 結束語

軟件測試是軟件質量保證的最有效手段,軟件測試的技術主要分為黑盒測試和白盒測試,在白盒測試中,基本路徑測試是白盒測試技術中覆蓋較強的測試技術。本文結合軟件測試課程的教學內容,介紹了白盒測試之基本路徑測試技術的相關概念,分析了基本路徑測試技術設計測試用例的過程,最后結合實例給出了基本路徑測試技術的應用,希望對學習基本路徑測試技術的學者有所幫助和啟發。

[1]劉竹林.軟件測試技術與案例實踐[M].北京:北京師范大學出版社,2011

[2]柳純錄.軟件評測師教程[M].北京:清華大學出版社,2005年

[3]王冠.基本路徑測試中的McCabe算法改進及應用[J].哈爾濱理工大學學報,2010,15(1):48

[4]仝春靈.基本路徑法測試_典型排序程度的測試用例設計[J].山西師范大學學報:自然科學版,2004,19(1):92

[5]高春艷.基本路徑測試法的應用[J].開封大學學報,2012,26(2):81

[6]賈曉強.基于白盒測試的基本路徑測試[J].渭南師范學院學報,2008,23(2):72-73

[7]張永剛.淺析軟件測試技術及用例構造方法[J].科技信息,2012(36):561

[8]杜慶峰.基本路徑測試技術研究[J].信息與電腦,2010(6):129

Analysis of Basic Path Testing Technique Based on White Box Test

TONG Hai-yan1,LU Hong-shan2,JIA Shuang1
(1.Department of Physics and Chemistry,Bozhou Teachers College,Anhui Bozhou 236800,China;2.Department of Electronics and Electric Engineering,Vocational and Technical College,Anhui Bozhou 236800,China)

By combining the contents in teaching,this paper analyzes the related concepts of the basic test method,the test technology with relatively strong covering rate in white box test technique,elaborates the process for the design of test examples by using basic path tests,and finally illustrates the application of the basic path test method by practical examples.

software test;software quality guarantee;white box test;basic path test

TP374

A

1672-058X(2014)01-0065-05

責任編輯:代小紅

2013-08-01;

2013-09-12.

仝海燕(1979-),女,安徽碭山人,講師,碩士,從事軟件測試、辦公自動化等課程教學研究、模式識別與智能系統研究.

猜你喜歡
白盒控制流測試用例
面向未來網絡的白盒交換機體系綜述
抵御控制流分析的Python 程序混淆算法
DWB-AES:基于AES 的動態白盒實現方法
抵御控制流分析的程序混淆算法
基于SmartUnit的安全通信系統單元測試用例自動生成
基于控制流的盒圖動態建模與測試
網絡“黑”“白”之爭
基于Petri網數據流約束下的業務流程變化域分析
基于需求模型的航天軟件測試用例生成方法
基于依賴結構的測試用例優先級技術
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合