白盒覆蓋率,灰盒覆蓋率,接口覆蓋率和黑盒覆蓋率 | 當前位置: 首頁> 學習中心> 小白入門> 詳情 |
什么是覆蓋率?
覆蓋率是用來度量測試完整性的一個指標。現在越來越多的測試工具能夠支持覆蓋率測試,但是它們本身并不包含測試技術,只是測試技術有效性的一個度量。
覆蓋率按照測試方法大體上可以劃分為三大類,即白盒覆蓋率 (white box coverage)、灰盒覆蓋率(gray box coverage)和黑盒覆蓋率 (black box coverage )。
假設我們要對項的覆蓋情況進行計算,那么覆蓋率可以通過一個公式來表示。
覆蓋率=(至少執行一次的項數/總項數)×100%
覆蓋率對軟件測試有著非常重要的作用。通過覆蓋率,我們可以知道測試是否充分,測試的缺點是哪些方面,進而指導我們設計能夠增大覆蓋率的測試用例,有效提高測試質量。但是測試用例設計也不能一味追求覆蓋率,因為測試成本隨覆蓋率的增加而增加。
白盒覆蓋率
實際工作中使用次數最多的覆蓋率是白盒覆蓋率。可以通過各種白盒覆蓋率來度量單元測試的充分性。
邏輯覆蓋率
度量
白盒測試是基于程序結構的邏輯驅動測試,其原則如下:
● 保證一個模塊中的所有獨立路徑至少覆蓋一次。
●對所有邏輯值均要測試 True和 Flase。
● 在上下邊界及可操作范圍內運行所有循環。
● 檢查內部數據結構,以確保其有效性。
通過對程序邏輯結構的遍歷實現程序的邏輯覆蓋。白盒覆蓋率中使用次數最多的覆蓋率就是邏輯覆蓋率 (logical coverage),也稱代碼覆蓋率(code coverage)或結構化覆蓋率(structural coverage)。從覆蓋源程序語句的詳盡程度分析,邏輯覆蓋率包括語句覆蓋率(Statement Coverage, Sc),判定覆蓋率(Decision Coverage, DC),條件覆蓋率(Condition Coverage, CC), 判定條件覆蓋率(Decision Condition Coverage, DeC),條件組合覆蓋率(Condition Combination Coverage, CCC),以及路徑覆蓋率(Path Coverage,PC)。
灰盒覆蓋率
函數覆蓋率和接口覆蓋率可以歸為灰盒覆蓋率的范疇。
函數覆蓋率
很多測試工具(如TrueCoverage、 Purecoverage等),提供了函數覆蓋率的概念。函數覆蓋率是針對系統或子系統的測試的,它表示在測試中有哪些函數測試了,其被測試的概率有多大,這些函數在系統所有函數中占的比例有多大。計算函數覆蓋率的公式如下。
函數覆蓋率=(至少執行一次的函數數量/系統中函數的總數)x100%
接口覆蓋率
接口覆蓋率 (interface coverage)也稱人口點覆蓋 (entry-point coverage ),要求通過設計一定的用例使得系統的每個接口被測試到。其計算公式如下。
接口覆蓋率=(至少執行一次的接口數量/系統中接口的總數)×100%
黑盒覆蓋率
在實際測試中,與黑盒相關的覆蓋率比較少,主要是功能覆蓋率(function coverage )。
功能覆蓋率中最常見的是需求覆蓋率,其含義是通過設計一定的測試用例,要求每個需求點都被測試。計算需求覆蓋率的公式如下。
需求覆蓋率=(被驗證的需求數量/總的需求數量)×100%
由于黑盒測試把被測系統理解為一個黑盒,測試時,輸人測試數據,然后判定輸出結果是否與期望結果一致。根據這個可以得到輸入數據的覆蓋情況,即通過設計一定的用例,要求每種情況都被測試。功能測試覆蓋方面的自動化工具比較少。
更多軟件測試相關推薦:
文章來源:網絡 版權歸原作者所有
上文內容不用于商業目的,如涉及知識產權問題,請權利人聯系博為峰小編(021-64471599-8103),我們將立即處理