2.1.5 步驟5:覆蓋率測試用例設計
應該或已有測試用例所達到的代碼覆蓋率。應該增加更多的測試用例到單元測試說明中以達到特定測試的覆蓋率目標。一旦覆蓋測試設計好,就可以構造測試過程和執行測試。覆蓋率測試一般要求語句覆蓋率和判斷覆蓋率。
適合的技術:
分支測試
條件測試
數據定義-使用測試
狀態轉換測試
2.1.6 步驟6:測試執行
使用上述5 個步驟設計的測試說明在大多少情況下可以實現一個比較完整的單元測試。
到這一步,就可以使用測試說明構造實際的測試過程和用于執行測試的測試過程。該測試過程可能是特定測試工具的一個測試腳本。
測試過程的執行可以查出模塊單元的錯誤,然后進行修復和重新測試。在軟件測試過程中的動態分析可以產生代碼覆蓋率測量值,以指示覆蓋目標已經達到。因此需要在軟件測試設計說明中需要增加一個完善代碼覆蓋率的步驟。
2.1.7 步驟7:完善代碼覆蓋
由于模塊單元的設計文檔規范不一,測試設計中可能引入人為的錯誤,測試執行后,復雜的決策條件、循環和分支的覆蓋率目標可能并沒有達到,這時需要進行分析找出原因,導致一些重要執行路徑沒有被覆蓋的可能原因有:
不可行路徑或條件 ―― 應該標注測試說明證明該路徑或條件沒有測試的原因。
不可到達或冗余代碼 ―― 正確處理方法是刪除這種代碼。這種分析容易出錯,特別是使用防衛式程序設計技術(Defensive Programming Techniques)時,如有疑義,這些防衛性程序代碼就不要刪除。
測試用例不足 ―― 應該重新提煉測試用例,設計更多的測試用例添加到測試說明中以覆蓋沒有執行過的路徑
理想情況下,覆蓋完善階段應該在不閱讀實際代碼的情況下進行。然而,實際上,為達到覆蓋率目標,看一下實際代碼也是需要的。覆蓋完善步驟的重要程度相對小一些。最有效的測試來自于分析和說明,而不是來自于試驗,依賴覆蓋完善步驟補充一份不好的測試設計。
適合的技術:
分支測試
條件測試
設計定義――試驗測試
狀態轉換測試