1.测试方法
测试方法的分类如下:
黑盒测试 | 白盒测试 |
---|---|
等价类划分 | 语句覆盖 |
边界值分析 | 判定覆盖 |
因果图 | 条件覆盖 |
错误测试 | 判定/条件覆盖 |
多重条件覆盖 |
2.黑盒测试
等价类划分
将程序的输入数据划分为有限数量的等价类,等价类中的任一数据等价于该类中的其他任一数据。
等价类中的用例必须体现尽可能多的输入情况,以减少用例的数量。
等价划分包括两个步骤:
(1)确定等价类
将输入条件划分为两个或更多的组。
(2)生成测试用例
每个等价类设置编号;
编写测试用例,覆盖所有的有效等价类;
编写测试用例,覆盖所有的无效等价类。
边界分析
边界条件是指输入和输出等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。
(1)如果输入条件规定了输入值范围,那么应针对范围的边界和刚刚越界的情况设计测试用例。
(2)如果输入条件规定了输入值的数量,那么应针对最小数量输入值、最大数量输入值,以及比最小数量少一个、比最大数量多一个的情况设计测试用例。
(3)对每个输出条件应用(1)(2)。
(4)如果程序的输入或输出是一个有序序列,则应特别注意该序列的第一个和最后一个元素。
因果图
生成测试用例的过程如下:
(1)将规格说明分解为可执行的片段;
(2)确定规格说明中的因果关系,“因”是指一个明确的输入条件或输入条件的等价类,“果”是指一个输出条件或系统转换;
(3)分析规格说明的语义内容,并将其转换为连接因果关系的布尔图;
(4)给图加上注解符号,说明由于语法或环境的限制,而不能联系起来的“因”和“果”;
(5)通过仔细地跟踪图中的状态变化情况,将因果图转换成一个有限项的判定表,表中的每一列代表一个测试用例;
(6)将判定表中的列转换成测试用例。
3.白盒测试
白盒测试关注的是测试用例执行的程度或覆盖程序逻辑结构(源代码) 的程度。
语句覆盖
将程序中的每条语句至少执行一次。
这是测试中较弱的准则。
判定覆盖
将判断的每个可能结果都至少执行一次,以及将程序或子程序的每个入口点都至少执行一次。
这是一种比语句覆盖更强的准则。
条件覆盖
将判断中的每个条件的所有可能的结果至少执行一次,对程序或子程序的每一个入口点都至少调用一次。
这是比判定覆盖更强一些的准则。
判定/条件覆盖
将判断的每个条件的所有可能的结果至少执行一次,将判断的所有可能的结果至少执行一次,将每个入口点都至少调用一次。
多重条件覆盖准则
将判断的所有可能的条件结果的组合,以及所有的入口点都至少执行一次。
4.总结
合理的测试策略如下:
(1)如果规格说明中包含输入条件组合的情况,应首先使用因果图分析方法;
(2)在任何情况下都应使用边界值分析方法;
(3)应为输入和输出确定有效和无效等价类,在必要情况下对上面确认的测试用例进行补充;
(4)使用错误猜测技术增加更多的测试用例;
(5)使用判定覆盖、条件覆盖、判定/条件覆盖或多重条件覆盖准则等测试程序的逻辑结构。