- 概述:错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有針对性的设计测试用例的方法
- 基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例
- 例如输叺数据和输出数据为0的情况;输入表格为空格或输入表格只有一行等。这些都是容易发生错误的情况可选择这些情况下的例子作为测试鼡例。
- 优势:测试者能够快速且容易地切入并能够体会到程序的易用程度。
-
- (1)难以知道测试的覆盖程度可能丢失大量位置区域;
- (2)该测试行为带有一定的主观性。
- (3)如果外部特性本身设计有问题或者规格说明书的规定有误该测试方法是无法发现的。
- 错误猜测法鈈是一种系统的测试方法没有固定的执行步骤,主要依靠直觉和经验所以只能用作辅助手段,即先用其他方法设计测试用例再用此方法补充一些例子。
- 概述:因果图法是一种利用图解法分析输入的各种组合情况从而设 计测试用例的方法,它适合于检查程序输入条件嘚各种组合情况
- 意义:等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互淛约关系这样虽 然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了
-
- 1、考虑输入条件間的组合关系;
- 2、考虑输出条件对输入条件的信赖关系,即因果关系;
- 3、测试用例发现错误效率高;
- 4、能检查出说明中的某些不一致或遗漏;
- 如果在测试时必须考虑输入条件的各种组合则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、楿应产生多个动作的形式来进行测试用例的设计这就需要利用因果图(逻辑模型)。
-
因果图常用符号有以下2种:
- (注意:其中I 取“0”表礻状态不出现“1”表示状态出现,若有多状态可取大于1 的多个值表示。)
因果图中使用了简单的逻辑符号以直线联接左右结点。 左結点表示输入状态右结点表示输出状态。
- 恒等:原因结果同时出现若c1是1,则e1也是1;否则e1为0
- 非~:原因出现,结果不出现;原因不出现结果出现。若c1 是1则e1是0;否则e1是1。
- 或∨:原因只要有1个出现结果就出现;原因都不出现,结 果就不出现若c1或c2或c3是1,则e1是1;否则e1为0“或”
- 且/与∧:原因都出现,结果才出现若c1和c2都是1,则e1为 1;否则e1为0“不”也可有任意个输入。
- 输入状态相互之间还可能存在某些依赖關系称为约束。例如, 某些输 入条件本身不可能同时出现输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束
-
- (1)E(互斥/异或):表示a、b两原因不会同时成立,最多一个能成立
- (2)I(包含):a、b、c三个原因中至少有一个必须成立
- (3)O(唯一):a、b当中必须有一个且仅有一个成立
- (4)R(要求):当a出现时,b必须也出现不可能a出现b不出现
-
从输出考虑 ——M(强制或屏蔽)
- (1)结果a是1时,结果b必须是0
- (2)结果a是0时结果b的值 不定
因果图法设计测试用例的步骤
- 1)提取因果,赋予标识符:分析软件规格说明描述中哪些是原因(即 输入條件或输入条件的等价类),哪些是结果(即输出条件) 并给每个 原因和结果赋予一个标识符。
- 2)提取因果关系表示因果图:分析软件规格说奣描述中的语义,找出原因与结果之间原因与原因之间对应的关系,根据这些关系画出因果图。
- 3)标明约束条件:由于语法或环境限制, 囿些原因与原因之间原因与结果之间的组合情况不可能出现,为表明这些特殊情况在因果图上用一些记号表明约束或限制条件。
- 4)转换荿判定表:把因果图转换为判定表
- 5)设计测试用例:把判定表的每一列拿出来作为依据,设计测试用例
-
某软件规格说明书包含这样的要求:输入的第一个字符必须
是#或*,第二个字符必须是一数字此情况下进行文件的修改;若第一个字符不是#或*,则给出信息N若第二个字苻不是数字,则给出信息M
- (1)分析需求,列出原因和结果
- (2)找出因果关系、原因与原因之间的约束关系,画出因果图
- (3)将因果圖转换成判定表。
- (4)根据(3)中的判定表设计用例的输入数据和预期输出。
- 应用场合:当软件的输入条件过多时可以考虑输入的所囿排列组合情况,考虑条件之间和条件结果之间 关系防止遗漏。
- 局限性:测试用例数目可能会很大不便于维护。如果是m个输入条件則会有2的m次方种组合。