如上圖所示,所有的測試用例都會有一個函數調用的路徑。我們把這些調用路徑一一記下來。對于新版本所作的改動,所有與之相關的上層調用的測試用例都能夠準確地選出來,這樣我們就能用這些準確的測試用例來覆蓋這次改動所產生的影響。毫不相關的測試用例則不會被選出來。從而用較小的成本完成這次改動所需要的回歸測試,既省時省力又保證較高的測試質量。
圖 4. 覆蓋率分析舉例

圖片4
如上圖所示,在版本更新過程中受到影響的測試用例為 Test Case1, Test Case2, Test Case3 覆蓋了 12 個 Node,在版本更新過程中的更新點是 4,其中被覆蓋到的為 3,還有 1 個更新點沒有被覆蓋到,現有測試用例集合的更新覆蓋能力為 75% 。這樣,我們知道上一個版本的測試用例設計不夠充分尚有程序模塊沒有被任何已有的測試用例所覆蓋。由于代碼的更新最有可能引起程序的缺陷甚至系統崩潰,所以需要添加新的測試用例以保證對更新的覆蓋,以降低程序運行的風險。
對于軟件的節點覆蓋率,我們細化到函數粒度。我們是通過軟件部署的 Binary 代碼分析得知的函數情況。不需要借助源代碼,因此對于軟件進行測試覆蓋率分析來說要求低,用較小的成本完成此次的測試用例覆蓋反饋與分析。既省時省力又保證較高的測試質量。

圖片2

圖片1
文章來源于領測軟件測試網 http://www.kjueaiud.com/