1、软件测试技术与实践,第8课时 白盒条件组合/路径覆盖,判断/条件覆盖条件组合覆盖路径覆盖,上一节课我们学了什么呢,1. 判断/条件覆盖,例1:下面是一段简单的Java语言程序,作为公共程序段来讨论3种覆盖测试的各自特点。程序如下:1 if (x100 ,1. 判断/条件覆盖,由以上程序可画出如下控制流图,1. 判断/条件覆盖,定义:要求设计若干个测试用例,执行被测程序,使得程序中每个判断条件的真假值分支,以及每个判断条件的内部判断式的真假值分支都被执行一遍Case1:x=1000,y=600,z=6000 a-c-e;Case9:x=50,y=200,z=2000 a-b-d;,1. 判断/条
2、件覆盖,测试用例组同时满足了判断覆盖和条件覆盖判断/条件覆盖没有对每个判断条件的内部判断式的所有真假值组合进行测试。优点:判断-条件覆盖满足了判定覆盖准则和条件覆盖准则,弥补了二者的不足缺点:判断-条件覆盖准则并没有考虑条件的所有组合的情况,2. 条件组合覆盖,定义:要求设计若干个测试用例,执行被测程序,使得程序中每个判断条件的内部判断式的各种真假值组合可能都至少被执行一遍。只要是满足条件组合覆盖的测试一定满足判断覆盖、条件覆盖和判断/条件覆盖列出所有条件组合:即每个判断条件的两个判断是具有4种真假值组合,2. 条件组合覆盖,设计测试用例组:Case1:x=1000,y=600,z=6000
3、a-c-e;Case7:x=50,y=600,z=6000 a-b-e;Case8:x=2000,y=200,z=2000 a-b-d;Case9:x=50,y=200,z=2000 a-b-d;,2. 条件组合覆盖,同时满足了判断覆盖和条件覆盖,然而没有执行程序中所有可能的路径(没包含路径a-c-d)优点:满足判断覆盖、条件覆盖和判断/条件覆盖准则缺点:线性地增加了测试用例的数量,并没有将所有路径包含,可能还存在缺陷,3. 路径覆盖,定义:要求设计若干测试用例,执行被测程序,使得程序中所有可能的路径都能被覆盖到。例1中每条路径的分析设计测试用例组:Case1:x=1000,y=600,z=6
4、000 a-c-e;Case3:x=50,y=600,z=2000 a-b-d;Case4:x=200,y=600,z=2000 a-c-d;Case8:x=2000,y=200,z=1000 a-b-e;,3. 路径覆盖,得到如下测试用例,总结6种逻辑覆盖,每一种方法都有其优点和局限性,没有十全十美的测试覆盖方法根据具体情况选取合适的覆盖测试方法经验:语句覆盖、判断覆盖和路径覆盖是用的最多的。,总结6种逻辑覆盖,要求:1)语句覆盖率:100%2)分支/判断覆盖:85%以上3)路径覆盖:80%以上,本节内容总结,判断-条件覆盖/条件组合覆盖/路径覆盖的定义及其优缺点6种逻辑覆盖测试方法的选取及其要求,