判定表是分析和表达多逻辑条件下执行不同操作的工具。它能够将复杂的问题按照各种可能的情况全部列举出来。因此,利用判定表能够设计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。另外,判定表通常与因果图法结合使用。

判定表的组成

判定表通常由四个部分组成如下图所示。

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

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

(3)条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。

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

(5)规则:任何一个条件组合的特定取值及其相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。注意化简,即规则合并有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系。

判定表建立方法

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

(2)列出所有的条件桩和动作桩。

(3)填入条件项。

(4)填入动作项。制定初始判定表。

(5)简化。合并相似规则或者相同动作。

判定表使用实例

1、需求描述:”……对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……” 。这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义 。请建立判定表。

(1)确定规则的个数。规则个数的取值为2的n次方,n为条件个数。需求描述中有有3个条件(功率大于50马力、维修记录不全、运行10年以上),每个条件有两个取值,故应有2的3次方,共8种规则。

(2)列出所有的条件桩和动作桩。

(3)填入条件项。可以从第1列开始次序减去1。按照二进制计算方法。如7(111)、6(110)、...、0(000)。

(4)填入动作桩和动作顶。这样便得到形如图的初始判定表。

1

2

3

4

5

6

7

8

条件

功率大于50马力吗?

1

1

1

1

0

0

0

0

维修记录不全吗?

1

1

0

0

1

1

0

0

运行超过10年吗?

1

0

1

0

1

0

1

0

动作

进行优先处理

1

1

1

1

1

作其他处理

0

0

0

(5)化简,合并相似规则后得到图。

 

1

2

3

4

5

条件

功率大于50马力吗?

1

1

1

0

0

维修记录不全吗?

1

0

0

-

-

运行超过10年吗?

-

1

0

1

0

动作

进行优先处理

1

1

1

作其他处理

1

1

适合使用判定表的场景

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

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

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

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

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

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

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

判定表的优点和缺点

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

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

参考资料

1、判定表驱动法_百度百科

2、《黑盒测试用例设计方法》

转载于:https://www.cnblogs.com/linyfeng/p/9211673.html

测试工程方法:判定表驱动法相关推荐

  1. 黑盒测试——nextDate函数测试(等价类划分法、边界值分析法、判定表驱动法)

    实验目的 (1)掌握应用黑盒测试技术进行测试用例设计. (2)掌握对测试用例进行优化设计方法. 实验内容 日期问题 测试以下程序:该程序有三个输入变量month.day.year(month.day和 ...

  2. 黑盒测试——NextDate函数测试(判定表驱动法)

    黑盒测试:NextDate的判定表驱动法及测试用例设计 程序有三个输入变量month.day.year(month.day和year均为整数值,并且满足:1≤month≤12.1≤day≤31.190 ...

  3. 使用边界值分析法与判定表驱动法设计测试用例,测试nextDate函数

    需求 日期问题 测试以下程序:该程序有三个输入变量 month.day.year (month.day 和 year 均为整数值,并且满足:1 ≤ months ≤ 12.1 ≤ days ≤ 31 ...

  4. 黑盒测试-判定表驱动法与错误推测法-三角形问题

    决策表法(判定表驱动法) 是分析和表达多逻辑条件下执行不同操作的情况的工具,能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏. 条件桩:列出了问题的所有条件,通常认为列出的条件的次序无关 ...

  5. 软件质量测试决策表和判定表,黑盒测试技术(Decision Tables 决策表法,又称判定表法)软件质量保证与测试...

    -------------------- 健壮性最强,考虑情况最全面 ### Decision Tables 决策表法,又称判定表法 ### * 前言 * 一.认识决策表 * 二.例题 * * * 例 ...

  6. 测试用例方法-判定表法

    判定表法案例 若用户欠费或关机,则不允许主被叫 等价类划分法和边界值分析法都是着重考虑单个输入的输入条件,但是没有考虑输入条件的各种组合,输入条件与输出条件之间的相互制约关系.所以要使用判定表法才能解 ...

  7. 软件测试——判定表驱动法、正交表法_ni4

    一.判定表 判定表定义: 是分析和表达多逻辑条件下执行不同操作的情况的工具. 判定表作用: 判定表是分析和表达多逻辑条件下执行不同操作的情况的工具. 判定表通常由四部分组成 : 条件桩  动作桩  条 ...

  8. 软件测试用例设计方法-判定表法

    接下来4篇分享的测试用例方法,实际工作中不常用,但是能够为测试用例提供设计思路. 首先分享的是,判定表法. 等价类划分法和边界值法着重考虑输入条件,但是忽略了输入条件的各种组合.输入条件之间的相互制约 ...

  9. 软件测试—软件测试基础知识—测试用例设计的方法判定表和因果图

    判定表 定义:分析和表述若干输入条件下,被测对象针对这些输入输出的响应的一种工具.在遇到复杂业务逻辑时可以利用该表理清逻辑关系. 重要概念 条件 条件桩:需求规格说明书定义的被测对象的所有输入(手机号 ...

最新文章

  1. Socket 共用一个port的问题
  2. ctrlx不能剪切怎么回事_立式磨粉机产量越来越低是怎么回事?
  3. cadence原理图软件(orcad)层级原理图与位号
  4. 深度学习入门之PyTorch学习笔记:深度学习介绍
  5. Qt5.12编译MySQl5.1.37驱动
  6. /usr/lib/deepin-wine/wine: error while loading shared libraries: libwine.so.1
  7. BZOJ.2738.矩阵乘法(整体二分 二维树状数组)
  8. 1016 部分A+B (15分)
  9. jedis连接mysql_使用Jedis操作Redis数据库
  10. 如何将爬虫获得的数据变为字典的key_Python爬虫第二战 爬取500px图片
  11. 两个字符串 char* a, char* b,输出b在a中的位置次序。
  12. idea 一键展开所有方法 一键收纳所有方法
  13. 自然数之和(leetcode 167)
  14. 如何查看oracle客户端的版本,如何查看Oracle客户端版本
  15. CAN:CAN矩阵、CAN网络、DBC、MDF关系
  16. 一个在线五笔的例子的代码,很不错,转载过来共享
  17. Qt中模态对话框的使用示例及accept()和reject()槽函数的使用
  18. 康宁发布第五代大猩猩玻璃 坚韧度更强更耐摔
  19. 狼人杀纯白之女个人理解
  20. STM32F407三重ADC配置

热门文章

  1. php authorization,PHP CURL设置Authorization
  2. java development kie_java – 直接从存储库加载Drools/KIE Workbench工件
  3. pytorch torch.nn.Module
  4. werkzeug routing.Map
  5. MySQL Flow Control Statements(流程控制)
  6. opencv-api getAffineTransform()
  7. SQL数据层面操作(DML)
  8. redis mysql 集群_Redis(五)、Redis数据库集群相关
  9. mysql中怎么表示100美元_MySQL 事物,美国服务器
  10. Linux学习总结(55)——Linux 运维常用脚本