全球专业中文经管百科,由121,994位网友共同编写而成,共计436,047个条目

条件覆盖

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

目录

什么是条件覆盖

  条件覆盖是指设计足够多的测试用例,运行被测程序,使得每一判定语句中每个逻辑条件的可能取值至少满足一次。

  条件覆盖率=被评价到的条件取值的数量/条件取值的总数*100%

  条件覆盖的含义是:使每个判定表达式中的每个条件都取到各种可能的结果。


条件覆盖的举例分析

  例1:

  PROCEDURE M(VAR A,B,X:REAL);

  BEGIN

   IF (A>1) AND (B=0) THEN X:=X/A;

   IF (A=2) OR (X>1) THEN X:=X+1;

  END.

  例1的程序有四个条件:

   A>1、 B=0、A=2、X>1

  为达到“条件覆盖”标准,需执行足够的测试用例使得在a点有:

   A>1、A≤1、B=0、B≠0

  等各种结果出现,以及在b点有:

   A=2、A≠2、X>1、X≤1

  等各种结果出现。

  现在只需设计以下两个测试用例就可满足这一标准

  ① A=2,B=0,X=4 (沿路径ace执行);

  ② A=1,B=1,X=1 (沿路径abd执行)。

  例2:

  void DoWork(int x,int y,int z)

  { int k=0,j=0;

   if((x>3)&&(z<10))

   { k=x*y-1; //语句块1

   j=sqrt(k);

   }

   if((x= =4)||(y>5))

   j=x*y+10; //语句块2

   j=j%3; //语句块3

  }

  对例2中的所有条件取值加以标记。

  对于第一个判断:

  条件x>3 取真值为T1,取假值为-T1

  条件z<10 取真值为T2,取假值为-T2

  对于第二个判断:

  条件x=4 取真值为T3,取假值为-T3

  条件y>5 取真值为T4,取假值为-T4

  则可以设计测试用例如下:

测试用例通过路径条件取值覆盖分支
x=4、y=6、z=5abdT1T2T3T4bd
x=2、y=5、z=5ace-T1T2、-T3、-T4ce
x=4、y=5、z=15acdT1、-T2T3、-T4cd

上面的测试用例不但覆盖了所有分支的真假两个分支,而且覆盖了判断中的所有条件的可能值。

  “条件覆盖”并不包含“分支覆盖

  如对语句

   IF(A AND B) THEN S

  设计2个测试用例,使其满足“条件覆盖”:

   1、使A为真并使B为假;

   2、使A为假而且B为真;

  但是它们都未能使语句S得以执行。

  对例2设计了下面的测试用例,则虽然满足了条件覆盖,但只覆盖了第一个条件的取假分支和第二个条件的取真分支,不满足分支覆盖的要求。

测试用例通过路径条件取值覆盖分支
x=2、y=6、z=5acd-T1T2、-T3T4cd
x=4、y=5、z=15acdT1、-T2T3、-T4cd
本条目对我有帮助12
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您认为本条目还有待完善,需要补充新内容或修改错误内容,请编辑条目投诉举报

本条目由以下用户参与贡献

Tracy,赵先生.

评论(共0条)

提示:评论内容为网友针对条目"条件覆盖"展开的讨论,与本站观点立场无关。

发表评论请文明上网,理性发言并遵守有关规定。

打开APP

以上内容根据网友推荐自动排序生成

官方社群
下载APP

闽公网安备 35020302032707号