一懒棉、白盒測(cè)試的度量
- 根據(jù)待測(cè)產(chǎn)品的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)來(lái)設(shè)計(jì)測(cè)試用例
- 白盒測(cè)試的執(zhí)行手段是可以涵蓋單元測(cè)試、集成測(cè)試
- 使用代碼覆蓋率作為白盒測(cè)試的主要度量指標(biāo)
二览绿、代碼覆蓋率常見(jiàn)概念
- 語(yǔ)句覆蓋:每行代碼都要覆蓋至少一次
- 判定覆蓋:判定表達(dá)式的真假至少覆蓋一次
- 判定/條件覆蓋:判定覆蓋與條件覆蓋都必須覆蓋
- 條件組合覆蓋:判定表達(dá)式中的所有條件組合都需要覆蓋
- 分支覆蓋:控制流中的每條邊都要被覆蓋一次
- 路徑覆蓋:所有的路徑都要盡量覆蓋
- 指令覆蓋:一行代碼會(huì)被編譯為多條指令策严,盡可能的覆蓋所有指令
- 方法覆蓋:每個(gè)方法至少要被覆蓋一次
- 類(lèi)覆蓋:每個(gè)類(lèi)至少被覆蓋一次
三、覆蓋率統(tǒng)計(jì)的工具
- emma
- cobertura
- jacoco
插樁原理
- 對(duì)jvm的字節(jié)碼插樁基于block插樁
- 計(jì)算覆蓋的代碼塊
image.png
JACOCO覆蓋率報(bào)告
image.png
四饿敲、流程覆蓋
- 利用代碼執(zhí)行流代表流程
- 流程覆蓋用路徑覆蓋率表達(dá)
- 對(duì)流程進(jìn)行裁剪獲得一個(gè)適合業(yè)務(wù)的小規(guī)模的業(yè)務(wù)子集
- 流程覆蓋率 = 測(cè)試經(jīng)過(guò)的路徑 / 業(yè)務(wù)子集路徑
某系統(tǒng)流程圖
image.png
百度Image搜索系統(tǒng)建模
image.png
精準(zhǔn)化測(cè)試
- 代碼調(diào)用鏈與黑盒測(cè)試用例的關(guān)聯(lián)
- 根據(jù)代碼變更自動(dòng)分析影響范圍
- 黑盒測(cè)試過(guò)程中借助代碼流程覆蓋數(shù)據(jù)指導(dǎo)探索式測(cè)試
- 利用線上數(shù)據(jù)推導(dǎo)有效測(cè)試用例
- 代碼流程分析與覆蓋率統(tǒng)計(jì)