(四)因果图法

(四)因果图法1 定义 因果图法是 一种利用图解法分析输入的各种组合情况 从而设计测试用例的方法 它适合于检查程序输入条件的各种组合情况 等价类划分方法和边界值分析方法都是着重考虑输入条件 但没有考虑输入条件的各种组合 输入条件之间的相互制约关系 这样虽然各种输入条件可能出错的情况已经测试到了 但多个输入条件组合起来可能出错的情况却被忽视了 首先从程序规格说明书的描述中 找出因 输入条件 和果 输出

1.定义:

因果图法是:一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

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

首先从程序规格说明书的描述中,找出因(输入条件)和果(输出结果或者程序状态的改变),然后通过因果图转换为判定表,最后为判定表中的每一列设计一个测试用例。是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

2.绘画因果发的流程图:

 (四)因果图法

 

3.绘画图时,表示原因和结果的关系:

 (四)因果图法

 

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

 

(四)因果图法

¡ 恒等:若c1是1,则e1也为1,否则e1为0;

¡ 非:若c1是1,则e1为0,否则e1为1;

¡ 或:若c1或c2或c3是1,则e1是1,否则e1为0,“或”可有任意个输入;

¡ 与:若c1和c2都是1,则e1为1,否则e1为0,“与”也可有任意个输入。

 

4.绘画图时,表示原因与原因的关系:

 (四)因果图法

 

l 对于输入条件的约束有4种:

l E约束(异):a和b中最多有一个可能为1,即a和b不能同时为1;

l I约束(或):a、b、c中至少有一个必须是1,即a、b、c不能同时为0;

l O约束(唯一):a和b必须有一个且仅有一个为1;

l R约束(要求):a是1时,b必须是1;

l 对于输出条件的约束只有M约束

M约束(强制):若结果a是1,则结果b强制为0。

1.1生成用例的步骤

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

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

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

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

1.2  原因之间的约束

因果图中有4种符号描述原因之间的约束关系,1种符号描述结果之间的约束关系。下面分别介绍:

  •  排他性约束:各个原因之间不能同时为真,但可以同时为假。举个例子,小明同学不可能同时属于A班和B班,但可能既不是A班的,也不是B班的,而是C班的。

 (四)因果图法

  •  包含性约束:各个原因中总有一个为真。即可以同时为真,但不可以同时为假。举个例子,支付宝买家付款时,有个输入条件(既原因)是余额支付、网银支付,买家可以选择单独余额支付或者单独网银支付,也可以同时选择余额支付和网银支付2种方式。但是不可以选择不支付。

(四)因果图法

  • 必要性约束:当原因a为真时,原因b必须同时为真;但是原因b为真时,原因a既可以为真,也可以为假。举数字证书的例子:现有的业务规则下,如果申请了数字证书(原因a),那么该用户必然通过了支付宝认证(原因b)。反之,如果用户通过了支付宝认证,那么不一定申请了数字证书(a)。

(四)因果图法

  •  唯一性约束:有且只有原因a和原因b中的一个为真。非此即彼,不存在第三种情况。举例来说,人的性别不是男,就是女,不会存在既不是男也不是女的人。

(四)因果图法

  •  掩码标记(结果约束):如果结果b为真,那么结果a一定为假,如果结果b为假,则结果a的状态不定。还拿支付宝来举例子,先给出两个结果:安全控件运行正常(a),无法输入登陆密码(b)。如果无法输入登陆密码,那么可以判断是安全控件没有正常运行,反过来,如果可以输入登陆密码,则不能确定安全控件一定工作正常,有可能是用了FireFox浏览器访问Alipay的。

(四)因果图法

1.3  引用的例子

例1:

某软件规格说明书包含这样的要求:

第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。

1 列出原因和结果:

       原因:

          1——第一列字符是A;

          2——第一列字符是B;

          3——第二列字符是一数字。

       结果:

          21——修改文件;

          22 ——给出信息L;

          23——给出信息M。

2)画出对应的因果图:

   11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束,如图所示。

(四)因果图法

3)生成判定表:

(四)因果图法

别人的用例描述:

(四)因果图法

1.4LMS引用的例子

现在采用的是测试报告的添加操作来做为例子,测试报告的需求如下:

(1)测试电压:同一项目或产品下,不能出现相同的测试电压值;

(2)项目名要存在,并且通过研发审核

(3)测试用户名要存在

(四)因果图法

 

1 列出原因和结果:

       原因:

          1——项目名(已通过审核)

          2——产品名(已通过审核)

          3——测试人(存在)

 4——测试电压(不重复)

       结果:

          21——提示添加成功信息

          22 ——提示未通过审核或不存在

          23——提示用户不存在

24——提示电压有重复

25——提示项目或产品名称必须填写一个

 

2)画出对应的因果图:

   11为中间节点;根据需求可得,原因1和原因2可以出现任何一个原因,也可以同时出现,但不能同时都不出现,因此在因果图上施加I包含性约束,如图所示。

如果让原因1和原因2同时不出现,其余的操作就没有多大的意义了,但是最好还是补充一条用例,让原因1和原因2同时不出现的结果

 (四)因果图法

说明:

1)原因1和原因23种情况:

0- 代表输入的是不正确(未审核或是不存在)的数据

1- 代表输入的是正确(通过审核)的数据

2- 代表不输入数据

2)原因32中情况:

0- 代表输入的用户不存在

1- 代表输入的用户存在

3)原因42中情况:

0- 代表输入的电压重复

1- 代表输入的电压不重复

 

3)生成判定表:

(四)因果图法

(四)因果图法

                                   
                                     
                                   
                                   
                                   
                                     
                                     
                                   
                                   
                                   
                                     
                                   
   
                                   
                                     
                                   
                                   
                                   
                                     
                                     
                                   
                                   
                                   
                                     
                                   
                                     

分析生成结果的思路:

1)先找出能成功操作的情况,只有如上图的绿色背景:1-9-25,这3种情况下的结果211,其余情况都是0

2)只要原因1或是原因20出现,则会出现结果221

3)只要原因3出现0,就会出现结果231

4)只要原因4出现0,就会出现结果241

4)分析生成的测试用例

根据判定表可以得出15条测试用例,因为第16种情况不用测试。

(四)因果图法


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226516.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午10:43
下一篇 2026年3月16日 下午10:43


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号