错误推测法基于这样一个思想:某处发现了缺陷,则可能会隐藏更多的缺陷,在实际操作中,列出程序中所有可能的错误和容易发生的特殊情况,然后依据测试者经验作出选择。如等价类划分和边界值分析法通过选择有代表性的测试数据来暴露程序错误,但不同类型、不同特点的程序通常又有一些特殊的容易出错的情况。并且,有时分别使用某些测试数据或用例进行测试时程序工作正常,但其组合可能会使程序出错。例如,程序中两个模块使用并修改某些共享的变量,则在程序运行测试过程中应对这些共享的变量赋值来同来验证这两个模块,一般说来,可能的输入组合数目往往很多。因此,测试人员应依靠经验和直觉,从各种可能的方案中选出最可能引起程序出错的方案。
错误推测法能充分发挥人的直觉和经验,在一个测试小组中集思广益,方便使用,特别是在软件测试基础较差的情况下,很好地组织测试小组进行错误猜测,是一种有效的测试发放。但错误推测法不是一个系统的测试方法,所以只能用作辅助手段,即先用其他方法设计测试用例,再用此方法补充一些例子。这种方法的优点是测试者能够快速且容易地切入,并能够体会到程序的易用与否;缺点是难以知道测试的覆盖率,可能丢失大量未知的区域,并且这种测试行为带有主观性且难以复制。