一、语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖。
1.语句覆盖:
定义:只管覆盖代码中的执行语句,却不考虑各种分支的组合等等。
例子:
if(a&b):
语句1
使用语句覆盖,只要让执行语句执行就可以,取的测试用例为:
a=true, b=true
2.判定覆盖或分支覆盖
定义:设计足够多的测试用例,使得程序中的每一个判断至少获得一次“真”和一次“假”,即使得程序流程图中的每一个真假分支至少被执行一次。
例子:
if(a||b):
语句1
else:
语句2
对于这样的一个程序的判定覆盖,我们可以取测试用例为
a=true, b=true
a=false, b=false
3.条件覆盖
定义:比判定覆盖更强,确保一个判断中的每个条件的所有可能的结果至少执行一次。
例子:
if(a&b):
语句1
else:
语句2
对这样的程序,a的取值为true和false, b的取值为true和false,为了确保每个条件的结果至少被执行一次,采用条件覆盖,可选取的测试用例为:
a=true, b=false
a=false, b=true
4.判定/条件覆盖
定义:设计充足的测试用例,将一个判断中的每个条件的所有可能结果至少执行一次,将每个判断的所有可能结果至少执行一次,将每个入口点都至少调用一次。(也就是每个判定的真假各取一次,条件的真假也各取一次。)
例子:
if(a>5 & b<0):
语句1
选取的测试用例为:
a=6, b=-1 (a>5,b<0,使得判定为真)
a=4, b=1 (a<=5,b>=0,使得判定为假)
5.多重条件覆盖准则
定义:要求编写足够多的测试用例,将每个判定中的所有可能的条件结果的组合,以及所有的入口点都至少执行一次。
例子:
if(a>5 & b<0):
语句1
a的取值有a>5,a<=5,b的取值有b<0,b>=0,将条件亮亮组合,有4种结果。取的测试用例为:
a>5, b<0
a>5, b>=0
a<=5, b<0
a<=5, b>=0
二、黑盒测试
1.等价划分
步骤:确定等价类,生成测试用例。
生成测试用例的过程:为每一个等价类设置一个不同的编号,编写测试用例尽可能多的覆盖有效等价类,编写测试用例覆盖一个且仅一个尚未被涵盖的无效等价类。
2.边界值分析
对输入和输出边界都要进行分析
3.因果图
等价划分和边界值分析没有对输入条件的组合进行分析
步骤:将规格说明分解成可执行的片段;确定规格说明中的因果关系;分析规格说明的语义内容,将其转换为连接因果关系的布尔图;给图加上注解符号;将因果图转换为有限项的判定表,表中的每一列代表一个测试用例;将列转换成测试用例。
对于规格说明中包含输入条件组合的情况,首先使用因果图分析。然后任何情况下都要用边界值,为输入输出确定有效等价类和无效等价类,使用错误猜测来补充。