白盒測試—六種覆蓋方法
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/write6/article/details/78702977
定義:
白盒測試又稱結構測試,透明盒測試、邏輯驅動測試或基於程式碼的測試。白盒測試是一種測試用例設計方法,白盒指的是程式的內部結構和運作機制是可見的。
白盒測試的目的:
通過檢查軟體內部的邏輯結構,對軟體中的邏輯路徑進行覆蓋測試;在程式不同地方設定檢查點,檢查程式的狀態,以確定實際執行狀態與預期狀態是否一致。
白盒測試的方法:大致分為靜態方法和動態方法兩大類。
A. 靜態分析:
是一種不執行程式而進行測試的技術。靜態分析的主要目的是檢查軟體的表示和描述是否一致,沒有衝突或者沒有歧義。
B. 動態分析:
當軟體系統在模擬或真實的環境中執行前、過程中和執行後,對其行為分析。它顯示了一個系統在檢查狀態下是否正確。在動態分析技術中,最重要的技術是路徑和分支測試。下面要介紹的六種覆蓋測試方法屬於動態分析方法。
符號說明:
^ 代表邏輯運算子 && 或者 ||
T 代表 True F 代表 False
A / B 代表條件表示式
(1)語句覆蓋
使程式中的每個可執行語句都能執行一次的測試用例
測試用例條件: A ^ B = T
(2)判定覆蓋(分支覆蓋)
對於判斷語句,在設計用例的時候,要設計判斷語句結果為True和False的兩種情況
測試用例條件:
A ^ B = T
A ^ B = F
(3)條件覆蓋
設計用例時針對判斷語句裡面每個條件表示式true 和 false各取值一次,不考判斷語句的計算結果
測試用例條件:
A=T A=F
B=T B=F
(4)判定條件覆蓋(分支條件覆蓋)
設計測試用例時,使得判斷語句中每個條件表示式的所有可能結果至少出現一次,每個判斷語句本身所有可能結果也至少出現一次。
測試用例條件:
A ^ B = T A ^ B = F
A=T A=F
B=T B=F
(5)條件組合覆蓋
設計測試用例時,使得每個判斷語句中條件結果的所有可能組合至少出現一次
測試用例條件:
A= T B= T
A= T B= F
A= F B= T
A= F B= F
(6)路徑覆蓋
設計測試用例時,覆蓋程式中所有可能的執行路徑
優點:這種覆蓋方法可以對程式進行徹底的測試用例覆蓋,比前面講的五種方法覆蓋度都要高。
缺點:於路徑覆蓋需要對所有可能的路徑進行測試(包括迴圈、條件組合、分支選擇等),那麼需要設計大量、複雜的測試用例,使得工作量呈指數級增長。路徑覆蓋雖然是一種比較強的覆蓋,但未必考慮判斷語句中條件表示式結果的組合,並不能代替條件覆蓋和條件組合覆蓋。
相關文章
- 軟體測試培訓之:白盒測試的語句覆蓋法和判定覆蓋法
- 測試方法-白盒/黑盒
- 黑盒測試、白盒測試與灰盒測試方法
- 重溫黑盒、白盒與灰盒測試方法
- 黑盒測試和白盒測試
- 細說白盒測試
- 對於黑盒測試、白盒測試、灰盒測試你瞭解多少?
- 軟體測試實驗二 | 白盒測試
- 程式碼覆蓋率與測試覆蓋率比較
- webgoat白盒審計+漏洞測試WebGo
- 精準測試之覆蓋
- 自動化會提高測試覆蓋率,那測試覆蓋率是什麼?
- 知識普及:黑盒測試、白盒測試、灰盒測試之間的區別
- 白盒測試程式碼應該怎麼測試
- go 程式碼覆蓋率測試Go
- 單元測試接入覆蓋率
- Jacoco--測試覆蓋率工具
- 軟體測試中的白盒測試是什麼?
- 程式碼審計基礎--白盒測試
- Mockito提升單元測試覆蓋率Mockito
- 測試覆蓋率二改實現
- 測試覆蓋率 之 Cobertura的使用
- PouchContainer 整合測試覆蓋率統計AI
- iOS 覆蓋率檢測原理與增量程式碼測試覆蓋率工具實現iOS
- 單元測試的覆蓋率計算
- 非同步請求覆蓋如何測試到非同步
- Linux下lcov單元測試覆蓋率Linux
- 軟體測試要學什麼(2)白盒測試詳解教程
- 自動化測試如何實現全面覆蓋
- WinAMS―嵌入式軟體白盒測試工具介紹
- 有大佬做安卓平臺的白盒測試麼?安卓
- 如何制定介面自動化測試的覆蓋率?
- idea2022.1 檢視單測覆蓋率展示分支覆蓋率Idea
- 程式碼滲透測試服務 白盒審計詳情
- java覆蓋率檢測-jacocoJava
- 教你兩種資料庫覆蓋式資料匯入方法資料庫
- 生成Github JS 倉庫的測試覆蓋率徽標GithubJS
- 基於JaCoCo的Android測試覆蓋率統計(二)Android