条件覆盖和条件组合覆盖测试设计-实验八例题

目录

条件覆盖

判定-条件覆盖

条件组合覆盖

实验内容:         以银行内部转账为实例,针对内部转账业务逻辑代码进行分析,运用条件覆盖和条件组合覆盖进行测试用例设计。

实验过程:


条件覆盖

条件覆盖(Condition Coverage指的是设计足够多的测试用例,使判定语句中的每个逻辑条件取真值与取假值至少出现一次,例如,在上一个实验的案例中,对于判定语句IF(a>1 OR c<0)中存在a>1c<0 2个逻辑条件,设计条件覆盖测试用例时,要保证a>1c<0”“值至少出现一次。下面设计条件覆盖测试用例,在该程序中,有2个判定语句,每个判定语句有2个逻辑条件,共有4个逻辑条件,使用标识符标识各个逻辑条件取真值与取假值的情况,如表1所示。


在表1中,使用S1标记x>0取真值(即x>0的情况,-S1标记x>0取假值(即x>0不成的情况。同使S2S3S4y<0x>2z>0取真值,使用-S2-S3-S4标记y<0x>2z>0取假值,最后得到执行条件判断语句的8种状态,设计测试用例时,要保证每种状态都至少出现一次。设计测试用例的原则是尽量以最少的测试用例达到最大的覆

盖率,则该段程序的条件覆盖测试用例如表2


判定-条件覆盖

         判定-件覆盖(Condition/Decision Coverage求设计足够多的测,使得定语句中所有条件的可能取值至少出现一次,同时,所有判定语句的可能结果也至少出现一次。

例如IF(a>1 AND c<1)a>1c<1测试用例时,要保证a>1c<1两个条件取“真”“假”值至少一次,同时,判定语句IF(a>1 AND c<1)假”值也至少出现一次。这就是判定-条件覆盖,它弥补了判定覆盖和条件覆盖的不足之处。

根据判定-条件覆盖原则,为该程序段设计判定-条件覆盖测试用例,如表3所示。

3   判定-条件覆盖测试用例

在表3中,条件1是指判定语句“IF x>0 AND y<02是指判定语句“IF x>2 OR z>0,条件判断的值0表示“假”,1表示“真”。表3-43个测试用例满足了所有条件可能取值至少出现一次,以及所有判定语句可能结果也至少出现一次的要求。

相比于条件覆盖、判定覆盖,判定-覆盖弥补了两者的不足之处,但是由于判定-条件覆盖没有考虑判定语句与条件判断的组合情况,其覆盖范围并没有比条件覆盖更全面,判定-条件覆盖也没有覆盖acd路径,因此判定-覆盖仍旧存在遗漏测试的情况。

条件组合覆盖

条件组合(Multiple Condition Coverage指的是设计足够多的测试用例,使判定语句中每个条件的所有可能至少出现一次,并且每个判定语句本身的判定结果也至少出现一次,它

判定-条件覆的差别是,条合覆盖不简单地要求每个条件都现“真”与“假两种结果,而是要求让这些结果的所有可能组合都至少出现一次。

仍以之前案例程序为例,该程序中共有4个条件:x>0y<0x>2z>0我们依然用S1S2S3S4记这4条件成立,用-S1-S2-S3-S4记这些条件不成立。由于这4个条件每个条件都有取“真”“假”两个值,因此所有条件结果的组合有24=16种,如4所示。


44所有果的组情况过分可以268134种情况是不存在的,这几种情况要求x>0不成立,x>2成立,这2果相悖,因此最终所有条件组合情况有12种。根据这12种情况设计测试用例,具体如表5所示。


512试用例,12个测试例覆盖4个条结果的所组合,与-条件覆盖相比,条件组合覆盖包括了所有判定-条件覆盖,此它的盖范围广。但是当程序中条件比较多时,条件组合的数量会呈指数型增长,组合情况非常多,要设计的测试用例也会增加,这样反而会使测试效率降低。

验内容:
         以银行内部转账为实例,针对内部转账业务逻辑代码进行分析,运用条件覆盖和条件组合覆盖进行测试用例设计。

         内部转账用于处理发起户口号和接收户口号都是内部账户的系统内资金转账业务,主要用于财务资金的划拨、未实现自动清算业务的清算资金的划拨。

         1内部转账发起是指:发起行发出内部资金交易,并换人复核,满足条件时需会计主管授权。

         2内部转账接收是指:内部资金交易接收方根据接收方确认方式,对交易进行接收经办,满足条件的需复核或授权。

         确定接收方的入账流程,“确认方式”分为以下三种:
         1不需接收方确认,即发起方发起后自动记发起方和接收方的一套账务,接收方无须再做接收动作。

        (2需接收方确认,即接收方接收时不能更改接收信息,只能依据发起方输入的信息入账或退发起方。以目前的处理方式,接收经办→入账(金额小于100元),大于100万元时为接收经办+接收授权→入账。

        (3需接收方经办,即接收方接收时可以更改接收信息,执行入账或退发起行。以目前的处理方式,接收经办+接收复核→入账(金额小于100元),大于100元时为接收经办+接收复核+接收授权→入账。

内部转账权限控制如表6所示。

以下为银行内部转账控制的部分伪代码实现:

验过程:

1. 测试分析
1根据银行内部转账业务描述,分析内部转账流程,包括主流程、分支流程以及正常流程、异常流程。

2)模拟内部转账场景:触发内部转账的条件,不同条件是否走不同的转账流程。(3)数据项检查:数据项的计算规则,数据项后台判断逻辑。

2. 测试设计
根据内部转账业务需求,设计出程序流程图,并对程序流程图做节点标记,分析流程图

的判定条件与结果。

A~Q为测试路径编号,在下面的测试用例分析中将根据测试路径编号确定测试用例的业务流向。

         根据图2-1所示的流程图,标记出节点。根据条件覆盖方法来进行分析,得到如表2所示的符合条件覆盖标准的测试用例。

S(2)条件组合覆盖

对于判定1

条件转账金额>100W   取真为T1

条件转账金额<=100W  取假为F1

对于判定2

条件“确认方式”==1

取真为T2

条件“确认方式”==2

取真为T3

条件“确认方式”==3

取真为T4

条件T2T3T4都不成立

取假为F2

对于判定3

        ①条件“确认方式”==2  取真为T5

        ②条件“确认方式”==3  取真为T6

        ③条件T5T6都不成立 取假为F3
通过设计足够多的测试用例,使得被测试程序中的每个判断的所有可能条件取值的组合

少出现一次。在这个银行内部转账流程上,判定1条件和判定23的条件分别构成组合。由于业务特定的逻辑,其组合简化为7而不是14

         判定1的条件T1和判定3中的各个条件构成组合,即3个组合,而不是2×3=6个组合;

         判定1的条件F1和判定2中的各个条件构成组合,即4合,而不是2×4=8个组合。

因此根据条件组合覆盖,总共有7试用例完成组合覆盖,如表3所示。这里不考虑异常情况,如转账金额<=0的情况。遇到这种况会异常退出,也法进入下一判定2或判定3,和组合也没关系。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java中XML格式转换

之前很少用xml格式&#xff0c;但是有些老系统还是需要使用xml格式进行对接&#xff0c;所以干脆总结一下&#xff0c;方便以后使用。 关于xml: 即可扩展标记语言&#xff0c;xml是互联网数据传输的重要工具&#xff0c;它可以跨越互联网任何的平台&#xff0c;不受编程语言和操…

Word中插入mathtype的行内公式显示不全,设置行距,最小值

Word中插入mathtype的行内公式显示不全 如下图&#xff1a;公式上下被遮住 解决方式&#xff1a; 设置所在段落的行距&#xff1a;最小值--xx磅。同时取消勾选 “如果定义了文档网格&#xff0c;则对齐到网格” 处理后效果&#xff1a;

Flash芯片W25Q系列驱动注意事项以及跨页读写操作

一、硬件 二、W25Q64简介与API函数 1) W25Q有很多系列&#xff0c;其区别就是存储容量不一样 以我现在使用的举例W25Q64 64指的是64Mbit&#xff0c;不是64M字节要区分清楚 64Mbit 8Mbyte,所以总的容量能存储8MByte 2) W25q64的存储分为块、扇区、页 一页&#xff1…

人类偏好导向:DPO技术重塑SDXL-1.0图像生成

引言 在AI领域&#xff0c;适应和理解人类偏好一直是技术发展的重要方向。斯坦福大学研究团队最近提出的Diffusion-DPO方法&#xff0c;旨在将这一理念应用于图像生成模型&#xff0c;特别是在文本到图像的转换领域。 Huggingface模型下载: https://huggingface.co/mhdang/ A…

windows搭建MySQL 8.25主从配置

1.本次搭建的版本 mysql-8.0.25-win-x64 2.在解压完成后的文件内并没有对应的my.ini的配置文件这个my.ini是需要的主配置文件需要自行创建。 注&#xff1a;安装路径及数据存放路径需根据实际安装情况进行修改&#xff08;其它配置信息可结合实际情况进行修改&#xff09; 3.在…

【Vue】响应式中数组的特殊处理

Vue 响应式中对数组的处理 前两节的内容&#xff1a; Vue 数据劫持 Vue 响应式初步 0. 为什么需要对数组特殊处理&#xff1f; 在响应式初步那一篇文章的最后&#xff0c;我们提到过&#xff0c;需要对数组进行特殊的处理&#xff0c;为什么&#xff1f; 如果仍然用我们之…

vue3(六)-基础入门之自定义组件与插槽、ref通信

一、全局组件 html: <div id"app"><mytemplace></mytemplace> </div>javascript: <script>const { createApp } Vueconst app createApp({})app.component(mytemplace, {template: <div><button>返回</button>…

Resnet

是什么样的原因导致更深的网络导致的训练效果更差呢&#xff1f; 梯度消失和梯度爆炸 随着网络层数的不断加深&#xff0c;梯度消失和梯度爆炸的现象会越来越明显&#xff0c; 梯度消失&#xff1a;假设每一层的误差梯度是一个小于1的数&#xff0c;那么在我们反向传播过程中…

<软考高项备考>《论文专题 - 26 整合管理(4) 》

6 过程5-监控项目工作 6.1 问题 4W1H过程1-制定项目章程做什么跟踪、审查和报告整体项目进展&#xff0c;以实现项目管理计划中确定的绩效目标的过程&#xff1b;作用&#xff1a;①让干系人了解项目的当前状态并认可为处理绩效问题而采取的行动;②通过成本和进度预测&#x…

Docker 高级网络 - 自定义网桥实现容器间通信

目录 一、容器间容通信 1.1、解释 1.2、网络相关操作指令 1.2.1、查看 docker 的网络列表 1.2.2、创建网络自定义桥 1.2.3、删除某一个网络 1.2.4、查看某一个网络细节 1.2.5、运行多个容器在指定的网络中 一、容器间容通信 1.1、解释 简单来讲就是&#xff1a;容器间通…

华为Auth-HTTP服务器任意文件读取漏洞

华为Auth-Http Server 1.0存在任意文件读取&#xff0c;攻击者可通过该漏洞读取任意文件。 1.漏洞级别 高危 2.漏洞搜索 fofa server"Huawei Auth-Http Server 1.0"3.漏洞复现 构造 GET /umweb/passwd HTTP/1.1 Host: User-Agent: Mozilla/5.0 (Macintosh; I…

APP开发详解:数字药店系统源码

数字药店系统的兴起&#xff0c;不仅为消费者提供了更加便捷的购药体验&#xff0c;也为药店管理和药品销售带来了全新的机遇。 一、明确系统的基本功能&#xff1a; 1.用户注册与登录 2.药品浏览与搜索 3.购物车与结算。 4.在线支付与订单管理 二、开发环境与技术栈选择 …

blackbox黑盒监控部署(k8s内)tensuns专用

一、前言 部署在k8s中需要用到deployment、configmap、service服务 二、部署 创建存放yaml的目录 mkdir /opt/blackbox-exporter && cd /opt/blackbox-exporter 编辑blackbox配置文件&#xff0c;使用configmap挂在这 vi configmap.yaml apiVersion: v1 kind: Confi…

c语言-表达式求值

目录 前言一、隐式类型转换1.1 整型提升 二、算术转换三、操作符的属性四、问题表达式总结 前言 表达式求值的顺序一部分由操作符的优先级和结合性决定。 有些表达式的操作数在求值的过程中可能需要转换为其他类型 一、隐式类型转换 隐式类型转换是在编译器自动进行的类型转换…

TYPE C 接口知识

1、Type C 概述 Type-C口有4对TX/RX分线&#xff0c;2对USBD/D-&#xff0c;一对SBU&#xff0c;2个CC&#xff0c;另外还有4个VBUS和4个地线。 当Type-C接口仅用作传输DP信号时&#xff0c;则可利用4对TX/RX&#xff0c;从而实现4Lane传输&#xff0c;这种模式称为DPonly模式…

手持机定制_手持终端_rfid手持终端设备开发解决方案

智物通讯PDA手持终端方案以联发科64位八核MT6771芯片为核心&#xff0c;配备Android 10系统&#xff0c;以提供更高的运行速度和更低的功耗。存储器方面&#xff0c;则有2GB LPDDR332GB eMMC&#xff0c;同时也可选择4GB64GB、8GB128GB的配置&#xff0c;以确保设备的顺畅运行。…

PYTHON基础:python-plotly模拟随机过程

python-plotly模拟掷骰子随机过程 虽然投掷骰子看起来是随机事件&#xff0c;但只要使用正确的算法进行模拟&#xff0c;实际上它可以被精确地预测和分析。在数学领域&#xff0c;人们常常使用概率论和统计学知识来解释各种随机事件的规律和特征。而在赌场等场合&#xff0c;骰…

【教程】将Python转为C语言并编译生成二进制文件

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 本教程以DGL版本的GCN为例&#xff0c;其他也相似。 1、安装cython、gcc&#xff1a; sudo apt install cython gcc -y2、安装DGL、PyTorch&#xff1a; pip3 install torch torchvision torchaudio pip insta…

电商数据分析-03-电商数据采集

参考 最最最全数据仓库建设指南&#xff0c;速速收藏&#xff01;&#xff01; 第1章 数据仓库概念 数据仓库规划 1.1 数仓搭建 我们这里所说的数据仓库&#xff0c;是基于大数据体系的&#xff0c;里面包含标签类目&#xff0c;区别于传统的数据仓库。下面我们来将这张图分解…

信息网络协议基础-IPv6协议

文章目录 概述为什么引入IP服务模型IPv4的可扩展性问题解决方法***CIDR(Classless Inter-Domain Routing, 无类别域间寻路)前缀汇聚***前缀最长匹配***NAT(网络地址转换)存在的问题解决方案路由表配置***局限性IPv6协议头标IPv6地址表示前缀类型单播地址链路局部地址(Link-Loca…