因果图法

因果图法

什么是因果图      

是一种从用自然语言书写的程序规格说明的描述中找到因(输入条件)和果(输出或程序状态的改变)的关系,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

因果图能检查出规格的错误,并最终导出为判断表。

因果图基本关系 因果关系中的四种基本关系:恒等、非、或、与 

2.png

因果图分析的特点

考虑输入条件间的组合关系;

考虑输出条件对输入条件的信赖关系,即因果关系;

测试用例发现错误的效率高;

能检查出功能说明中的某些不一致或遗漏;

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

因果图分析

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

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

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

4) 把因果图转换为判定表.

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

某软件需求说明书:

某段文本中,第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改。

如果第一列字符不正确,则给出信息L;

如果第二列字符不是数字,则给出信息M。

确定原因和结果:从大的方面看,第一列和第二列不同的字符会引起不同的结果,所以初步分析原因结果图如下:


原因

c1

第一列字符正确

c2

第二列字符是数字


结果

e1

修改文件

e2

给出信息L

e3

给出信息M


确定因果逻辑关系:

如果第一列和第二列都正确,则修改文件;

如果第一列不正确,给出信息L;

如果第二列不正确,给出M。 可以得出下边的因果图:

2.png

而根据需求描述,原因c1还可以细分为2个原因: 第一列字符是A(c11),第一列字符是B(c12)。 因此原因c1其实也可以看作成结果。 把它用因果图表示出来如下图:

2.png

确定约束关系:从需求描述中可知,原因c11和c12不可能同时为真,但可以同时为假, 因此满足排他性约束。这三个结果之间没有掩码标记的约束。完整的因果图如下:

2.png

根据因果图画决策表 分析每一种状态对应的结果,并根据约束关系,去掉不可能出现的状态。

本例的c11和c12满足排他性约束,所以同时都为1的状态不会出现:


1

2

3

4

5

6

7

8




原因

c11

0

0

0

0

1

1

1

1

c12

0

0

1

1

0

0

1

1

c2

0

1

0

1

0

1

0

1




结果

e1

0

0

0

1

0

1

无此可能

无此可能

e2

1

1

0

0

0

0

e3

0

0

1

0

1

0


测试用例

aa

a3

Be 

B3

Aq

A4




输入结果


L


L


M


修改文件


M


修改文件





该文章对你有帮助吗,求分享转发: 分享到QQ空间 分享给QQ好友

 

 

粤ICP备19116230号
友情链接: 码农藏书阁 天天链