精準測試之用例推薦

陈先生發表於2025-01-15

背景:在每次程式碼改動的時候,如果全量回歸用例,在用例規模不大的時候執行時間還可以接受,但是在隨著用例規模增大,全量回歸介面測試用例耗時將變得越來越慢,而且,程式碼可能就修改了幾行方法,也只需要部分測試用例即可覆蓋,這時候就非常有必要精準推薦測試用例了,只需要針對性的部分用例即可覆蓋到相關的被修改的方法,減少不必要的測試。

本方案是在基於介面測試的場景下實現的,主要核心思想是透過 jacoco 的覆蓋率資料,解析類和方法的覆蓋率,繫結用例關係,建立知識庫,這樣就可以實現用例和程式碼的雙向繫結。

具體方法是併發執行介面測試用例,收集每個 caseId 對應的探針資料,這個方案的難點是需要改造 jacoco 的 agent,改造探針的資料結構,使用 map 來存取探針資料,key 為 caseId,以 caseId 來劃分探針覆蓋率資料,這樣子就可以實現併發收集用例相關的覆蓋率資料了。在收集覆蓋率資料完成後,解析覆蓋率資料,過濾出類和方法有覆蓋率的資料,繫結用例,最終把類和方法關聯的用例存入資料庫,建立知識庫。在做用例推薦的時候,diff 出來差異程式碼,透過知識庫去查詢關聯的 caseId,最終實現精準用例推薦功能。

原文連結:https://blog.csdn.net/qq_34418450/article/details/145157266

相關文章