因果图在软件测试中的应用:从基本概念到实战案例
创作时间:
作者:
@小白创作中心
因果图在软件测试中的应用:从基本概念到实战案例
引用
1
来源
1.
https://www.cnblogs.com/junting/p/18728936
因果图是一种将软件需求规格说明书中的输入条件组合与输出动作关联起来的图形化工具,主要用于设计测试用例。它通过分析输入条件之间的逻辑关系,帮助测试人员生成全面且有效的测试数据。本文将详细介绍因果图的基本概念、绘制步骤、约束条件以及实际应用案例。
因果图的基本概念
(1)定义:因果图提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。其中,原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。
(2)作用:因果图方法最终生成的就是判定表。它适合于检查软件输入条件的各种组合情况。
因果图中的基本关系
在因果图的基本符号中,图中的左结点ci 表示输入状态(或称原因),右结点ei表示输出 状态(或称结果)。ci与ei取值0或1,0表示某状态不出现,1则表示某状态出现。
- 恒等:若 c1 是1,则 e1 也为1,否则 e1 为0。 案例1:有钱------富豪
- 非:若 c1 是1,则 e1 为0,否则e1为1。 案例2:有钱------穷人
- 或V:若 c1 或 c2 或 c3 是1,则 e1 为1,否则 e1 为0。 案例3: 有车、 有房、有存款------满足一个是有钱人
- **与A:若 c1 c2和 c3 都是1,则e1为1,否则 e1 为0。案例4: 有车、 有房、有存款------满足三个是有钱人
因果图中的约束
在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约 束”。对于输入条件的约束有E、I、O、R四种约束,对于输出条件的约束只有M约束。
- 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;即a为1时,b不能为0。
- M约束(强制):若结果a为1,则结果b强制为0。
因果图的绘制步骤
- 把大的系统规格划分解成可以测试的规格片段
- 分析分解后待测的系统规格,找出哪些是原因,哪些是结果
- 画出因果图
- 把因果图转换成判定表
- 简化判定表
- 用判定表中的每一列生成测试用例
因果图的优点与缺点
优点:
- 等价类法尽管各个输入条件可能出错的情况都考虑到了,但是多个输入条件组合起来出错的情况却被忽略了
- 因果图法能够帮助我们按照一定步骤,高效的选择测试用例,设计多个输入条件组合用例
- 因果图分析还能为我们指出,程序规格说明描述中存在什么问题
缺点:
- 输入条件与输出结果的因果关系,有时难以从软件需求规格说明书得到
- 即使得到了这些因果关系,也会因为因果关系复杂 导致因果图非常庞大,测试用例数目及其庞大
应用案例
自动售货机案例
一个处理单价为5角钱的饮料的自动售货机。其规格说明如下:
- 若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
- 若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;
- 若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币
因果图:
判定表转换方法
- 将因果图中的所有条件(因)填入判定表的条件桩中;
- 将因果图中的所有动作(果)填入判定表的动作桩中;
- 根据因果图确定各个条件组合对应的动作,并且确定判定表中各个规则的条件项和动作项,在需要时优化判定表。
文件修改案例
某软件规格说明书包含这样的要求:
- 第一列字符必须是A或B
- 第二列字符必须是一个数字
- 在此情况下进行文件的修改
- 但如果第一列字符不正确,则给出信息L
- 如果第二列字符不是数字,则给出信息M
解答:
- 原因: 1——第一列字符是A; 2——第一列字符是B; 3——第二列字符是一个数字。
- 结果: 21——修改文件;22 ——给出信息L; 23——给出信息M。
- 11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。
总结
因果图是对组合情况设计用例的重要工具,通过分析输入条件之间的逻辑关系,帮助测试人员生成全面且有效的测试数据。虽然在复杂场景下可能导致测试用例数量庞大,但其系统化的方法能够显著提高测试效率和覆盖率。
热门推荐
更换Apple ID必知步骤与注意事项!
他是最后授衔的上将,46人消灭3000人,发明“方便面”助部队获胜
在客服职业生涯中,可以通过哪些方式提升自己的竞争力
客服人员的情绪与压力管理:专业技巧与应对策略
湛江至重庆自驾游最佳路线推荐
体弱之人去练八段锦!超详细的八段锦教程(动作分解 呼吸)
中医有哪些药膳帮助养肺补肺的
兔子总是歪着头是什么毛病
“温度临沧专栏” 舌尖上的非遗:品尝传统美味,感受文化韵味
临沧,你别太好吃了
比版纳更原始,小众冷门的“亚洲恒温之城”,藏着无数个世外桃源!
雨城雅安:“三雅”之城,五大必游景点揭秘
中法建交60周年:大熊猫“领路”雅安融入“国际朋友圈”
非遗四川 | 雅安名山 蒙顶茶
解冻后的肉可以保存多久?
冰柜与桶的解冻方法(快速解冻食材的高效技巧)
健康科普丨尿里泡沫多、双腿水肿?警惕糖尿病肾病的早期信号
景德镇多人因烟花爆竹被行政拘留和处罚,春节禁放区域公布
景德镇:多部门联动!全面开展烟花爆竹整治行动
在成都遇见中国年 宽窄巷子非遗民俗活动精彩不断
揭秘OAA:漫威宇宙中最神秘的存在
数字货运平台:货车司机的新机遇
网络货运平台新手入门指南:从注册到接单全程解析
2025年12星座幸运色与本命色全解析:如何通过色彩提升运势?
羽毛球:全方位提升身心健康
羽毛球新手必学:正确握拍技巧
雅安旅游十大必去景点
【历史文化】雅安蒙顶山古建筑群
买房选层大忌:宁愿住4楼14楼,也别碰这6个楼层,缺点让人崩溃!
十六层楼房住几层最好,如何选择合适的楼层?