用例设计方法:判定表驱动法实践

判定表的简介

判定表是黑盒测试的方法之一,判定表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格。它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。

因此,利用判定表能够设计出完整的测试用例集合

判定表组成:

判定表通常有以下四个部分组成:


条件桩


条件项


动作桩


动作项

条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次序无关紧要。

动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。

条件项(Condition Entry):列出针对它左列条件的取值。针对条件桩给出的条件列出所有可能的取值

动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。

将任何一个条件组合的特定取值及相应要执行的动作称为一条规则。在决策表中贯穿条件项和动作项的一列就是一条规则。

判定表的优点和缺点

优点:它能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,也可避免遗漏。

缺点:不能表达重复执行的动作,例如循环结构。

判定表的适用条件

B. Beizer 指出了适合使用判定表设计测试用例的条件:

① 规格说明以判定表形式给出,或很容易转换成判定表。

② 条件的排列顺序不会也不影响执行哪些操作。

③ 规则的排列顺序不会也不影响执行哪些操作。

④ 每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。

⑤ 如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。

B. Beizer提出这5个必要条件的目的是为了使操作的执行完全依赖于条件的组合。其实对于某些不满足这几条的判定表,同样可以借以设计测试用例,只不过尚需增加其它的测试用例罢了。

判定表的建立步骤:

① 确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有 种规则。

② 列出所有的条件桩和动作桩。

③ 填入条件项。

④ 填入动作项。得到初始判定表。

⑤ 简化判定表(合并相似规则(相同动作)),如下表所示,左侧的两列均可以合并为右侧一列


规则

选项


1


2


合并1、2


3


4


合并3、4


条件1


Y


Y


Y


Y


Y


Y


条件2


Y


N


-


Y


-


-


条件3


N


N


N


N


N


N


动作4


X


X


X


X


X


X

示例1

给出三个任意正数a、b、c判断其能否构成三角形及三角形按边分类的类型

1、 确定规则的个数,先定义条件个数,如下:

三角形按照边分为:等腰三角形、等边三角形、一般三角形

根据分析,确定条件如下:

a<b+c、b<a+c、c<a+b、a=b、b=c、c=a,故规则的个数有2的6次方64个

2、初始判定表

 
1~32


33~48


49~56


57


58


59


60


61


62


63


64


a<b+c


N


Y


Y


Y


Y


Y


Y


Y


Y


Y


Y


b<a+c


-


N


Y


Y


Y


Y


Y


Y


Y


Y


Y


c<a+b


-


-


N


Y


Y


Y


Y


Y


Y


Y


Y


a=b


-


-


-


N


N


N


N


Y


Y


Y


Y


b=c


-


-


-


N


N


Y


Y


N


N


Y


Y


a=c


-


-


-


N


Y


N


Y


N


Y


N


Y


一般三角形

     
X

             

等腰三角形

       
X


X

 
X

     

等边三角形

                   
X


非三角形


X


X


X

               

不成立

           
X

 
X


X

 

上述判定表已经是合并相同规则后的表格,经过简化后(去除不可能条件)得到最终判定表如下:

 
1~32


33~48


49~56


57


58


59


61


64


a<b+c


N


Y


Y


Y


Y


Y


Y


Y


b<a+c


-


N


Y


Y


Y


Y


Y


Y


c<a+b


-


-


N


Y


Y


Y


Y


Y


a=b


-


-


-


N


N


N


Y


Y


b=c


-


-


-


N


N


Y


N


Y


a=c


-


-


-


N


Y


N


N


Y


一般三角形

     
X

       

等腰三角形

       
X


X


X

 

等边三角形

             
X


非三角形


X


X


X

         

不成立

               

根据上述判定表,得到用例如下:


用例编号


a


b


c


预期结果


T01


4


1


2


非三角形


T02


1


4


2


非三角形


T03


1


2


4


非三角形


T04


3


4


6


一般三角形


T05


3


4


3


等腰三角形


T06


4


3


3


等腰三角形


T07


3


3


4


等腰三角形


T08


3


3


3


等边三角形

示例2

主持人对甲、乙、丙三人说:“这里有三顶红帽子,两顶白帽子。现在用布蒙上你们的眼睛,给你们每人戴上一顶帽子,然后请你们依次睁开眼睛,能正确说出自己所戴帽子的颜色者有奖。”

带完帽子后,甲拿下布后看了其他两人的帽子说:“我不知道。”

然后,乙解开布看了其他两人的帽子后说:“我不知道。”

轮到丙时,他没有拿下布就正确地说出了自己所戴帽子的颜色。

试问:丙戴的是什么帽子?他是怎样得出结论的?

 
1


2


3


4


5


6


7


























甲不知


×


×


×



×


×


×


乙不知


×



×

 
×



×



 

 

 

有上述判定表可知,所有符合题干假设的,只有1、3、5、7满足条件,而满足条件的所有组合中,丙均为红色莫阿紫,故而得出结论

时间: 2024-11-05 14:40:44

用例设计方法:判定表驱动法实践的相关文章

测试用例设计方法---判定表法

学习目标 掌握判定表的四个组成部分 掌握如何使用判定表设计测试用例 掌握判定表法的适用范围 1.为什么要学习判定表法 若用户欠费或者关机,则不允许主被叫前面学过的等价类划分法和边界值分析法都是着重考虑单个输入的输入条件,但是 没有考虑输入条件的各种组合.输入条件与输出条件之间的相互制约关系. 所以要使用判定表法才能解决上述案例编写测试用例的过程 ? 2.什么是判定表法 ? 判定表法表示的是有多个输入,和多个输出,而且输入与输入之间有相互的组合关系.输入和输出之间有相互的制约和依赖关系 ? 3.判

用例设计方法

一.等价类划分 等价类划分属于典型的功能测试方法,根据程序对数据的要求,把程序的输入域划分成若干个部分,区分出哪些数据有有效的,哪些数据是无效的,从每个部分中取少数代表性数据作为测试用例.这样,每一类的代表性数据中的作用都等价与这类中的其他值. 等价类划分有两种不同的情况:有效等价类和无效等价类. 有效等价类:对程序规格有意义,合理的输入数据集合.程序接收到有效等价类数据,可以正确执行计算. 无效等价类:对程序规模无意义,不合理的输入数据集合,程序接收到无效等价类数据.应该给出错误提示,或者不让

《软件测试工程师》 14 用例设计方法-等价类

1. 等价类 # 定义:具有相同属性或方法的事物集合:这个集合中的个体所表现的特征与其他个体完全一致: 对于输入而言,某个个体被接受/拒绝,则个体所在集合中的所有个体都被接受/拒绝. #分类:有效等价类(合理.有意义):无效等价类:两者都是用来测试的:有效等价类要输入成功:无效等价类要输入失败,否则就是缺陷: 有效等价类和无效等价类是一对多的关系:一个有效等价类至少对应一个无效等价类. #划分规则:根据输入值长度划分:根据输入值的类型划分:针对输入值的每个规则划分类,一个规则对个一个或多个有效等

《软件测试工程师》 17 用例设计方法-因果图

因果图(鱼骨图) 应用场景: 遇到复杂的业务逻辑,判定表无法搞定:判定表主要考虑条件与动作间的关系, 很少考虑条件与条件之间的关系,这时候就可以用到因果图. 输入与输出关系 1. 恒等:当输入条件发生时,结果一定发生:当输入条件不发生时,结果一定不发生 2. 非: 当输入条件发生时,结果一定不发生:当输入条件不发生时,结果一定发生 3. 与:当多个输入条件都发生时,结果才会出现 4. 或: 多个条件中的一个条件发生了,结果就会发生 输入与输入的关系: 1. 异:所以输入条件中,至多有一个:可以为

因果图用例设计方法概念详解

为什么么需要因果图 在黑盒测试中,等价类划分或边界值分析法只考虑了不同的输入和不同的输出之间的关系.但是如果是各个输入条件之间有很复杂的组合,这二种设计方法都很难用一个系统的方法进行描述,设计测试用例只能依靠测试人员主观的猜测或者分析,具有很大的盲目性. 让我们先来看一个简单的例子. 假设某个软件需求文档中有这样的说明: 第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改.但如果第一列字符不正确,则给出信息L:如果第二列字符不是数字,则给出信息M. 先用等价类来分析,第一

java并发4-单例设计方法

单例的设计方式: 第一种:非延迟加载单例类 public class Singleton { private Singleton() {} private static final Singleton instance = new Singleton(); public static Singleton getInstance() { return instance; } } 第二种:同步延迟加载 public class Singleton { private static Singleton

测试用例设计方法:判定表

测试用例设计方法 判定表 定义 分析和表述若干输入条件下被测对象针对这些输入做出的响应的一种工具; 遇到复杂业务逻辑是可以利用该表理清业务关系; 重要概念 条件 l  条件桩:需求规格说明书定义的被测对象的所有输入 l  条件项:针对条件桩,所有可能的输入数据 动作 l  动作桩:针对条件用户可能采用的所有操作 l  动作项:针对动作桩,被测对象相应的可能值 规则 l  动作项和条件项组合在一起形成的业务逻辑 步骤 l  理解需求,确定条件桩,动作桩 l  设计优化判定表 l  填写动作项 l 

软件测试【1】——黑盒测试用例设计方法(1)等价类、边界值、判定表、因果图

黑盒测试用例设计方法 等价类 等价类概念:在所有测试的数据中,具有某种共同特征的数据子集. 分类:有效等价类,无效等价类 等价类划分的规则: 等价类测试的步骤: (1)分析需求,确定输入数据类型 (2)使用规则划分有效和无效等价类 (3)设计用例,覆盖有效等价类(注意:一条用例尽可能覆盖多的有效等价类) (4)设计用例,覆盖无效等价类(注意:一条用例只能覆盖一个无效等价类) 案例:固定电话号码的测试(3/4位地区码和7/8位电话号码) 边界值分析方法 大量的错误都是发生在输入或输出范围的边界上,

自动化测试之-测试用例设计方法总结

黑盒.白盒.接口测试一系列用例设计方法. 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法.场景图法等. (一)等价类划分法 定义:等价类划分法是把所有可能输入的数据,即程序的输入域划分策划国内若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.方法是一种重要的.常用的黑盒测试用例设计方法. 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表