選取足夠多的測試資料,使程式的每條可能路徑都至少執行一次(如果程式圖中有環,則要求每個環至少經過一次)。
連續的邊。也被稱作一條路徑
圈複雜度(cyclomatic complexity)是一種**複雜度的衡量標準,在2023年由thomas j. mccabe, sr. 提出。
在軟體測試的概念裡,圈複雜度用來衡量乙個模組判定結構的複雜程度,數量上表現為線性無關的路徑條數,即合理的預防錯誤所需測試的最少路徑條數。圈複雜度大說明程式**可能質量低且難於測試和維護,根據經驗,程式的可能錯誤和高的圈複雜度有著很大關係。
計算公式1:
v(g)=e-n+2。其中,e表示控制流圖中邊的數量,n表示控制流圖中節點的數量。
計算公式2:
v(g)=區域數=判定節點數+1
system.out.
println
("請輸入你的使用者名稱");
1 scanner scanner =
newscanner
(system.in)
;2 string username = scanner.
nextline()
;3 system.out.
println
("請輸入你的密碼");
4 string password = scanner.
nextline()
;5if(username.
equals
("dennis"
)&&password.
equals
("1"))
else
10if
(username.
equals
("a"
)&&password.
equals
("1"))
else
15 system.out.
println
("程式結束"
);
首先,根據程式**畫流程圖,再畫資料流圖,這裡因為問題較為簡單,略去流程圖。
路徑種類:
路徑:p1
路徑:p2
路徑:p3
路徑:p4
這裡要注意一點,因為系統規定至少要登入前台和後台的乙個賬號,所以路徑p3是一條不合理路徑。這裡需要剔除這個不合理路徑。
路徑種類:
路徑:p1
路徑:p2
路徑:p3
圈複雜度:3
有時我們會遇到下面這種情況,遇到下面這種情況我們就需要對資料流圖進行簡化。因為圈複雜度較大,為5。不建議採用以下資料流圖進行分析路徑覆蓋。這裡只用做演示。
;}首先,我們需要精準的畫出**對應的程式流程圖,根據流程圖畫出資料流圖。
然後我們對它進行路徑覆蓋測試用例設計。
用例id
i預期輸出
實際輸出
覆蓋的路徑11
5555
1 2 3 4 5 7211
1111
1 2 3 7
圈複雜度:2
白盒測試邏輯覆蓋法
看新定的測試覆蓋率標準,有點暈。1 語句覆蓋率達到100 2 分支覆蓋率不低於70 開始覺得,這兩個限制有點矛盾,語句覆蓋率都達到100 了,分支覆蓋率還沒達到100 答案 是。舉個例子說明 if a and b then action1 if c or d then action2 就拿這個來說,...
白盒測試 邏輯覆蓋法
白盒測試又稱結構測試 透明盒測試 邏輯驅動測試或基於 的測試。白盒測試是一種測試用例設計方法方法,盒子指的是被測試的軟體,白盒指的是盒子是可視的,你清楚盒子內部的東西以及裡面是如何運作的。白盒 法全面了解程式內部邏輯結構 對所有邏輯路徑進行測試。白盒 法是窮舉路徑測試。在使用這一方案時,測試者必須檢...
白盒測試方法 白盒測試系列(一) 語句覆蓋
最近發現身邊測試的同學都不太了解 理解白盒測試,網上的資料又是千篇一律,不易理解。想做乙個更容易讓測試同學學習的白盒測試基礎教程。在設計和執行用例的過程中,把程式視為透明的盒子,不但關注程式輸入的內容和輸出結果,還需要關注程式內部結構或運作程式中每乙個語句至少能被執行一次1 程式中每乙個語句至少執行...