軟件測試技術基礎學習之測試覆蓋率 軟件測試
在測試方法中粗略的介紹了幾種測試方法。其中,白盒測試的動態分析方法中提到邏輯覆蓋率測試有:語句覆蓋、分支覆蓋/判定覆蓋、條件覆蓋、條件—判定覆蓋和路徑覆蓋。這里將詳細闡述邏輯覆蓋率測試。
準備知識:
可執行語句:可執行的一項操作;
真、假分支:Ture、False
操作數(Opreand)、操作符(Operator):
操作數:常量(整數、十六進制數、八進制數、實數、字符、字符串)、變量(簡單類型、數組類型、記錄類型、指針類型、聯合等);
操作符:單一操作符、二進制操作符、條件操作符、賦值操作符等。
覆蓋率
概念:覆蓋率是度量測試完整性的一個手段,是測試有效性的一個度量。
計算公式:
覆蓋率=(至少被執行一次的item數)/item總數
目的:評估測試的有效性,找出弱點,有目的的補充用例。
缺點:測試成本隨著覆蓋率的提高而增加。(在一般的測試中有個指標)
分類:
● 邏輯覆蓋率(Logical Coverage),也叫代碼覆蓋率(Code Coverage)或結構化覆蓋率,屬于白盒測試的范疇。
○ 語句覆蓋(Statement Coverage)率:程序中可執行語句被測試的比例。
◆ 語句覆蓋率=(至少被執行一次的可執行語句的數量)/(可執行語句的總數)
◆ 它最簡單的覆蓋,適合用于自動化測試;
◆ 幾乎所有的測試都能實現語句覆蓋率100%,所以它不是測試完整性好的度量。
○ 判定覆蓋(Decision Coverage)率/分支覆蓋(Branch Coverage)率:程序中真、假分支被測試占的比例。
◆ 判定覆蓋率=(判定結果被評價的次數)/(判定結果的總數)
◆ 它直接針對代碼,容易被理解,實現判定覆蓋率100%是可能的;
◆ 優于語句覆蓋,但對于復合條件,兩個或多個條件項的組合可能導致只有特定的分支被測到。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/