软件测试规范(10)

发表于:2016-01-11来源:博客园作者:我思故我在点击数: 标签:软件测试规范
4.6因果图 前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系。如果在测试时必须考虑输入条件的各种

  4.6因果图

  前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系。如果在测试时必须考虑输入条件的各种组合,可能的组合数将是天文数字。因此必须考虑使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例,这就需要利用因果图。

  因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。

  利用因果图生成测试用例的基本步骤是:

  分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。

  分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。

  由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。

  把因果图转换成判定表。

  把判定表的每一列拿出来作为依据,设计测试用例。

  通常,在因果图中,用Ci表示原因,Ei表示结果,其基本符号如图7所示。各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。

  恒等:若原因出现,则结果出现。若原因不出现,则结果也不出现。

  非:若原因出现,则结果不出现。若原因不出现,反而结果出现。

  或(∨):若几个原因中有一个出现,则结果出现,几个原因都不出现,结果不出现。

  与(∧):若几个原因都出现,结果才出现。若其中有一个原因不出现,结果不出现。

  为了表示原因与原因之间,结果与结果之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符号。从输入(原因)考虑,有四种约束;从输出(结果)考虑,还有一种约束,参看图8:

  E(互斥):表示a,b两个原因不会同时成立,两个中最多有一个可能成立。

  I(包含):表示a,b,c三个原因中至少有一个必须成立。

  O(唯一):表示a和b当中必须有一个,且仅有一个成立。

  R(要求):表示当a出现时,b必须也出现。不可能a出现,b不出现。

  M(屏蔽):表示当a是1时,b必须是0。而当a为0时,b的值不定。

  因果图方法是一个非常有效的黑盒测试方法,它能够生成没有重复性的且发现错误能力强的测试用例,而且对输入、输出同时进行了分析。

  4.7测试方法选择的综合策略

  Myers提出了使用各种测试方法的综合策略:

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

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

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

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

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

  5. 程序的静态测试

  5.1源程序静态分析

  通常采用以下一些方法进行源程序的静态分析。

  ① 生成各种引用表

  直接从表中查出说明/使用错误等。如,循环层次表、变量交叉引用表、标号交叉引用表等。

  为用户提供辅助信息。如,子程序(宏、函数)引用表、等价(变量、标号)表、常数表等。

  用来做错误预测和程序复杂度计算。如,操作符和操作数的统计表等。

  ② 静态错误分析

  静态错误分析主要用于确定在源程序中是否有某类错误或“危险”结构。

  类型和单位分析 :为了强化对源程序中数据类型的检查,发现在数据类型上的错误和单位上的不一致性,在程序设计语言中扩充了一些结构。如单位分析要求使用一种预处理器,它能够通过使用一般的组合/消去规则,确定表达式的单位。

  引用分析 :最广泛使用的静态错误分析方法就是发现引用异常。如果沿着程序的控制路径,变量在赋值以前被引用,或变数在赋值以后未被引用,这时就发生了引用异常。为了检测引用异常,需要检查通过程序的每一条路径。也可以建立引用异常的探测工具。

原文转自:http://www.uml.org.cn/Test/201511262.asp