由于时间和成本的约束,软件测试的最关键问题是:
在所有可能的测试用例中,哪个子集最有可能发现最多的错误
测试方法:
黑盒测试
1. 严格控制测试用例的增加,减少为达到“合理测试”的某些既定目标而必须设计的其他测试用例的数量
2. 它覆盖了大部分其他可能的测试用例。
划分了等价类后,就可以说,如果对该集合中某个元素所进行的测试没有发现错误的话,那么对该集合中其他元素所进行的测试也不大可能会发现错误。
使用等价类划分方法设计测试用例主要有两个步骤:(1)确定等价类; (2)生成测试用例
(1)确定等价类
外部条件,有效等价类(代表对程序的有效输入),无效等价类(其他任何可能的输入条件-即不正确的输入值)
确定等价类大体上是一个启发式的过程,一些指导原则:
(2)生成测试用例
使用等价类来生成测试用例的过程:
所谓边界条件,是指输入和输出等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。
生成测试用例时采用的过程:
因果图中的基本符号:
设想一下,每个结点的值为0或为1,0表示“不存在”状态, 1 表示“存在” 状态。identity函数表示,如果a等于1,则b也是1,否则b为0. not函数表示如果a等于1,则b为0,否则b为1.Or函数表示如果a或b或c等于1,则d为1,否则d为0。 and函数表示如果a和b都等于1,则c为1,否则c为0.
白盒测试(White-Box Testing)
int foo(int x, int y) { return x / y; }
测试用例,x=10, y=5.
public void foo(int a, int b, int x) { if (a > 1 && b == 0) { x = x / a; } if (a == 2 || x > 1) { x = x + 1; } }
测试策略:
1. 如果规格说明中包含输入条件组合的情况,应首先使用因果图分析方法
2. 在任何情况下都应使用边界值分析方法。对输入和输出边界进行的分析
3. 应为输入和输出确定有效和无效等价类,在必要情况下对上面确认的测试用例进行补充
4. 使用错误猜测技术增加更多的测试用例
5. 针对上述测试用例集检查程序的逻辑结构。应使用判定覆盖、条件覆盖、判定/条件覆盖或多重条件覆盖准则。
原文:http://www.cnblogs.com/LilianChen/p/4053063.html