【软件测试之判定表法】

news2024/11/28 20:47:33

【软件测试之判断表法】(蓝桥课学习笔记)

1、判定表法的概念

判定表又称“决策表”,是一种表格状的图形工具,适用于处理判断条件较多,各条件又相互组合、有多种决策方案的情况。由于决策表可以把复杂的逻辑关系和多种条件组合的情况表达的既具体又明确,因此在程序设计发展的初期,判定表就经常被当作编写程序的辅助工具。

判定表通常由 4 个部分组成:

条件桩(Condition Stub):指所有条件的名称,列出的条件的先后次序无关紧要。 动作桩(Action Stub):指所有可能采取的操作,顺序没有约束。 条件项(Condition Entry):条件桩中的条件所有可能的取值。 动作项(Action Entry):与条件项紧密相关,列出在条件项的各组取值情况下应该采取的动作。

任何一个条件组合的特定取值及其相应要执行的操作称为一条规则(Rules),在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中条件有多少组合取值,也就有多少条规则。根据软件规格说明,建立判定表的步骤如下:

  • 第 1 步:分析需求,列出所有的条件桩和条件项;
  • 第 2 步:分析需求,列出所有的动作桩和动作项;
  • 第 3 步:根据规则,设计初始判定表;
  • 第 4 步:简化判定表,合并相似规则,设计测试用例。

运用判定表设计测试用例,可以将条件理解为输入,将动作理解为输出。

案例

案例 1:超市产品销售

超市中如果某产品的销售好并且库存低,则继续销售并增加该产品的进货;如果该产品销售好,但库存量不低,则继续销售;若该产品销售不好,但库存量低,则该产品下架;若该产品销售不好,且库存量不低,如果有空货架则继续销售,如果没有空货架,则该产品下架。

请使用判定表法设计测试用例。

【解析】

分析需求,列出所有的条件桩和条件项。如下表所示。

条件桩条件项
C1:销售好?True(T)或 False(F)
C2:库存低?True(T)或 False(F)
C3:有空货架?True(T)或 False(F)

分析需求,列出所有的条件组合所产生的动作。

  • A1:增加进货
  • A2:继续销售
  • A3:产品下架

根据规则,设计初始判定表,如下表 所示。

对于本题有 3 个条件(销售、库存、有空货架),每个条件有 2 个取值(是或否),根据“组合”的原理,共有 23=8 种规则。

超市产品销售判定表

第 4 步:简化判定表

实际使用判定表时需要简化,简化是以合并相似规则为目标,若表中有 2 条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,则可以合并。

根据表中情形,第 1、2 条规则其动作项一致,条件项中的前 2 个条件取值一致,只有第 3 个条件取值不同,说明第 3 个条件无论取何值,都对相应的动作没有影响,这 2 条规则可以合并。合并后的 C3 示为--,说明在当前规则中该条件的取值与动作的取值无关,称为无关条件。根据此原则,第 3、4 条规则和第 5、6 条规则也可以合并,化简后的超市销售库存判定表如下表所示:

简化后的超市产品销售判定表

案例 2:房屋销售

有一个“计算房产基础中介费”的程序,规定中介费用政策如下:

  • 如果房屋销售总价少于 10 万元,那么基础中介费将是销售总价的 2%;
  • 如果房屋销售总价大于 10 万元,那么基础中介费将是销售总价的 1.5%,外加 1000 元;
  • 如果销售额大于 100 万元,那么基础中介费将是房屋销售总价的 1%,外加 1500 元;

另外房屋销售单价和客户的性质对中介费也有影响:

  • 若单价低于 1 万/m2,则外加基础中介费的 5%;若是老顾客,则减免外加基础中介费;
  • 若单价在 1 万/ m2 到 2 万/m2,则外加基础中介费的 2.5%;若是老顾客,则减免外加基础中介费;
  • 若单价在 2 万/m2 以上,则减免外加基础中介费;若是老顾客,则减去基础中介费的 5%。

【解析】:

分析各种输入情况,列出条件桩和条件项。如下表所示。

中介费的条件桩和条件项

分析程序的规格说明,并结合以上条件项,列出可能采取的操作。

  • A1:基础中介费为销售总价的 2%
  • A2:基础中介费为(销售总价的 1.5%+1 000)元
  • A3:基础中介费为(销售总价的 1%+1 500)元
  • A4:外加基础中介费的 5%
  • A5:外加基础中介费的 2.5%
  • A6:减去基础中介费的 5%

根据以上分析的步骤,画出判定表,如下表所示。(根据合并规则,此处没有需要简化的项):

中介费判定表

根据以上判定表,设计测试用例。如下表 所示:

用例编号销售总价(元)销售单价(元)客户性质预期输出
中介费-00150 0005 000新客户1 050
中介费-00250 0005 000老客户1 000
中介费-00350 00015 000新客户1 025
中介费-00450 00015 000老客户1 000
中介费-00550 00025 000新客户1 000
中介费-00650 00025 000老客户950
中介费-007500 0005 000新客户8 925
中介费-008500 0005 000老客户8 500
中介费-009500 00015 000新客户8 712.5
中介费-010500 00015 000老客户8 500
中介费-011500 00025 000新客户8 500
中介费-012500 00025 000老客户8 075
中介费-0131 500 0005 000新客户17 325
中介费-0141 500 0005 000老客户16 500
中介费-0151 500 00015 000新客户16 912.5
中介费-0161 500 00015 000老客户16 500
中介费-0171 500 00025 000新客户16 500
中介费-0181 500 00025 000老客户15 675

2、判定表法小结

判定表法的基本思路是对多个条件的组合进行分析,从而设计用例来覆盖各种组合。适合使用判定表设计测试用例需要的条件如下:

  • 规则说明以判定表的形式给出,或很容易转换成判定表。
  • 条件的排列顺序不影响所要执行的操作。
  • 规则的排列顺序不影响所要执行的操作。
  • 如果某一个规则要执行多个操作,这些操作的执行顺序也无关紧要。
  • 当某个规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。

判定表法最突出的优点是:能够将复杂的问题按照各种可能的情况全部列出来,简明并避免遗漏,而且对条件的组合顺序并无要求。因此,利用判定表法能够设计出完整的测试用例合集。

但判定法也有他的缺点,那就是没有考虑输入条件之间的相互制约关系(例如互斥关系)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1586845.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最新国产中文版官网chatGPT镜像网站

分享5个国产中文版chatGPT镜像网站,希望可以帮助到您! 1️⃣ HiClaude3基于国外原版GPT模型、Claude模型开发,是资源丰富的全能镜像,适合各行各业的工作者。不仅有gpt,而且还支持图片对话、文件对话,轻松解…

zookeeper解析

目录 zookeeper定义 zookeeper定义 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目 Zookeeper工作机制 zookeeper从设计模式角度来理解: 是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心…

.a和.so库文件是什么?

我们在编译开源代码后,通常会生成.a和.so这两个库文件,这两个文件有什么区别?又如何使用? 在 Linux 中,.a 和 .so 文件都是库文件,但它们有一些区别: 静态库文件(.a)&am…

【C++算法】线性DP详解:数字三角形、最长上升子序列、最长公共子序列、最长公共子串、字符串编辑距离

文章目录 1)数字三角形1:顺推2:逆推 2)最长上升子序列1:线性DP做法2:二分优化 3)最长公共子序列4)最长公共子串5)字符串编辑距离 1)数字三角形 1&#xff1a…

LabVIEW闭环步进电机运动系统设计及精度分析

LabVIEW闭环步进电机运动系统设计及精度分析 在自动化设备不断发展的当代,闭环步进电机以其高精度和可靠性成为了自动化设备的重要组成部分。以LabVIEW软件为核心,结合运动控制卡及驱动器模块,设计并实现了一个闭环步进电机的多轴运动控制系…

内核驱动更新

1.声明我们是开源的 .c 文件末尾加上 2.在Kconfig里面修改设备,bool(双态)-----》tristate(三态) 3.进入menuconfig修改为M 4.编译内核 make modules 也许你会看到一个 .ko 文件 5.复制到根目录文件下 在板子…

XAI有什么用?探索LLM时代利用可解释性的10种策略

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 你是否也好奇,在大模型时代,可解释性人工智能技术(XAI&am…

SAP ABAP 连接外部数据库

前言 SAP 连接外部数据库有多种方法,这里我们介绍DBCO 连接 DBCO 代码 DATA: OREF TYPE REF TO CX_ROOT,TXT TYPE STRING,M_WERKS TYPE WERKS_D,STRCDATE TYPE C LENGTH 10. DATA:BEGIN OF T_ITEM OCCURS 0, CDATE TYPE C LENGTH 10, END OF T_ITEM. M…

八款禁用U盘的软件

八款禁用U盘的软件禁用U盘的软件通常用于企业或组织环境中,以防止未经授权的USB设备接入计算机,从而保护数据安全、防止病毒传播或限制员工使用U盘。以下是一些可以禁用U盘的软件推荐。 1、安企神软件 权限设置:为终端电脑设置使用权限&…

Terraform 语法配置

配置语法 Terraform 的配置文件都是以 .tf 为后缀Terraform 支持两种模式 HCL、JSON Provider 插件 providers 地址:Terraform Registry Terraform 通过 provider 管理基础设施,使用 provider 与云供应商 API 进行交互,每个 Provider 都包含…

OSCP靶场-- Sybaris

OSCP靶场–Sybaris 考点(redis MODULE LOAD命令执行) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.158.93 -sV -sC -Pn --min-rate 2500 -p- Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-11 04:24 EDT Nmap scan report for 192.168.158.93…

差分数组加前缀和

暴力 #include <bits/stdc.h> using namespace std; char arr[(int)1e5*25]; //要强制转换为int int main() {//cout << (char)(a7);long long len0,op0;cin >> len >> op;cin >> arr; //cout << op;//cout << arr;int inx[(int)…

6.12物联网RK3399项目开发实录-驱动开发之UART 串口的使用(wulianjishu666)

嵌入式实战开发例程【珍贵收藏&#xff0c;开发必备】&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1tkDBNH9R3iAaHOG1Zj9q1Q?pwdt41u UART 使用 简介 AIO-3399J 支持 SPI 桥接/扩展 4 个增强功能串口&#xff08;UART&#xff09;的功能&#xff0c;分别为 UA…

【UE Niagara】光束发射模块学习

效果 步骤 1. 新建一个Niagara发射器&#xff0c;使用Empty模板&#xff0c;这里命名为“NE_Beam” 打开“NE_Beam”&#xff0c;添加条带渲染器 添加“Spawn Burst Instantaneous”模块&#xff0c;设置生成数量为100 添加一个“Beam Emitter Setup”模块 再添加一个“Spawn …

基于STM32G030F6部分芯片烧录程序后无法识别也不运行之救砖笔记

基于STM32G030F6部分芯片烧录程序后无法识别也不运行之救砖笔记 目录 问题背景思路总结 问题背景 使用STM32G030F6这颗ic作设计&#xff0c;程序中有设置L1级读保护。首次烧写全部显示成功&#xff0c;打算再次烧录时有极个别已经找不到芯片&#xff0c;其中不能再次烧入的板子…

什么是 DNS 记录?

DNS记录是存储在DNS服务器上的文本指令。它们表明与一个域名相关的IP地址&#xff0c;也可以提供其他信息。DNS记录是计算机用语&#xff0c;指域名系统&#xff08;Domain Name System&#xff0c;简称DNS&#xff09;中的一条记录&#xff0c;这条记录存储于DNS服务器中。每一…

数通学员分享丨在誉天学习数通课程怎么样

哈喽大家好&#xff0c;我是来自誉天的田同学&#xff0c;我与誉天的故事是2022年8月开始的。 2022年六月毕业之后&#xff0c;由于对自身专业的不喜欢&#xff08;学的工程&#xff09;&#xff0c;我对未来非常的迷茫&#xff0c;这个时候我接触到了誉天&#xff0c;开启了我…

稀碎从零算法笔记Day40-LeetCode:加油站

题型&#xff1a;贪心、模拟、数组 链接&#xff1a;134. 加油站 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第…

Harmony鸿蒙南向驱动开发-PIN接口使用

功能简介 PIN即管脚控制器&#xff0c;用于统一管理各SoC的管脚资源&#xff0c;对外提供管脚复用功能&#xff1a;包括管脚推拉方式、管脚推拉强度以及管脚功能。 PIN接口定义了操作PIN管脚的通用方法集合&#xff0c;包括&#xff1a; 获取/释放管脚描述句柄&#xff1a;传…

【C++第三阶段】stackqueue容器

以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 stack容器queue容器 stack容器 是什么&#xff1f;功能是什么&#xff1f;常用接口是什么&#xff1f;局限性有哪些&#xff1f;优势又有哪些&#xff1f; 栈容器&#xff0c;先进…