● 結果
基于以上的回歸測試解決方案,我們對一個有著 30 個測試用例的程序進行回歸測試,得到如下測試用例優化選擇分析報表:
Change Analysis Report
總函數 | 變更函數 | 覆蓋數 | 未覆蓋 | 覆蓋率 |
108 | 12 | 10 | 2 | 83.3% |
表 1 優化選擇測試用例: 3 (of Total 30)
Case Name | Cover Changed Method | |
TestCase001 | 5 | details |
TestCase005 | 3 | details |
TestCase013 | 2 | details |
分析報告顯示這次代碼變更共有 12 個函數發生了更改。在 30 個測試用例中有 3 個測試用例與這些更改相關,它們覆蓋了這次代碼更改 12 個中的 10 個。而其它 27 的測試用例則與這 12 個代碼改動毫不相關。
表 2 回歸測試結果分析
全部測試用例 | 優化選擇 | 函數變更 | 覆蓋率分析 | ||
已覆蓋 | 未覆蓋 | 覆蓋率 | |||
30 | 3 | 12 | 10 | 2 | 83.3% |
從表中我們可以看到,經過測試用例優化選擇之后,我們選出了 3 個和函數變更相關的測試用例,達到了 83.3% 的覆蓋率。同時由于 27 個與函數變更無關的測試用例不需要重測,使得 90% 的回歸測試資源得到了節省。
從表中我們可以看到,經過測試用例優化選擇之后,我們選出了 3 個和函數變更相關的測試用例,達到了 83.3% 的覆蓋率。同時由于 27 個與函數變更無關的測試用例不需要重測,使得 90% 的回歸測試資源得到了節省。

圖 7. 覆蓋率分析
從上圖,我們可以清楚地看到基于每個函數改動的相關測試用例的數目,以及測試覆蓋率。比如 ManageCommodityAction 這個 Class 里面,存在了 2 個 Change Method, 只有 1 個 changed method 被現有的 1 個 Test Case 所覆蓋,測試覆蓋率為 50% 。
上面分析報告中總共有 12 個函數發生改動,基中還有 2 個沒有被任何測試用例覆蓋到。那么未被覆蓋的 Change Method 就需要測試人員對之進行分析并且添加新的測試用例以提高我們的測試覆蓋率 , 保證測試質量。
總結
回歸測試用例的優化選擇,以最少的測試用例,準確地覆蓋所作改動,極大地提高了我們回歸測試的測試效率與測試質量。
自動測試過程中的覆蓋率反饋分析,以最小的測試代價,最精確的分析,來獲得當前的測試完成情況,為測試人員提高了良好的分析報告,以便測試人員改進和新增新的測試用例。大大提高了回歸測試的測試效率與質量。
文章來源于領測軟件測試網 http://www.kjueaiud.com/