Java中語句、分支和路徑覆蓋測試[2] 軟件測試
在 returnInput() 中有一個明顯的bug。如果第一個或第二個決策計算為真而其他的計算為假,返回值則不等于該方法的輸入值。精明的軟件開發人員會立即注意到這個問題,但語句覆蓋報告卻顯示為100%的覆蓋率。如果管理員發現覆蓋率為100%,他/她可能會受到虛假的安全感的影響,判定測試已經完成,繼而發布錯誤百出的代碼,將之投入生產。
僅僅認識語句覆蓋是不夠的,開發人員必須進一步使用更為完善的測試技術:分支覆蓋。
分支覆蓋
分支是指決策的結果,因而分支覆蓋可以評測已測試的決策結果。這聽起來不錯,因為這樣可以比語句覆蓋更深入地查看源代碼,但分支覆蓋也會提出更多的要求。
確定方法中的分支數量非常容易。布爾決策無疑只有兩種結果:真和假,而開關對于每種情況來說都只有一種結果——別忘了默認情況!方法中的決策結果總數等同于方法中需要覆蓋的分支與輸入分支的總和。(畢竟,使用直線代碼的方法也有一個分支)。
在以上示例中, returnInput() 具有七個分支——三個是真,三個是假,還有一個是用于方法輸入的隱藏分支。您可以用兩個測試用例來覆蓋六個真和假的分支:

圖3. 分支覆蓋
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/