01、因果图设计测试用例的步骤
1、分析需求
阅读需求文档,如果User Case很复杂,尽量将它分解成若干个简单的部分。这样做的好处是,不必在一次处理过程中考虑所有的原因。没有固定的流程说明究竟分解到何种程度才算简单,需要测试人员根据自己的经验和业务复杂度具体分析。
2、确定原因和结果
在每个已经分解好的块中,找出哪些是原因,哪些是结果。并且把原因和结果分别画出来。原因放在一列,结果放在一列
如下图所示:
3、确定逻辑关系
继续分析需求文档,找出原因和结果之间的关系,用逻辑运算符标出
4、确定约束关系
继续分析需求,找出原因和原因、结果与结果之间的约束限制,用上面说的约束关系标出
5、把因果图转换为决策表
给每个原因分别取真和假二种状态,用0和1表示。画一个有限项决策表,列出所有状态的状态组合。包含3个原因、2个结果的有限项决策表如下
根据原因给出结果,上面的决策表中,不一定每个原因的状态组合都是有效的。要根据因果图中的约束条件,去掉不可能出现的组合,从决策表中标记出来。并给出每个可能的原因组合对应的结果。
设计测试用例,上一步完成之后,决策表的每一个有效列都对应一个测试用例。
02、举例说明
下面用几个例子来说明因果图的用法:
例子1
某软件需求说明书:某段文本中,第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。由于此需求已经非常清晰,所以标准步骤中的第一步省略,从第二步开始分析。
而根据需求描述,原因c1还可以细分为2个原因:第一列字符是A(c11),第一列字符是B(c12)。因此原因c1其实也可以看作成结果。把它用因果图表示出来如下:
根据上面的分析,其实总共有3个原因,3个结果。
到现在为止,使用因果图设计测试用例的一个简单的例子就完成了。
例子2
再以支付宝认证总流程为例,说明因果图的实际应用,支付宝个人认证中,分为两部分:个人身份认证和银行卡认证。这两者都通过后,认为个人认证成功。
个人身份认证需要提交个人基本信息及身份证复印件。
银行卡认证分为两种:提现认证和充值认证
从上面的描述中,我们可以总结出2大原因和一个结果
注意:为了简便起见,我们假设个人信息提交和身份证件提交成功后,身份认证则成功,忽略人工审核过程。
原因和结果表如下:
对于因果关系较为的复杂的逻辑,通过结果向前推原因是一个不错的方法。
-
认证成功:身份认证成功和银行卡认证同时为真,认证成功才为真。
-
身份认证成功:基本信息和身份证件同时为真,身份认证成功才为真。
-
银行卡认证:提现认证和充值认证有一个成功,银行卡认证则成功。
提现认证、充值认证都是所有的原因都为真时,自己才为真。
确定约束关系
从业务流程可知:提现认证和充值认证是二择一的,满足唯一性约束条件。而充值认证的三个原因,有流程上的先后顺序,满足必要性约束条件。同样,提现认证的三个原因也满足必要性约束条件。
根据约束关系,我们画出因果图如下:
使用因果图的好处,综上所述,我认为因果图最大的好处有2点:
-
考虑了多个输入之间的相互组合、相互制约关系
-
帮助我们按一定步骤,高效率地选择测试用例
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
END配套学习资源分享
最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】
加入我的软件测试交流群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)
软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础
免费获取方式 :