条件覆盖(Conditioncoverage)
⼀个判定中往往包含了若⼲个条件,例如图6.4的程序中,判定(A>1) AND (B=0)包含了两个条件:A>1以及B=0,所以可引进⼀个更强的覆盖标准——“条件覆盖”“条件覆盖”的含义是:执⾏⾜够的测试⽤例,使得判定中的每个条件获得各种可能的结果。
图6.4的程序有四个条件:
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执⾏)。
忐忑不定
“条件覆盖”通常⽐“判定覆盖”强,因为它使⼀个判定中的每⼀个条件都取到了两个不同的结果,⽽判定覆盖则不保证这⼀点。但如对语句IF(A AND B)THEN S设计测试⽤例使其满⾜"条件覆盖",即使A为真并使B为假,以及使A为假⽽且B为真,但是它们都未能使语句S得以执⾏。