首页 > 编程知识 正文

软件测试因果图法,最典型的因果图

时间:2023-05-05 06:00:18 阅读:60642 作者:2791

测试用例设计方法-因果图测试用例设计因果图理论因果图设计过程举典型例子。 通过将棋走马则因果图的优缺点因果图发现的错误个人心得

因果图测试用例设计因果图理论

因果图用于描述系统的输入、输出以及输入和输出之间的因果关系、输入和输入之间的约束关系。 因果图的绘制过程是对被测系统的外部特征进行建模的过程。 在实际测试中,因果图和判定表两种方法往往同时使用,从系统输入输出之间的因果图中得到判定表,根据判定表生成设计测试用例。

表示输入和输出的因果关系有以下4种。

()恒等关系)输入项发生时,产生对应的输出; 如果不发生输入项目,则不发生对应的输出。

(2)非关系)与恒等关系相反。

(3)或者关系)只要发生多个输入条件中的一个,就发生对应的输出。

(4)关系)只有在多个输入条件中的所有输入项目发生时,才会发生对应的输出。

与4个因果关系对应的因果图的显示方法如下。

表示输入和输入之间的约束关系也有四种。

(1)异)在所有输入中,最多产生一个输入条件

(2)或)产生所有输入中的至少一个输入条件

(3)唯一)所有输入中,仅发生一个输入条件

(4)要求)所有输入中,只要有一个输入条件发生,其他输入也会发生

与这4个约束关系对应的因果关系图的表示方法如下图所示。

因果图设计过程中因果图的设计用例步骤如下:

(1)将大系统规格分解为可测试的规格片段

)2)分析分解后测量的系统规格,找出哪个是原因,哪个是结果

)3)绘制因果关系

)4)将因果图转换为判定表

)5)判定表的简化

(6)在判定表的各个项目中生成测试用例

举一个典型例子,象棋走马规则步骤1 :分析象棋走马规则如下。

(1)如果着陆地点在盘外,则不动棋子

)落点和起点不呈“日”字型,棋子就不动

)3)坠落地点有己方棋子时,不动棋子

)如果掉落地点方向的相邻十字路口有棋子(绊倒),则不移动棋子

)5)不属于1-4条,且落点无棋子,则移动棋子

)6)不属于第1-4条,且落点有对方棋子(非老将)时,移动棋子去除对方棋子

)7)不属于1-4条,如果落点是对方老将,移动棋子去除老将,提示对方胜利结束游戏。

第二步:分析以上原因,得出原因和结果:

(1)原因:

1 .坠落地点方向相邻路口无棋子

2 .着陆点和起点构成“日”字

3 .着陆地点有自己的棋子

4 .着陆地点在盘外

5 .着陆地点没有棋子

6 .着陆地点是对方的非老将驹

7 .着陆地点是对方的老手

)2)中间节点:

8 .允许移动

(3)结果:

9 .不动棋子

10 .只动棋子

11 .移动棋子去除对方的棋子

12 .移动棋子提示对手获胜,游戏结束

步骤3 )根据原因和结果绘制因果关系,结果如下:

下一步是将因果图转换为判定表,然后根据判定表转换测试用例。 这里我不多说,因果图设计测试用例的重点是创建因果图

使用因果图的优缺点因果图设计测试用例具有以下优点:

)等价类法考虑了各个输入条件可能错误,但忽略了将多个输入条件组合错误,因果关系图的法则可以考虑将多个输入条件组合的情况

)2)因果图法有助于按照一定的步骤有效地选择测试用例,并设计多种输入条件组合的用例。

)3)因果图法还指出了程序规格说明记述中存在的问题。

使用因果图设计测试用例还存在以下缺点:

(1)输入条件和输出结果的因果关系有时很难从需求规格书中得到。

)2)即使得到了这些因果关系,由于因果关系复杂,因果关系图也会变得庞大,测试用例的数量也会变得庞大。

因果图中发现的臭虫商城活动需求表明,活动商品不能使用常规优惠券,可以使用代金券或活动优惠券(不能同时使用) )。

从因果关系中得到的用例之一是“代金券和活动优惠券的并用”

由于开发中没有加入同时使用的判断,优惠金额重叠,不符合需求。

个人心得因果关系图的绘制过程非常耗时,最后必须转化为判定表。 对于思路清晰的学生,可以跳过因果图的绘制过程,直接输出判断表; 对于逻辑复杂、因果关系复杂的输入输出点,无需使用因果图列出所有因果关系。 以上逻辑关系的描绘方法,其实相当于为自己描绘的构想图。 最后要是能有思路清晰的图,转换判定表就好了,但本人极少使用。 面试中被问到是否使用因果关系图时,我会直接回答。 因果关系图都会转换判定表,所以我直接输出判定表。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。