错误猜测法

概述

错误推测法是指在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。

基本思想

其基本思想是列举出可能程序可能犯的错误或错误易发情况的清单,再依据清单来编写测试用例。

一般来说是测试人员分析最易出错的场景和数据,设计无效操作或者满足有效条件的极端情况的测试用例,例如:

  • 软件控件对于”空数值”的可能引发的错误提示
  • 移动软件发消息的同时断网或断电
  • 反复修改同一个参数等场景设计

另一种情形是依据需求中可能被程序员忽略的一些需求或者隐含的需求来假设测试用例。例如:

  • 需求中不同模块有相同的查询功能,但有的是模糊查询,有的要求精确查询,此时功能类似的模块,可能由于程序员的匆忙复制代码忘记及时修改而出错
  • 对于数字的计算,有些需求会要求显示为小数点后2位数字,但有部分财务专业领域默认计算数值是以小数点后3位或更多位,最后显示为2位的问题

使用前提

错误推测法使用的前提是需要:

  1. 深度熟悉被测系统的业务、需求
  2. 对被测系统或类似系统之前的缺陷分布情况进行过系统的分析。包括功能缺陷、数据缺陷、接口缺陷和界面缺陷等
  3. 具有一定的测试经验或工作中积累缺陷库

应用场景

手机通话功能测试示例

测试手机终端的通话功能,可以设计各种通话失败的情况来补充测试用例:

  1. 无SIM卡插入时进行呼出(非紧急呼叫)
  2. 插入已欠费SIM卡进行呼出
  3. 射频器件损坏或无信号区域插入有效SIM卡呼出
  4. 网络正常,插入有效SIM卡,呼出无效号码(如1、888、333333、不输入任何号码等)
  5. 网络正常,插入有效SIM卡,使用”快速拨号”功能呼出设置无效号码的数字

排序程序测试示例

测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:

  1. 输入的线性表为空表
  2. 表中只含有一个元素
  3. 输入表中所有元素已排好序
  4. 输入表已按逆序排好
  5. 输入表中部分或全部元素相同

特点总结

  • 这是一种从发生缺陷的可能性角度出发,分析系统设计测试用例的方法
  • 可以有效扩充原有的测试用例库
  • 常需要利用发散性思维和逆向思维
  • 通常可以更有效地发现常规方法发现不了的错误
  • 既可以看做是探索式测试法的子集,也可以单独使用

补充说明

等价类划分法和边界值分析方法是测试用例设计的最基本方法,可以解决一般的测试问题,作为对这两种方法的补充,还可以采取错误推测法。