怎么做獨立路徑的測試


從上面的例子還看出盡管做了語句覆蓋,但是程序仍然可能存在錯誤。語句覆蓋是一種最弱的覆蓋測試,但卻是一種必須做的最低限度的白盒測試。獨立路徑測試可以保證所有語句被執行至少一次,同時排除上述(x=0,y=5/x)組合沒有被執行的情況。在進行獨立路徑測試(基本路徑測試)之前,先介紹流圖符號:

clip_image002

如上圖所示,每一個圓,稱為流圖的節點,代表一個或多個語句,流程圖中的處理方框序列和菱形決策框可映射為一個節點,流圖中的箭頭,稱為邊或連接,代表控制流,類似於流程圖中的箭頭。一條邊必須終止於一個節點,即使該節點並不代表任何語句,例如,下圖中兩個處理方框交匯處是一個節點,邊和節點限定的范圍稱為區域。

clip_image004

任何過程設計表示法都可被翻譯成流圖,下面顯示了一段流程圖以及相應的流圖。

clip_image006

(a)流程圖

clip_image008

(b)流圖

注意,程序設計中遇到復合條件時(邏輯or, and, nor等),生成的流圖變得更為復雜,如(c)流圖所示。此時必須為語句IF a OR b中的每一個a和b創建一個獨立的節點。

clip_image010

獨立路徑是指程序中至少引進一個新的處理語句集合,采用流圖的術語,即獨立路徑必須至少包含一條在定義路徑之前不曾用到的邊。例如圖(b)中所示流圖的一個獨立路徑集合為:

路徑1:1-11

路徑2:1-2-3-4-5-10-1-11

路徑3:1-2-3-6-8-9-10-11

路徑4:1-2-3-6-7-9-10-1-11

上面定義的路徑1,2,3和4包含了(b)流圖的一個基本集,如果能將測試設計為強迫運行這些路徑,那么程序中的每一條語句將至少被執行一次,每一個條件執行時都將分別取true和false(分支覆蓋)。應該注意到基本集並不唯一,實際上,給定的過程設計可派生出任意數量的不同基本集。如何才能知道需要尋找多少條路徑呢?可以通過如下三種方法之一來計算獨立路徑的上界:

1. V=E-N+2,E是流圖中邊的數量,N是流圖節點數量。

2. V=P+1,P是流圖G中判定節點的數量

3. V=R,R是流圖中區域的數量

例如,(b)流圖可以采用上述任意一種算法來計算獨立路徑的數量

1. 流圖有4個區域,所以V=4

2. V=11條邊-9個節點+2=4

3. V=3個判定節點+1=4

由此為了覆蓋所有程序語句,必須設計至少4個測試用例使程序運行於這4條路徑。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM