边界值分析技术
边界值选择基本原则
- 如果输入条件规定了取值范围,则以此范围为基础设计测试用例。
- 如果输入条件规定了取值的个数,则以个数为基础设计测试用例。
- 如果需求规格说明中指定了输出的范围和取值的个数,参考使用原则1和2。
- 如果输入或输出是一个有序集合,如:线性表、顺序文件等;则选择该序列中的第一个及最后一个元素进行测试,进一步考虑第二个元素和倒数第二个元素。
- 如果明确知道程序使用数组、链表等数据结构,应该测试这些数据结构上的边界条件。
- 对于被测软件进行深入分析,从而发现隐含的边界条件。
边界值测试分类
考虑2个问题:是否关心无效输入情况,是否考虑错误是由多个输入同时取极值造成的。
分类:普通边界值测试、健壮性测试、最坏情况测试、健壮最坏情况测试。
测试用例数量归纳:
边界值分析:4n+1
健壮性测试:6n+1
最坏情况:5^n
健壮最坏情况:7^n
等价类测试技术
等价类概念
等价类是指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误是等效的,或者进行相同的处理。
测试某等价类的一组数据就等价于对这一类其他值的测试。
分为有效等价类和无效等价类。
两个动机:期望进行某种意义上的完备性测试;期望尽可能多的避免冗余测试。
核心:对输入域或输出域进行等价划分。
等价类测试原则
- 如果输入条件规定了取值范围,可定义一个有效等价类和两个无效等价类。
- 如果规定了输入数据的个数,则类似的可以划分出一个有效等价类和两个无效等价类。
- 如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,并有一个无效等价类。
- 如规定了输入数据必须遵循的规则,可确定一个有效等价类和若干个无效等价类(从不同角度违反规则)。
- 如果确知已划分的等价类中各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类。
- 等价类的划分通常不能一步到位,需要多次尝试才能得到效果较好的等价类。
等价类测试流程
确定等价关系——生成测试用例——执行测试用例——记录并分析测试结果
总结
等价类测试是一种有效测试技术;如果输入域等价类测试结果不好,可以考虑输出域等价类划分;一开始难以得到较好的等价关系,可能需要多次尝试。
等价类测试分类:是否考虑无效等价类,单缺陷假设还是多缺陷假设。
- 弱一般等价类测试
- 强一般等价类测试
- 弱健壮等价类测试
- 强健壮等价类测试