《软件测试设计》第3章——基于规格说明的测试
概念:通过分析组件或系统的测试依据文档,而不是其内部结构获取和选择测试用例的一种方法。
为黑盒技术
基于规格说明测试的共同特点:
① 利用正式或非正式的模型来描述待解决的问题、软件或其组件
② 根据模型系统地获取测试用例
基于规格说明的测试可帮助测试人员选择合适测试用例。
基于规格说明的测试通常由以下步骤组成:
① 分析规格说明。
② 根据规格说明选择有效的输入以确定测试对象是否可正确地实现需求,也需选择无效的输入确定测试对象以正确地处理它们。
③ 根据输入数据确定系统的期望输出。
④ 执行测试用例。
⑤ 将测试执行得到的实际结果与期望结果进行比较。
⑥ 确定测试对象的实现是否符合规格说明。
3.1 等价类划分
作用:用来减少测试用例数目,并保证合理的测试覆盖率。
概念:将输入域输出域划分为不同的等价类,其中的任何值都能使组件或系统产生相同的响应结果。
对于等价类划分技术而言,只要测试等价类中的一个代表值就足够。
不仅需测试有效的等价类(指合理且有意义的数据构成的集合);还需测试无效的等价类(指不合理且错误的数据构成的集合)
等价类划分技术的对象即可是输入,也可是输出
3.1.1 识别等价类
不同的输入类型需要不同的等价类划分
① 若输入是连续数值。通常有一个有效等价类和两个无效等价类,两个无效等价类的其中一个为高于有效值的范围;另一个为低于有效值的范围。
②若输入是离散数值。通常有一个有效等价类和两个无效等价类。
③ 若输入是一组选项,并且测试对象对这组选项中每个值执行相同处理,那么可为输入创建一个有效等价类(该组选项中的任一数值)和一个无效等价类(所有不在该组选项中的值)。
④若输入是一组选项,并且测试对象对这组选项中每个值执行不同处理,那么可将该组选项中的每个输入都划分一个有效等价类,然后单独划分一个无效等价类(不在该组选项中的任何其他选项)。
⑤ 若规定了输入数据必须遵守某些规则,那么可划分一个有效等价类(满足所以规则)个若干无效等价类(从不同角度违反规则)
⑥ 若输入数据是布尔变量,可划分一个有效等价类和一个无效等价类
⑦ 在已划分的等价类中元素这程序中处理方式不同时,需将该等价类进一步划分为更小的等价类。
3.1.2 创建测试用例
由于测试资源的限制,通常情况下测试人员需创建一个测试用例同时验证多个输入数据的等价类。
基于等价类划分技术设计测试用例时需为每个参数赋予一个输入值,为此必须确定如何组合这些等价类的代表值使其成为一组有效的输入数据。
相应等价类的输入可根据下面原则组合:
① 所有有效等价类的代表值的组合都需要集成到测试用例中,即覆盖有效等价类的所有组合。
② 无效等价类的代表值只和其他有效等价类的代表值组合,有效等价类代表值的选择可以随意。
根据上述组合原则,可得有效测试用例(正面测试用例)的个数等于每个输入参数的有效等价类个数的乘积;而无效测试用例(负面测试用例)的个数为无效等价类的个数。
上述原则所需测试用例仍然过多,故采用如下规则减少测试用例的数目。
① 根据输入参数的代表值组合而成的有效测试用例和无效测试用例按照测试用例的使用频率和重要程度排序,为每个测试用例设置不同优先级。有针对地选择要执行的测试用例。
② 优先选择包含边界值或边界值组合的测试用例
③ 将一个等价类的每个代表值和其他等价类的每个代表值组合设计测试用例(双向组合代替完全组合)
④ 保证满足最小原则,即一个等价类的每个代表值至少在一个测试用例中出现
3.1.3 覆盖率准则
等价类划分技术的测试准则可定义如下:
等价类划分覆盖率=(执行的等价类数量/总的等价类数量)×100%
3.1.4 案例分析:LACP参数等价类测试
① 案例描述
如图为LACP图形配置界面
Index取值范围10001~10006,整型
ActorKey取值范围1~65535,整型
AggregatorSize取值范围1~8,整型
AggregatorName必须由字母组成,长度不超过8
测试人员的目标:
(1) 识别案例中不同参数输入域的等价类
(2) 细分等价类。
(3) 根据得到的等价类创建相应的测试用例。
(4) 分校相关的覆盖率准则