白盒測試用例設(shè)計問題演示

字號:

問題:
     對這樣一段代碼:
     if (a>2 && b<3 &line;&line; (c>4 && d<5))
     statement;
     請問,按照各種覆蓋方法應(yīng)該怎么考慮它的測試?
     我們這里只給出Condition/Decision Coverage和Modified Condition/Decision Coverage兩種覆蓋方法的用例設(shè)計。
     Condition/Decision Coverage:
     條件 結(jié)果
     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:
     基本思路:
     表達(dá)式可以理解為(a<2 && b>3) &line;&line; (c<4 && d>5);
     將表達(dá)式的理解為兩個組合條件A or B形成的表達(dá)式,其中A為(a<2 && b>3),B為(c<4 && d>5);
     對這個表達(dá)式,當(dāng)A為F時,B是獨立變量;當(dāng)B為F時,A是獨立變量;
     則第一步的分析可以圍繞A、B進行:
     條件 結(jié)果
     (A) (B) A or B
     F T T
     T F F
     T F F
     F F F
     其中最后一組取值重復(fù),最終根據(jù)這三種取值進一步分析。
     5. 第二步的分析,考慮A表達(dá)式,A為(a<2 && b>3),當(dāng)a<2取值為T時,b>3為獨立變量;b>3取值為T時,a<2為獨立變量;因此,A條件取值為F的MC/DC用例為:
     條件
     結(jié)果
     (a<2) (b>3) (A)
     T F F
     F T F
     A條件取值為T的用例為T,T;
     6. 第三步的考慮,分析B表達(dá)式,B為(c<4 && d>5),同對A的分析,B為T的用例為T,T;B為F的用例為T,F(xiàn)和F,T;
     7. 綜合4、5、6的分析,最終得出結(jié)果:
     條件 結(jié)果
     a<2 b>3 c<4 d>5 (a<2 && b>3 &line;&line; (c<4 && d>5)
     T F T T T
     F T T T T
     T F T F F
     F T T F F
     T F T F F
     F T F T F
     T T T F T
     T T F T T