黑盒测试用例设计方法之因果图法
一、因果图法的定义因果图法就是把复杂的逻辑关系转化成判定表的系统化方法,从该图中可以产生测试数据。其中,原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。
因果图法最终生成的就是判定表,它适合于检查软件输入条件的各种组合情况。
二、分类
第一类:因果关系(输入和输出之间的逻辑关系)。
恒等:输入:a,输出:b,满足条件a,则输出b;
非:输入:a,输出:b,满足条件a,则不能输出b;
或:多个输入条件只要满足一个或一个以上就可以得到某个结果(符号V);
例如:入学考试:a条件会c语言,b条件会java,c条件会C#,以上条件满足一个就可以入学。
与:多个输入同时满足才能得到某个结果(符号倒V);
例如:就业推荐:a条件为51学员,b条件为三个阶段考试合格,c条件为出勤率达到90%,则会推荐就业。
第二类:原因与原因之间的关系(输入与输入之间的制约关系)。
E的关系exclusive互斥:多个输入至多只能有一个为真,不可以同时都为真,可以同时都不为真(只能一个为真,可以都为假);
I的关系inclusive包容:多个输入至少有一个为真,可以同时都为真,但是不可以同时都不为真(至少一个为真,不能同时为假);
O的关系Only唯一:多个输入有且只能有一个为真,不可以同时都为真,也不可以同时都不为真;
R的关系ruquire要求:有两个输入a,b,a为真则要求b为真,a为假则对b不做要求。
例如:早教机构:小朋友a,父母b。
如果小朋友到早教中心上课,则要求父母陪护。
如果小朋友不到早教中心上课,则父母可以来参观也可以不来参观。
第三类:结果与结果之间的关系(输出与输出之间的制约关系)。
M关系强制的关系:输入a,b,如果a为真则强制b为假,a为假则对b不做强制。
三、应用
因果图的使用步骤:
1、划分需求规格片段
2、找出输入输出
3、分析输入与输出之间的关系,画出因果图(包括因果之间关系,原因与原因,结果与结果之间的关系)
4、把因果图转换成判定表
5、简化判定表
6、用判定表中的每一项生成测试用例(结合等价、边界值)
例1:手机欠费或者停机则不能主被叫,因果图如下:
http://www.51testing.com/attachments/2021/06/15326880_202106151359111yABP.png
例2:对已运行10年以上的机器,或功率大于50马力且维修记录不全的机器,给予全面维修处理,对其他机器只进行一般维修处理
http://www.51testing.com/attachments/2021/06/15326880_202106151404231WNgq.png
例3:某文件修改需求:
如想对文件进行修改,需要遵守以下规则
输入的第一列字符必须是A或B;
第二列字符必须是一个数字
如果第一列字符不正确,则给出信息M
如果第二列字符不正确,则给出信息L
如果两列字符输入正确,则修改文件
步骤:
因果关系图:
http://www.51testing.com/attachments/2021/06/15326880_202106151400351Xc68.png
根据因果关系图,得出判定表,如下:
http://www.51testing.com/attachments/2021/06/15326880_2021061514011615rpI.png
标红的两条规则,因为不符合要求,直接删掉。
http://www.51testing.com/attachments/2021/06/15326880_202106151401501DgnR.png
根据以上规则,生成测试用例
规则1:A0A5A9
规则2:AAA,
规则3:B0B4B9
规则4:BQB/
规则5:0009C0
规则6:CCC,
四、因果图法的优缺点(全排列组合)
优点:
1、等价类法尽管各个输入条件可能出错的情况都考虑到了,但是多个输入条件组合起来出错的情况却被忽略了因果图法是一个全排列组合的方法。
2、因果图法能够帮助我们按照一定步骤,高效的选择测试用例,设计多个输入条件组合用例,因为考虑了条件与结果之间的关系,从而更高效。
3、因果图分析还能为我们指出,程序规格说明描述中存在什么问题。
基于规格的测试
缺点:
1、输入条件与输出结果的因果关系,有时难以从软件需求规格说明书得到。
2、即使得到了这些因果关系,也会因为因果关系复杂导致因果图非常庞大,测试用例数目及其庞大(工作量大)。
页:
[1]