软件测试—因果图法

定义:因果图是一种简化了的逻辑图,能直观地表明输入条件和输出动作之间的因果关系。可以帮助测试人员把注意力集中到与软件功能有关的输入组合上,使用因果图来辅助设计测试用例,很适合描述多种输入条件的组合。根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合,从而设计测试用例。

因果图法是从用自然语言书写的程序规格说明的描述中找出因和果,它适合于检查软件的输入条件涉及的各种组合情况,最终生成的是判定表。

意义:等价类划分和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被疏忽了。

因果图的基本关系符号(左原因右结果):

因果图的约束条件:

 为了表示原因与原因、结果与结果之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符号。

因果图法设计测试用例的步骤:

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

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

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

4)转换成判定表:把因果图转换成判定表

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

例子:文件修改程序

某软件规格说明书包含这样的要求:输入的第一个字符必须是#或*,第二个字符必须是一数字,此情况下进行文件的修改;若第一个字符不是#或*,则给出信息N,若第二个字符不是数字,则给出信息M。

分析:

1)分析需求,列出原因和结果

 

2)找出因果关系、原因与原因之间的约束关系,画出因果图

 

10:表示中间状态,可以作为一种结果,存在c1和c2的关系或,要么c1出现要么c2出现,表示中间出现了一个,要么是#要么是*,表示其中一个。

3)将因果图转换成决策表

 

不可能表示:c1和c2同事出现,就是不可能的

4)根据(3)中的决策表,设计用例的输入数据和预期输出

优点:有助于用一个系统的方法选择出高效的测试用例集;

          还有一个额外的好处,通过将规格说明转换为布尔逻辑网络,就可以指出规格说明的不完整和不明确之处。

缺点:尽管因果图方法确实能产生一组有效的测试用例,但通常它不能生成全部应该被确定的有效测试用例。最好是单独考虑边界值分析等方法。

难点:因果图法最具难度的部分是将因果图转换为判定表。但这个过程是有算法的,即意味着我们可以编写程序来自动完成这个过程。

应用场合:在界面中有多个控件,控件之间有组合或限制关系,不同的输入组合会对应不同的输出结果,如果想弄清楚不同的输入组合到底对应哪些输出结果,可以使用因果图/判定表法。(因果图/判定表法比较适合测试组合数量较少的情况,一般少于20种)

《因果图法》-有这篇就够了 - 知乎 (zhihu.com)

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值