如何用决策表设计测试用例?

article/2025/8/24 19:15:23

实际测试中,如果输入条件较多,再加上各种输人与输出之间相互的作用关系,画出的因果图会比较复杂,容易使人混乱。为了避免这种情况,人们往往使用决策表法代替因果图法。

决策表也称为判定表,其实质就是一严逻辑农。在在序攻计发股初期,判定表就已经被当作程序开发的辅助工具,帮助开发人员整埋开反模式和沉程,因为它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。利用决策表可以设计出完整的测试用例集合。

为了让大家明白什么是决策表,下面通过一个“图书阅读指南”来制作一个决策表。图一无书阅读指南指明了图书阅读过程中可能出现的状况,以及针对各种情况给读者的建议。在图书阅读过程中可能会出现3种情况:是否疲倦、是否对内容感兴趣、对书中的内容是否感到糊涂。如果回答是肯定N,针对这8种组合,阅读指南给读看促制作的阅读指南决策表这3种情况可以有23=8种组合、针对这8种组合,阅读指南给读者提供了4条建议:回到本章开头重读、继续读下去、跳到下一章去读、停止阅读并休息,据此制作的阅读指南决策表下表所示。

表1


上表就是一个决策表,根据这个决策表阅读图书,对各种情况的处理一目了然,简洁高效。

决策表通常由4个部分组成,具体如下。

(1)条件桩:列出问题的所有条件,除了某些问题对条件的先后次序有要求之外,通常决策表中所列条件的先后次序都无关紧要。

(2)条件项:条件项就是条件桩的所有可能取值。

(3)动作桩:动作桩就是问题可能采取的操作,这些操作一般没有先后次序之分。

(4)动作项:指出在条件项的各组取值情况下应采取的动作。

这4个组成部分对应到表1中,条件桩包括是否疲倦、是否对内容感兴趣、对书中内容是否感到糊涂;条件项包括“Y”与“N”;动作桩包括回到本章开头重读、继续读下去、跳到下一章去读、停止阅读并休息;动作项是指在问题综合情况下所采取的具体动作,动作项与条件项紧密相关,它的值取决于条件项的各组取值情况。

在决策表中,任何一个条件组合的特定取值及其相应要执行的操作称为一条规则,即决策表中的每一列就是一条规则,每一列都可以设计一个测试用例,根据决策表设计测试用例就不会有所遗漏。

在实际测试中,条件桩往往很多,而且每个条件桩都有真假两个条件项,有n个条件桩的决策表就会有2条规则,如果每条规则都设计一个测试用例,不仅工作量大,而且有些工作量可能是重复且无意义的,例如,在上面表中,第1、2条规则,第1条规则取值为:Y、Y、Y,执行结果为“停止阅读并休息”;第2条规则取值为:Y、Y、N,执行结果也为“停止阅读并休息”。对于这两条规则来说,前两个问题的取值相同,执行结果一样,因此第3个问题的取值对结果并无影响,这个问题就称为无关条件项,使用“-”表示。忽略无关条件项,可以将这两条规则进行合并,如下图所示。


图1 合并规则1与规则2

由图1可知,规则1与规则2合并成了一条规则。由于合并之后的无关条件项(-)包含其他条件项取值,因此具有相同动作的规则还可进一步合并,如图2所示。


图2 进一步合并规则

将规则进行合并,可以减少重复的规则,相应地减少测试用例的设计,这样可以大大降低软件测试的工作量。图书阅读指南决策表最初有8条规则,进行合并之后,只剩下5条规则,简化后的图书阅读指南决策表如表2所示。

表2是简化后的图书阅读指南决策表,相比于表1,它简洁了很多,在测试时只需要设计5个测试用例即可覆盖所有的情况。

相比于因果图,决策表能够把复杂的问题按各种可能的情况一一列举,简明而易于理解,也避免遗漏,因此在多逻辑条件下执行不同操作的情况,决策表使用的更多。


http://chatgpt.dhexx.cn/article/UpEAwibb.shtml

相关文章

浅谈决策树与决策表

前言 在程序设计过程中,经常会出现多层逻辑控制的嵌套,而这样的嵌套关系往往会导致我们不能直观的看出程序的逻辑关系,这会导致在测试过程中比较容易出现遗漏。因此我们需要引入决策表、决策树,其中决策表就是设计逻辑控制时十分…

决策表法

决策表法介绍: >>在因果图法设计测试用例的步骤中“因果图转换成判定表”中已使用了判定表。判定表又称决策表,为决策表发的核心,是分析和表达 多逻辑条件下执行不同操作情况的有效工具。因此,决策表法是一种能够将复杂逻辑…

6.决策表

决策表的使用方式与使用drl规则文件基本一致&#xff0c;好处是可以把一些相关的规则以表格方式展示&#xff0c;便于阅读及维护 1.maven依赖 <!-- 决策表 --> <dependency><groupId>org.drools</groupId><artifactId>drools-decisiontables&l…

请根据以下需求使用决策表设计测试用例

任务3&#xff1a;请根据以下需求使用决策表设计测试用例 信用卡额度发放&#xff1a; 年收入小于2万&#xff0c;不发放信用卡&#xff1b; 2万<年收入<5万&#xff0c;无稳定工作&#xff0c;额度1万&#xff0c;有稳定工作额度3万&#xff1b; 5万<年收入<1…

决策表法用例设计

决策表法 在一些数据处理问题中,某些操作是否实施依赖于多个逻辑条件的取值。 也即在这些逻辑条件取值的组合所构成的多种情况下,分别执行不同的操作。 处理这类问题的一个非常有力的分析和表达工具是决策表,它可以很清楚地表达各种条件之间的复杂关系。 早在程序设计发…

决策表与决策树

决策表的定义&#xff1a; 决策表又称判断表&#xff0c;是一种呈表格状的图形工具&#xff0c;适用于描述处理判断条件较多&#xff0c;各条件又相互组合、有多种决策方案的情况。精确而简洁描述复杂逻辑的方式&#xff0c;将多个条件与这些条件满足后要执行动作相对应。但不…

决策表

决策表&#xff0c;也叫判定表。在所有的功能性测试方法中&#xff0c;基于决策表的测试方法被认为是最严格的&#xff0c;因为决策表具有逻辑严格性。 决策表是分析和表达多逻辑条件下执行不同操作的情况的工具。在程序设计发展的初期&#xff0c;决策表就已被用作编写程序的…

决策表法的应用

决策表的组成 决策表通常由以下4部分组成&#xff1a; 条件桩—列出问题的所有条件 条件项—针对条件桩给出的条件列出所有可能的取值 动作桩—列出问题规定的可能采取的操作 动作项—指出在条件项的各组取值情况下应采取的动作 条件桩条件项 …

什么是“决策表”?什么是“决策树”?

决策表&#xff1a; 决策表又称判断表&#xff0c;是一种呈表格状的图形工具&#xff0c;适用于描述处理判断条件较多&#xff0c;各条件又相互组合、有多种决策方案的情况。 在所有的功能性测试方法中&#xff0c;基于决策表的测试方法被认为是最严格的&#xff0c;因为决策…

功能测试技术——决策表法

一、决策表的概念 在一些数据处理问题当中&#xff0c;某些操作的实施依赖于多个逻辑条件的组合&#xff0c;即&#xff1a;针对不同逻辑条件的组合值&#xff0c;分别执行不同的操作。决策表就是分析和表达多逻辑条件下执行不同操作情况的工具。 二、决策表的组成 决策表通…

决策表(决策树)

1.什么是决策树 决策树是一种基本的分类与回归方法&#xff0c;在分类问题中&#xff0c;表示基于特征对实例进行分类的过程。它可以认为是if-then规则的集合&#xff0c;也可以认为是定义在特征空间与类空间上的条件概率分布&#xff0c;其主要优点是模型具有可读性&#xff0…

决策表是什么?怎么使用决策表?

实际测试中&#xff0c;如果输入条件较多&#xff0c;再加上各种输人与输出之间相互的作用关系&#xff0c;画出的因果图会比较复杂&#xff0c;容易使人混乱。为了避免这种情况&#xff0c;人们往往使用决策表法代替因果图法。 决策表也称为判定表&#xff0c;其实质就是一严…

二叉搜索树详解

写在前面 本文主要分为三个部分。 第一部分介绍了二叉搜索树的基本性质。 第二部分全面详细地讲述了二叉搜索树的各种基本操作。包括WALK/遍历、SEARCH/查找、MINIMUM/最小关键字、MAXIMUM/最大关键字、SUCCESSOR/后继、PREDECESSOR/前驱、INSERT/插入、DELETE/删除等。主要参考…

完全二叉搜索树

完全二叉搜索树是两个概念的包含&#xff0c;即完全二叉树二叉搜索树。二叉搜索树是一棵二叉树&#xff0c;以根结点为中心&#xff0c;根结点左子树的所有结点权值均小于根结点的权值&#xff0c;根结点右子树的所有结点权值均大于根结点的权值。 而完全二叉树指从根结点到倒数…

数组模拟二叉搜索树(二叉排序树)

文章目录 1. 二叉搜索树的定义2. 二叉搜索树经典模板2.1 插入操作&#xff08;建树操作&#xff09;2.2 删除操作2.3 查询二叉搜索树中值为 w 的前驱/后继数值 3. 经典例题 1. 二叉搜索树的定义 二叉搜索树 (BST) 递归定义为具有以下属性的二叉树&#xff1a; 若它的左子树不…

是否二叉搜索树

6-21 是否二叉搜索树 &#xff08;25 分&#xff09; 本题要求实现函数&#xff0c;判断给定二叉树是否二叉搜索树。 函数接口定义&#xff1a; bool IsBST ( BinTree T );其中BinTree结构定义如下&#xff1a; typedef struct TNode *Position; typedef Position BinTree;…

数据结构-二叉搜索树

目录 二叉搜索树的概念及结构 概念 结构 二叉搜索树的基本操作 默认成员函数 默认构造函数与拷贝构造函数 赋值重载 析构函数 二叉搜索树的插入 非递归 递归 二叉搜索树的遍历 中序遍历---升序&#xff08;左根右&#xff09; 中序遍历---降序&#xff08;右根左…

二叉搜索树的应用

文章目录 1. 二叉搜索树的应用2. 二叉搜索树的KV模型3. 关于const K导致无法erase4. 关于while (cin >> str)5. 面试oj题5.1根据二叉树创建字符串5.2二叉树的层序遍历5.3二叉树的最近公共祖先5.4 二叉搜索树与双向链表5.5从前序与中序遍历序列构造二叉树5.6二叉树的前序遍…

【C++】二叉搜索树

目录 一、二叉搜索树概念 1、概念 2、结构 3、性质 二、二叉搜索树模拟实现 1、二叉搜索树节点 2、二叉搜索树构造函数 3、二叉搜索树查找 (1)迭代版本 (2)递归版本 4、二叉搜索树插入 (1)迭代版本 (2)递归版本 5、二叉搜索树节点删除 (1)迭代版本 (2)递归版本 …

Python 二叉搜索树

二叉搜索树(BST)&#xff0c;有时也被称为二叉排序树&#xff0c;是一种特殊类型的容器: 在内存中存储“项目”&#xff08;例如数字&#xff0c;名称等&#xff09;的数据结构。它们允许快速查找、添加和删除项目。二叉排序树是带根结点的二叉树&#xff0c;其内部结点各自存储…