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

article/2025/8/25 0:10:37

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

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

为了让大家明白什么是决策表,下面通过一个“图书阅读指南”来制作一个决策表。图一无书阅读指南指明了图书阅读过程中可能出现的状况,以及针对各种情况给读者的建议。在图书阅读过程中可能会出现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与规则2


图1 合并规则1与规则2

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

进一步合并规则


图2 进一步合并规则

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

简化后的图书于都指南决策表

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

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

本文转自:黑马程序员软件测试 http://test.itheima.com


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

相关文章

二叉搜索树详解

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

完全二叉搜索树

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

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

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

是否二叉搜索树

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

数据结构-二叉搜索树

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

二叉搜索树的应用

文章目录 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),有时也被称为二叉排序树,是一种特殊类型的容器: 在内存中存储“项目”(例如数字,名称等)的数据结构。它们允许快速查找、添加和删除项目。二叉排序树是带根结点的二叉树,其内部结点各自存储…

构建二叉搜索树

二叉搜索树 (BST) 递归定义为具有以下属性的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值若它的右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值它的左、右子树也分别为二叉搜索树 给定二叉树的具体…

【Java 数据结构】实现一个二叉搜索树

目录 1、认识二叉搜索树 2、实现一个二叉搜索树 2.1 成员变量 2.2 insert 方法 2.3 search 方法 2.4 remove 方法(重点) 3、二叉搜索树总结 1、认识二叉搜索树 从字面上来看,它只比二叉树多了搜索两个字,我们回想一下,如果要是在二…

java二叉搜索树详解

文章目录 一、概念二、相关操作2.0节点相关代码:2.1查找2.2插入2.3删除(重难点)2.4测试用例 三、小结 提示:以下是本篇文章正文内容,下面案例可供参考 一、概念 二叉搜索树又称二叉排序树 它或者是一棵空树&#xff…

二叉搜索树

目录 二叉搜索树二叉搜索树概念 增删查改接口插入递归插入查找递归查找删除递归删除 成员函数拷贝构造拷贝赋值析构 二叉搜索树的应用二叉搜索树的性能分析 二叉搜索树 二叉搜索树概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的…

【数据结构】二叉搜索树

目录 一.二叉搜索树规则 二.框架 三.实现 1.查找, 插入, 删除 迭代法实现 递归法实现 2.构造, 赋值 默认构造 拷贝构造 赋值运算符重载 3.中序遍历 四.时间复杂度及稳定性 五.key模型与key/value模型 1.key模型 2.key/value模型 一.二叉搜索树规则 二叉搜索树又…

数据结构——二叉搜索树详解

二叉搜索树 一、什么是二叉搜索树 二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树。 二叉搜索树:一棵二叉树,可以为空;如果不为空,满足以下性质: 非空…

【数据结构】——二叉搜索树

目录 前言 二叉搜索树的概念 二叉搜索树的操作 树的节点实现 搜索树的基本结构 插入数据 查找 删除 拷贝构造函数 二叉搜索树的应用 前言 在c中的容器里map和set的学习需要二叉搜索树的铺垫,也为后边的的红黑树和AVL树做铺垫,也就是说,…

二叉搜索树(二叉排序树)

一.概念 二叉搜索树又称二叉排序树,具有以下性质: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树 注意:二…

二叉排序树(二叉查找树、二叉搜索树)(图解+完整代码)

目录 ⚽1.什么是二叉排序树 🏐2.构建二叉排序树 🏀3.二叉排序树的查找操作 🥎4.二叉排序树的删除 🎱5.完整代码 ⚽1.什么是二叉排序树 我们直接看它的性质: 若它的左子树不空,则左子树上所有结点的值…

种树:二叉树、二叉搜索树、AVL树、红黑树、哈夫曼树、B树、树与森林

虽然今天不是植树节,但是我今天想种树。 文章目录 树,什么是树?二叉树定义二叉树的创建二叉树的前中后序遍历前序遍历:中序遍历后序遍历已知前序、中序遍历结果,还原二叉树已知后序、中序遍历结果,还原二叉…

java lrucache_Java LruCache 的使用及原理

概述 LRU (Least Recently Used) 的意思就是近期最少使用算法,它的核心思想就是会优先淘汰那些近期最少使用的缓存对象。 在我们日常开发中,UI 界面进行网络图片加载是很正常的一件事情,但是当界面上的图片过于多的时候,不可能每次…

LruCache和DiskLruCache

前言 Android中的三级缓存主要就是内存缓存和硬盘缓存。 Lru(least recently used)意为最近最少使用算法,核心思想就是当缓存满时,会优先淘汰最近最少使用的缓存对象。 LruCache的使用 在Android中可以直接使用LruCache,算法原理是&#xff1…