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