软件测试_因果图法(Cause-Effect Graphics)

软件测试_因果图与决策表

因果图法(Cause-Effect Graphics)

定义

考虑输入条件之间的联系、各种组合,相应产生多个动作来设计测试用例的方法。它适合于检查程序输入条件的各种组合情况。

原因与结果之间的关系:

  • 恒等:若c1是1,则e1也为1,否则e1为0;
  • 非:若c1是1,则e1为0,否则e1为1;用符号“~”表示。
  • 或:若c1或c2或c3是1,则e1是1,否则e1为0,“或”可有任意个输入;用符号“V”表示。
  • 与:若c1和c2都是1,则e1为1,否则e1为0,“与”也可有任意个输入。用符号“∧”表示。

输入状态之间的关系:

  • 在实际问题当中输入状态相互之间还可能存在某些依赖关系,称为“约束”
  • E约束(异,排他):a和b中最多有一个可能为1,即a和b不能同时为1;
  • I约束(或,包含):a、b、c中至少有一个必须是1,即a、b、c不能同时为0;
  • O约束(唯一):a和b必须有一个且仅有一个为1;
  • R约束(要求):a是1时,b必须是1;

输出状态之间的关系:

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

用例设计步骤

  1. 分析并列出需求或规格说明书中原因和结果。
  2. 找出关系,将原因和结果连接成因果图。
  3. 把因果图转换成判定表。
  4. 把判定表中每一列表示的情况写成测试用例。
  • 因:输入条件
  • 果:输出结果或者程序状态的改变
  • 关系:原因与结果的关系,原因与原因之间的关系

实例1

某个软件的规格说明书规定:第一个字符必须是# c1 c2,第二个字符必须是一个数字字符 c3*,在此情况下进行文件修改e2。如果第一个字符不是#或*,则给出信息N e1;如果第二个字符不是数字,则给出信息M e3。

步骤一:分析并列出需求或规格说明书中原因和结果。

原因:c1-第一个字符是“#”

  	c2-第一个字符是“*”      

​ c3-第二个字符是一个数字

结果:e1-给出信息N

  	e2-修改文件  

​ e3-给出信息M

步骤二:找出关系,将原因和结果连接成因果图

因果图

步骤三:把因果图转换成判定表

12345678
C111101000
c211010100
C310110010
12111100
E1
E2
E3
不可能
测试用例#3*4#B*MC2CM

步骤四:把判定表中每一列写成测试用例

  • 最左边两列,原因c1和c2同时为1不可能,排除掉,根据表可设计出6个测试用例。
    • Test1:输入数据-#3 预期输出--修改文件
    • Test2:输入数据-*4 预期输出--修改文件
    • Test3:输入数据-#B 预期输出--给出信息M
    • Test4:输入数据-*M 预期输出--给出信息M
    • Test5:输入数据-C2 预期输出--给出信息N
    • Test6:输入数据-CM 预期输出--给出信息M和N

使用因果图法的优点

  • (1)考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系。
  • (2)能够帮助测试人员按照一定的步骤,高效率的开发测试用例。
  • (3)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性。

练习

有一个处理单价为1元5角的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”,“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。

原因c1:投入1元5角硬币;c2:投入2元硬币;c3:按“可乐”按钮;c4:按“雪碧”按钮;c5:按“红茶”按钮;
中间状态11:已投币12:已按钮
结果e1: 退还 5 角硬币; e2: 送出“可乐”饮料; e3: 送出“雪碧”饮料; e4: 送出“红茶”饮料 ;

(1)分析原因及结果

image-20230410103952092

(2)绘制因果图

image-20230410104013501

(3)判定表

image-20230410105327510

(4)测试用例

用例编号测试用例预期输出
1投入1元5角,按“可乐”送出“可乐”饮料
2投入1元5角,按“雪碧”送出“雪碧”饮料
3投入1元5角,按“红茶”送出“红茶”饮料
4投入2元,按“可乐”找5角,送出“可乐”
5投入2元,按“雪碧”找5角,送出“雪碧”
6投入2元,按“红茶”找5角,送出“红茶”
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱捣鼓的XiaoPu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值