問題:
對這樣一段代碼:
if (a>2 && b<3 &line;&line; (c>4 && d<5))
statement;
請問,按照各種覆蓋方法應該怎么考慮它的測試?
我們這里只給出Condition/Decision Coverage和Modified Condition/Decision Coverage兩種覆蓋方法的用例設計。
Condition/Decision Coverage:
條件 結果
a<2 b>3 c<4 d>5 (a<2 && b>3 &line;&line; (c<4 && d>5)
T T T T T
F F F F F這個很容易,就不解釋了。
odified Condition/Decision Coverage:
基本思路:
表達式可以理解為(a<2 && b>3) &line;&line; (c<4 && d>5);
將表達式的理解為兩個組合條件A or B形成的表達式,其中A為(a<2 && b>3),B為(c<4 && d>5);
對這個表達式,當A為F時,B是獨立變量;當B為F時,A是獨立變量;
則第一步的分析可以圍繞A、B進行:
條件 結果
(A) (B) A or B
F T T
T F F
T F F
F F F
其中最后一組取值重復,最終根據這三種取值進一步分析。
文章來源于領測軟件測試網 http://www.kjueaiud.com/