技术开发 频道

白盒测试用例设计问题演示

【IT168 技术文章】

  问题:

  对这样一段代码:

  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

  其中最后一组取值重复,最终根据这三种取值进一步分析。

  5. 第二步的分析,考虑A表达式,A为(a<2 && b>3),当a<2取值为T时,b>3为独立变量;b>3取值为T时,a<2为独立变量;因此,A条件取值为F的MC/DC用例为:

  条件

  结果

  (a<2) (b>3) (A)

  T F F

  F T F

  A条件取值为T的用例为T,T;

  6. 第三步的考虑,分析B表达式,B为(c<4 && d>5),同对A的分析,B为T的用例为T,T;B为F的用例为T,F和F,T;

  7. 综合4、5、6的分析,最终得出结果:

  条件 结果

  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

 

0
相关文章