7.7 其他方法

7.7.1 错误猜测

错误猜测本身不是一种测试技术,而是一种可以应用到所有测试技术中产生更加有效的测试的一种技能。错误猜测是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法。

错误猜测看起来像是通过直觉发现程序中的错误和缺陷的能力。实际上,有效运用错误猜测的测试人员使用了以下一系列的技术。

  • 有关被测系统的知识,如设计方法或实现技术。
  • 有关的早期测试阶段结果的知识,尤其对回归测试更为重要。
  • 与测试类似或相关系统的经验,知道在以前的这类系统中曾在哪些地方出现过缺陷。
  • 典型实现错误的知识,如被零除错误。
  • 通用的测试经验规则。

成功的使用错误猜测必须在确保发现一个缺陷时能够对问题进行重现,以及在缺陷得到纠正之后可以确认缺陷修复。这就要求我们在发现缺陷时,立刻建立能够发现这个缺陷的测试用例。

7.7.2 随机测试

随机测试指测试中的所有输入数据都是随机生成的,其目标是模拟用户的操作。此类测试也称为猴子测试。猴子测试员的说法来源于一个想法:如果让一百万只猴子在一百万只键盘上敲一百万年,它们最终就可能写出莎士比亚话剧等巨著。胡乱敲键可能无意中碰到正确的字母组合,而猴子一时就显得才华横溢,只要不停电,偶尔能够得到香蕉,猴子就会永远测试下去。

当软件公开发布时,成千上万的人会乱敲乱试。除非精心设计测试用例,否则有些软件缺陷就会漏掉,被这些用户发现。在产品发布之前,用模拟这些用户操作的方式加强测试用例,就有可能发现其他测试方法漏掉的软件缺陷。

随机测试不可避免地有着以下一些缺点,所以只能作为有计划测试的补充。

  • 无法度量随机测试实际覆盖率。
  • 许多测试都是冗余的。
  • 确定预期结果可能会花费大量的时间。
  • 测试数据因为是随机的,重复测试是不可能的。

为了使随机测试发挥更大的作用,可以使用等价类划分等类似技术或者借助一些测试工具降低输入的数据数量,加大随机测试的效率。

7.7.3 测试方法选择策略

  1. 在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。

  2. 如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法或判定表法。

  3. 如果系统有明确的多条路径流程,则一开始就要选用流程图/场景法。

  4. 必要时用等价类划分方法补充一些测试用例。

  5. 用错误推测法再追加一些测试用例。

  6. 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例。