2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 动态白盒测试——逻辑覆盖测试法

动态白盒测试——逻辑覆盖测试法

时间:2023-10-30 12:42:41

相关推荐

动态白盒测试——逻辑覆盖测试法

逻辑覆盖测试法

定义

以程序内部的逻辑结构为基础的用例设计方法,它通过对程序逻辑结构的遍历实现程序的覆盖。

逻辑覆盖测试法分为:语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖六种。

//以下代码用于测试六种逻辑覆盖测试法IntlogicExample(int x, int y){int magic=0;if(x>0&&y>0)magic=x + y + 10; //语句1elsemagic = x + y - 10; //语句2if(magic<)magic=0;//语句3return magic;//语句4}

代码流程图如下

语句覆盖

定义

语句覆盖要求设计足够多的测试用例,运行被测程序,使得程序中每条语句至少被执行一次。

实例

(测试用例不唯一)

在这个实例中,无法判断运算中逻辑关系错误。当第一个判断语句if(x>0&&y>0)被错写成if(x>0||y>0)也能达到100%的语句覆盖,所以语句覆盖不能发现上述的逻辑错误。

判定覆盖

满足判定覆盖,则满足语句覆盖。

定义

判定覆盖,又称”分支覆盖“;要求设计足够多的测试用例,运行被测程序,使得程序中每个判断的”真“和”假“都至少被执行一次。

实例

在本例共有两个判断条件:if(x>0&&y>)if(magic<0)

通过着两个测试用例,两个判断的真、假分支都已经被执行过,所以满足了判定覆盖的标准。

在这个实例中,无法判断运算中逻辑关系错误。当第一个判断语句if(x>0&&y>0)被错写成if(x>0||y>0)也能达到100%的语句覆盖,所以判定覆盖也无法发现上面的逻辑错误。

条件覆盖

定义

条件覆盖要求设计足够多的测试用例,运行被测程序,使得判定中的每个条件获得各种可能的结果;即每个条件至少有一次为真,有一次为假。

实例

本例共有两个判断条件:if(x>0&&y>)if(magic<0)共计三个条件x>0、y>0、magic<0

通过这两个测试用例,三个条件的各种可能取值都满足了一次,达到了100%条件覆盖的标准。

条件覆盖职能保证每个条件至少有一次为真,而不考虑所有的判定结果。因此条件覆盖不能保证满足判定覆盖。

判定-条件覆盖

同时满足判定覆盖和条件覆盖

定义

判定-条件覆盖要求设计足够多的用例,运行被测程序,使得被测程序中的每个判断本身的结果(真、假)至少满足一次,同时,每个逻辑条件的可能值也至少满足一次。即同时满足100%判定覆盖和100%条件覆盖的标准。

实例

通过这两个测试用例,所有条件的可能取值都满足了一次,而且所有的判断本身的判定结果也都满足了一次。

判定-条件覆盖满足了判定覆盖准则和条件覆盖准则,弥补了二者的不足。但未考虑条件组合的情况。

条件组合覆盖

条件组合覆盖同时满足语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖

定义

条件组合覆盖要求设计足够多的测试用例,运行被测程序,使得被测程序中每个判定中条件结果的所有可能组合至少执行一次。

其测试用例需要注意三点:1. 条件组合只针对同一个判断语句内存在多个条件的情况,让这些条件的取值进行笛卡尔乘积组合;2. 不同的判断语句内的条件取值之间无须组合;3. 对于单条件的判断语句,只需要满足自己所有的取值即可。

实例

通过这四个测试用例,程序中所有条件取值的组合都被满足了一次。

路径覆盖

100%满足路径测试,一定能100%满足判定覆盖标准,单并不一定能100%满足条件覆盖,也就不能满足100%条件组合覆盖。

定义

路径覆盖要求设计足够的测试用例,运行被测程序,覆盖程序中所有可能的路径。

实例

本例中共有4条路径,其中路径a-->c-->e不可能实现,通过这三个测试用例,所有可能的路径都被满足了一次。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。