![cover](https://img-blog.csdnimg.cn/f18dfd96817d4fdf8fd71803138c8be2.png)
因果图法-实验四例题
软件测试,因果图法基本步骤。
目录
5.为判定表的每一列设计一个测试用例 根据判定表设计测试用例
因果图法基本步骤:
1.分割功能说明书。
对于规模较大的程序,可将其划分为若干个部分,然后分别对每个部分使用因果图法。例如,测试编译程序时,可将每个语句作为一个部分。
2.判断出“原因”和“结果”,并加以编号。
原因指输入条件或输入条件的等价类,结果指输出条件或输出条件的等价类。每个原因或结果都对应因果图中的一个节点。当原因或结果成立(或出现)时,相应的节点取值为1,否则为 0。
因果图法的具体使用如例 1 所示。
【例 1】有一个饮料自动售货机(单价为 5 角钱)的控制处理软件,它的功能说明书如下。
若投入 5 角钱的硬币,按下“可乐”或“绿茶”按钮,则送出相应的饮料。
若投入1元钱的硬币,同样也是按下“可乐”或“绿茶”按钮,则在送出相应饮料的同时退回5 角钱的硬币。
通过分析上述功能说明书,可列出原因和结果如下。
原因:
投入 1 元硬币;
投入 5 角硬币;
按下“可乐”按钮;
按下“绿茶”按钮。
结果:
退还 5 角钱;
送出“可乐”饮料;
送出“绿茶”饮料。
3.根据功能说明书中原因和结果之间的关系画出因果图
因果图中原因在左,结果在右,自上而下排列,并根据功能说明书中原因和结果之间的关系,使用基本符号进行连接,还可在因果图中引入一些中间节点。根据原因和结果,绘制出自动售货机因果图,如图 1 所示。
注意:在绘制因果图时,需要引入一些表示中间状态的处理节点。
接下来对上述因果图进行完善,添加必要的约束条件。例如,原因①和原因②不能同时发生,即 1 元硬币和 5 角硬币不能同时被投入自动售货机;原因③和原因④也不能同时发生,因为程序的功能说明书规定,在投入硬币后,只能按下“可乐”或“绿茶”按钮。完善后的因果图如图 2 所示。
4.根据因果图绘制判定表
绘制判定表的方法较为简单,将所有原因作为输入条件,每一项原因(输入条件)安排为一行,所有输入条件直接列出(真值为 1,假值为 0),将每种条件组合安排为一列,并将各个条件的取值情况分别添加到判定表的对应单元格中。例如,若因果图中的原因有4项,则判定表中的输入条件共有 4 行,而列为 24=16 列。输入条件的取值确定完成之后,可根据判定表轻松地推算出各种结果的组合,即输出。判定表也包含中间节点的状态取值。
上述描述考虑了所有条件的组合情况,如果输入条件较多,条件组合的数量会较为庞大,从而导致绘制出的判定表列数过多,过于复杂。而在实际情况下,条件与条件之间可能会存在约束,许多条件的组合是无效的,因此根据因果图绘制判定表时,可有意识地排除无效的条件组合,从而大幅减少判定表的列数。例如,根据图 2 所示的因果图,可绘制判定表如表1 所示。
5.为判定表的每一列设计一个测试用例 根据判定表设计测试用例
如表 2 表示:
实验内容: 某公司人事软件的工资计算模块的需求规格说明书中描述:
(1)年薪制员工:严重过失,扣当月薪资的 4%;过失,扣年终奖的2%。
(2)非年薪制员工:严重过失,扣当月薪资的 8%;过失,扣年终奖的4%。
请用因果图法设计测试用例。
用因果图法设计测试用例过程如下:
(1)分析程序的规格说明,列出原因和和结果。
原因:
c1:年薪制
c2:严重过失 结果:
e1:扣当月薪资的 4%
e2:扣年终奖的 2%
e3:扣当月薪资的 8%
e4:扣年终奖的 4%
(2)将原因和结果之间的因果关系用逻辑符号连接起来,得到因果图,如图3 所示。
(3)根据因果图设计的判定表如表 3 表示:
(4)根据判定表设计测试用例,如表 4 表示:
事实上,特别是在较为复杂的问题中,合理使用因果图法非常有效,可以帮助检查输入条件的各种组合,设计出非冗余、高效的测试用例。如果开发项目在设计阶段就采用了判定表,就不必再画因果图,可以直接利用判定表设计测试用例。
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)