一、
语句路径覆盖:是一个比较弱的逻辑路径覆盖标准。是指通过选择足够的测试用例,使得运行这些用例时,被测程序的每一个语句至少被执行一次。
举例:
测试用例 | 输入 | 预期输出 | 被测路径 |
TC1 | x=4,y=2,z=0 | x = 3 | sacbed(红色路线) |
二、
判定路径覆盖:稍强于语句路径覆盖。指通过设计足够的测试用例,使得程序中的每一个判定至少都获得一次“真值”和“假值”。或者说使得程序中的每一个分支都至少通过一次。
举例:
测试用例 | 输入 | 预期输出 | 测试路径 |
TC2 | x=1 y=3 z=0 | x = 1/3 | sacbd(红色) |
TC3 | x=3 y=2 z=1 | x = 4 | sabed(蓝色) |
三、
条件路径覆盖:对于每一个判定中所包含的若干个条件,应设计足够多的测试用例,是的判定中的每一个条件都至少取到一次“真值”和“假值”的机会。就是说,每一个条件的判定结果都要至少出现一次。
判定路径覆盖与条件路径覆盖的区别:
1. 判定是指流程中的每一个夌形,条件是指夌形中的每一个条件。
2. 判定路径关注的是
每一个判定后的分支都需要覆盖,而条件路径指的是使
每一个条件成立或不成立的情况都需要覆盖。
3. 比如(x>1)这个条件,有两种情况可以使它成立或不成立,x=2时条件成立, x=0条件不成立;又比如(x>1 && y==0)这个条件,需要分别对其中的子条件x>1和y==0单独进行条件成立不成立的情况分析。x=2,y=0使x>1成立,y==0成立;x=0,y=1是x>1不成立,y==0也不成立。
举例:
测试用例 | 输入 | 预期输出 | 测试路径 |
TC4 | x=0 y=2 z=0 | x = 1 | sacbed(红色) |
TC5 | x=2 y=1 z=1 | x = 3 | sabed(蓝色) |
进一步解说,这里总共包含四个条件(y>1)、(z==0)、(y==2)、(x>1);设计用例的时候需要使它们都分别出现“真值”和“假值”至少各一次。TC4,TC5就覆盖四个条件至少一次“真值”和“假值”的取值。
四、判定/条件路径覆盖:通过设计足够多的测试用例,使得运行这些测试用例时,判定中的每一个条件的所有可能结果至少出现一次,并且每一个判定本身的所有可能结果也至少出现一次。也就是判定和条件路径覆盖的结合。
举例:
测试用例 | 输入 | 预期输出 | 测试路径 |
TC6 | x=4 y=2 z=0 | x = 3 | sacbed(红色) |
TC7 | x=1 y=1 z=1 | x = 1 | sabd(蓝色) |