一個信心十足的測試人員可以是“霸氣側(cè)漏”的:“相信我!都測過了!”。但不幸的是,一上線,發(fā)現(xiàn)“漏測”了!不是需求理解的遺漏,而是代碼級別的漏測,防不勝防??!那有沒有辦法避免“漏測”呢?
讓我們先來看一個關(guān)于測試的核心問題:QA測的, DEV改的,用戶用的,這3者是什么關(guān)系?
我認(rèn)為的理想關(guān)系是這樣的:

但實(shí)際上的關(guān)系往往是這樣的:

圖2中:
?黃色部分代表:“DEV改的”但沒有被 “QA測的”
?紅色部分代表:“DEV改的”且“用戶用的”但沒有被“QA測的”。它可以被包括在上面黃色的部分,只是測試優(yōu)先級更高
?橙色部分代表:“用戶用的”且沒有被“QA測的”
那么如何避免這些”漏測“呢?
1. 針對“DEV改的”但沒有被 “QA測的”(黃色部分)
?目標(biāo):
? ? 通過提供“本輪DEV改過,但測試環(huán)境沒有跑到的代碼”的報(bào)告,指導(dǎo)QA補(bǔ)測這些地方,實(shí)現(xiàn)“凡改動過,必測過”。
?思路:
? ?通過GIT 拿到當(dāng)前正在開發(fā)的DEV branch和產(chǎn)品的Release branch之間的差別,識別出改動過的代碼
? ? ?通過jacoco得到測試環(huán)境的累計(jì)的代碼覆蓋情況
? ? ?比較得出:本輪改動過,但沒有被測試覆蓋過的代碼報(bào)告。
? ? ? ?QA根據(jù)報(bào)告,補(bǔ)測
?參考資料:? ? ? ? ? ? ? ? ? ?https://testerhome.com/articles/16982
2. 針對“用戶用的”且沒有被“QA測的”(橙色部分)
?目標(biāo):
? ? ?通過提供“用戶常用的,但測試環(huán)境沒有跑到的代碼”的報(bào)告,指導(dǎo)QA補(bǔ)充自動化測試用例,實(shí)現(xiàn)“用戶常用的,必被自動化測試時刻保護(hù)”。
?思路:
? ? ?識別什么是“用戶常用的”?(通過靜態(tài)和動態(tài)結(jié)合的方法)
? ? ? ? ? ?功能級別:BA提供VIP客戶的業(yè)務(wù)流程/數(shù)據(jù);QA分析VIP客戶的真實(shí)數(shù)據(jù)
? ? ? ? ? ? ?方法級別:ART report (提供被訪問的方法列表(帶累計(jì)訪問次數(shù)))(這個是我們內(nèi)部的一個報(bào)表)
? ? ? ? ? ? ? 代碼行級別:產(chǎn)品環(huán)境的Jacoco report
?方案:
? ? ? ? ? ?理想方案:到代碼行級別
? ? ? ? ? ? ? ? ?產(chǎn)品環(huán)境jacoco report 覆蓋到,但QA環(huán)境自動化測試后的jacoco report里沒有覆蓋到的方法/行。
? ? ? ? ? ? ? ? ?*需要測試jacoco report對性能的影響
? ? ? ? ? ?現(xiàn)實(shí)方案:到方法級別
? ? ? ? ? ? ? ? ?產(chǎn)品環(huán)境ART report 里按照調(diào)用次數(shù)排名,沒有被QA環(huán)境自動化測試后的jacoco report覆蓋到的方法列表。