白盒測試是一種非常常用的測試方法。白盒測試又稱結構測試、透明盒測試、邏輯驅動測試、基於代碼的測試。白盒測試是把測試對象看作一個打開的盒子,白盒指的是盒子是可視的,你清楚盒子內部的東西以及裏面是如何運作的。
白盒測試的主要測試方法有:代碼檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法(應用最廣泛)、域測試、符號測試、Z路徑覆蓋、程序變異。
基本路徑法
基本路徑測試法是在程序控制流圖的基礎上,通過分析控制構造的環路複雜性,導出基本可執行路徑集合,從而設計測試用例的方法。設計出的測試用例要保證在測試中程序的每個可執行語句至少執行一次。
在程序控制流圖的基礎上,通過分析控制構造的環路複雜性,導出基本可
執行路徑集合,從而設計測試用例。包括以下4 個步驟和一個工具方法:
1. 程序的控制流圖:描述程序控制流的一種圖示方法。
2. 程序圈複雜度:McCabe複雜性度量。從程序的環路複雜性可導出程序基本
路徑集合中的獨立路徑條數,這是確定程序中每個可執行語句至少執行一次
所必須的測試用例數目的上界。
3. 導出測試用例:根據圈複雜度和程序結構設計用例數據輸入和預期結果。
4. 準備測試用例:確保基本路徑集中的每一條路徑的執行。

控制流圖
白盒測試流圖只有二種圖形符號:
1.圖中的每一個圓稱為流圖的結點,代表一條或多條語句。
2.流圖中的箭頭稱為邊或連接,代表控制流,任何過程設計都要被翻譯成控制流圖。
基本語句對應的控制流圖:

程序流程圖->控制流圖

獨立路徑( 基本路徑) :一條程序執行的路徑 , 至少包含一條在定義該
路徑之前的其他基本路徑中所不曾用過的邊( 即:至少引入程序的一個
新處理語句集合或一個新條件)
計算圈複雜度:圈複雜度是一種為程序邏輯複雜性提供定量測度的軟件度量,將該度量用於計算程序的基本的獨立路徑數目,為確保所有語句至少執行一次的測試數量的上界。
注意:獨立路徑不應該經過同一個判定結點的左右兩側,否則這條路徑如果出現錯誤,則不知道是哪一側出現錯誤。
三種計算方法:
1. 流圖中區域的數量
2. V(G)= E-N+2,E是邊數,N是結點數
3. V(G)= P+1,P是判定結點的數量
測試用例 = { 測試數據+ 期望結果}
– 測試數據是由路徑和程序推論出來的;
– 預期結果是從函數說明中導出,不能根據程序結構中導出!
循環測試
四種循環:
– 簡單循環
– 串接循環
– 嵌套循環
– 無結構循環
邊界 + 界內
對於簡單循環,測試應包括以下幾種,其中的n 表示循環允許的最大
次數。
– 零次循環:從循環入口直接跳到循環出口。
– 一次循環:查找循環初始值方面的錯誤。
– 二次循環:檢查在多次循環時才能暴露的錯誤。
– m次循環:此時的m<n,也是檢查在多次循環時才能暴露的錯誤。
– n(最大)次數循環、n+1(比最大次數多一)次的循環、n-1(比最大次數少一)次的循環。
對於嵌套循環:
– 從最內層循環開始,設置所有其他層的循環為最小值;
– 對最內層循環做簡單循環的全部測試。測試時保持所有外層循環的循環變量為最小值。另外,對越界值和非法值做類似的測試。
– 逐步外推,對其外面一層循環進行測試。測試時保持所有外層循環的循環變量取最小值,所有其它嵌套內層循環的循環變量取「典型」值。
– 反覆進行,直到所有各層循環測試完畢。
– 對全部各層循環同時取最小循環次數,或者同時取最大循環次數。對於後一種測試,由於測試量太大,需人為指定最大循環次數。
對於串接循環,要區別兩種情況。
– 如果各個循環互相獨立,則串接循環可以用與簡單循環相同的方法進行測試。
– 如果有兩個循環處於串接狀態,而前一個循環的循環變量的值是後一個循環
的初值。則這幾個循環不是互相獨立的,則需要使用測試嵌套循環的辦法來處理。
對於非結構循環,不能測試, 應重新設計循環結構,使之成為其它循環方式,然後再進行測試。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/202412.html
微信掃一掃
支付寶掃一掃