黑盒测试用例设计方法

您所在的位置:网站首页 中国象棋的正确下法 黑盒测试用例设计方法

黑盒测试用例设计方法

2024-07-11 12:31| 来源: 网络整理| 查看: 265

常用测试用例设计方法-因果图 因果图测试用例设计因果图理论因果图设计过程举个经典的例子:象棋的走马规则 因果图的优缺点通过因果图发现过的BUG个人心得

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

因果图是用于描述系统的输入、输出以及输入和输出之间的因果关系、输入和输入之间的约束关系。因果图的绘制过程是对被测试系统外部特征的建模过程。在实际测试过程中,因果图和判定表两种方法往往同时使用,根据系统输入和输出间的因果图可以得到判定表,根据判定表产生设计测试用例。 表示输入与输出间的因果关系有以下四种: (1)恒等关系:当输入项发生,会产生对应输出;当输入项不发生时,不会产生对应输出。 (2)非关系:与恒等关系相反。 (3)或关系:多个输入条件中,只要有一个发生,则会产生对应输出。 (4)与关系:多个输入条件中,只有所有输入项都发生,才会产生对应输出。 四种因果关系对应的因果图表示方法如下: 在这里插入图片描述 表示输入与输入间的约束关系也有四种: (1)异:所有输入中至多一个输入条件发生 (2)或:所有输入中至少一个输入条件发生 (3)唯一:所有输入中有且只有一个输入条件发生 (4)要求:所有输入中只要有一个输入条件发生,则其它输入也会发生 该四种约束关系对应的因果图表示方法如下图: 在这里插入图片描述

因果图设计过程

因果图的设计用例步骤如下: (1)把大的系统规格分解成可以测试的规格片段 (2)分析分解后待测的系统规格,找出哪些是原因,哪些是结果 (3)画出因果图 (4)把因果图转换成判定表 (5)简化判定表 (6)用判定表中的每一项生成测试用例

举个经典的例子:象棋的走马规则

步骤1:分析象棋的走马规则如下: (1)如果落点在棋盘外,则不移动棋子 (2)如果落点与起点不构成“日”字型,则不移动棋子 (3)如果落点处有己方棋子,则不移动棋子 (4)如果在落点方向的邻近交叉点有棋子(绊马脚),则不移动棋子 (5)如果不属于1-4条,且落点无棋子,则移动棋子 (6)如果不属于1-4条,且落点有对方的棋子(非老将),则移动棋子并除去对方棋子 (7)如果不属于1-4条,且落点为对方老将,则移动棋子,移除老将,并提示战胜对方,游戏结束。 步骤2:分析以上以上原因,得出原因与结果: (1)原因: 1.落点方向的邻近交叉点无棋子 2.落点与起点构成“日”字 3.落点处有己方棋子 4.落点在棋盘外 5.落点处无棋子 6.落点处为对方非老将棋子 7.落点处为对方老将 (2)中间结点: 8.允许移动 (3)结果: 9.不移动棋子 10.只移动棋子 11.移动棋子并除去对方棋子 12.移动棋子并提示战胜对方,游戏结束 步骤3:根据原因与结果画出因果图如下: 在这里插入图片描述 接下来的步骤将因果图转化为判定表,再根据判定表转化测试用例,在此不多描述了,因果图设计测试用例的重点就是画出因果图

因果图的优缺点

使用因果图设计测试用例有以下优点: (1)尽管等价类法将各个输入条件可能出错的情况都考虑到了,但是多个输入条件组合起来出错的情况却被忽略了,因果图法则可以考虑多输入条件组合的情况 (2)因果图法能够帮助我们按照一定步骤高效地选择测试用例,设计多个输入条件组合用例。 (3)因果图法还能为我们指出程序规格说明描述中存在的问题。 使用因果图设计测试用例也存在以下缺点: (1)输入条件与输出结果的因果关系,有时难以从需求规格说明书得到。 (2)即使得到了这些因果关系,也会因为因果关系复杂导致因果图非常庞大,测试用例数目极其庞大。

通过因果图发现过的BUG

商城活动的需求说明为:活动商品不能使用正常优惠券,可以使用代金券或活动优惠券(不能同时使用) 那么根据因果关系得出的一条用例为(代金券与活动优惠券同时使用) 由于开发没有加上同时使用的判断,导致优惠金额叠加,不符合需求。

个人心得

因果图绘制过程十分耗时,最后还得转换成判定表,对于思路清晰的同学可以直接跳过因果图的绘制过程,直接输出判定表;对于逻辑复杂,因果关系复杂的输入/输出点,再使用因果图,没必要所有因果列出。还有以上的逻辑关系画法,其实相当与给自己画的思路图,只要最后得出思路清晰的图能转换判定表即可,本人极其少用,甚至在面试过程中被问到使用会使用因果图,直接回答:因为因果图都是要转换判定表的,所以我都是直接输出判定表的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3