黑盒测试用例设计(二)
1.1 止交实验法
1.1.1 正交设计的基础概念
1) 在一项试验中,把影响试验结果的量称为试验因素(因子) ,简称因素。因素可以理解为试验过程中的自变量,试验结果可以看成因素的函数。在试验过程中,每一个因素可以处于不同的状态或状况,把因素所处的状态或状况,称为因素的水平,简称水平
2) 每列中不同数字出现的次数相等。这一特点表明每个因素的每个水平与其它因素的每个水平参与试验的几率是完全相同的,从而保证了在各个水平中最大限度地排除了其它因素水平的干扰,能有效地比较试验结果并找出最优的试验条件。
3) 在任意2列其横向组成的数字对中,每种数字对出现的次数相等。这个特点保证了试验点均匀地分散在因素与水平的完全组合之中,因此具有很强的代表性。
1.1.2 正交表的概念和性质
1.2 场景法
1.2.1 场景法原则
- 现在的软件几乎都是用事件触发来控制流程的。测试时,可以生动地描绘出事件触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。
- 基本流:软件功能按照正确的事件流实现的一条正确流程。通常一个业务仅存在一 个基本流 ,且基本流仅有一个起点和一个终点。
- 备选流:除了基本流之外的各支流,包含多种不同的情况
1.2.2 场景法的基本设计步骤
- 根据说明,描述出程序的基本流及各项备选流。
- 根据基本流和各项备选流生成不同的场景。
- 对每个场景生成相应的测试用例。
- 对生成的所有测试用例重新复审,去掉多余的测试用例。
- 测试用例确定后,对每一个测试用例确定测试数据值。
1.3 状态迁徙图法
1.3.1 测试中遇到的问题
在遇到有事务流或由于某种条件成立导致状态改变的软件项目时,如何进行测试用例的设计就比较麻烦。以前所讲的各种方法,每个被测对象之间是没有相互的关联或数据流向发生,遇到这样的事务流软件就要考虑用其他方法进行测试用例设计。
1.3.2 状态迁徙图法目标
设计足够多的测试用例达到对系统状态的覆盖、状态条件组合的覆盖以及状态迁移路径的覆盖。
1.3.3 状态图法步骤
- 列出所有可能的输入事件,以ipN的方式命名(N为1 , 2,3,4.....)
- 把软件的打开的初始状态,定义为"空闲"状态。
- 在"空闲”状态上加所有可能的输入(只加一-次! )
- 为上一步产生的所有新状态,分别加所有可能的输入(只加-次!)
- 循环执行上一步
- 直到再没有任何新状态产生,列出所有的状态,生成状态表
- 组合任意可能的状态组合,写出相应的测试用例
1.4 随机测试法
1.4.1 探索性测试
- 基于测试人员经验与直觉的测试方法。
- 是对测试用例设计的有效补充
l 探索性测试也必须生成测试用例猴子测试
1.4.2 猴子测试
- 一种没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。
- 根据测试者的经验对软件进行功能和性能抽查。
- 随机测试的缺点。
l 测试往往不太真实
l 不能达到一定的覆盖率
l 许多测试都是冗余的
l 需要使用同样的随机数种子才能重建测试
1.5 测试方法选择的综合策略
- 首先进行等价类划分。
- 在任何情况下都必须使用边界值分析方法。
- 可以用错误推测法追加一些测试用例。
- 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。
- 如果程序的功能说明中含有输入条件的组合情况,则开始就可选用因果图法和判定表驱动法。
- 对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果。
- 功能图法也是很好的测试用例设计方法,我们可以通过不同时期条件的有效性设计不同的测试数据。
- 对于业务流清晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法。