软件测试与管理-白盒测试-逻辑覆盖法例题

2024-05-07 02:52

本文主要是介绍软件测试与管理-白盒测试-逻辑覆盖法例题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

知识点:

例题 :


知识点:

语句覆盖:设计足够多的测试用例,使得被测试程序中的“ 每条可执行语句至少被执行一次

  • 优点:可通过源码观察直观地得到测试用例,无须细分每个判定表达式。
  • 缺点:只对程序逻辑中的可执行语句的显式错误起作用,隐藏在程序中的其他错误无法准确测试。

判定覆盖:设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支至少被执行一次

  • 优点:测试的路径比语句覆盖多一倍,因此具有比语句覆盖更强的测试能力,而且判定覆盖与语句覆盖一样简单,无须细分每个判定即可得到测试用例。
  • 缺点:一般程序中的判断语句是由多个逻辑条件组合而成,因此仅仅判断其最终结果,而忽略每个条件的各种取值情况,必定会导致部分测试路径遗漏。

条件覆盖:设计足够多的测试用例,使得被测试程序中的每个判断语句中的“每个逻辑条件的可能值至少被满足一次”

  • 优点:一般而言条件覆盖比判定覆盖要强,因为条件覆盖使判定条件中每个条件都取到了不同的结果,而判定覆盖无法保证这一点。
  • 缺点:条件覆盖只能保证每个条件都取到不同的结果,但无法保证每种判定结果都满足。

判定-条件覆盖:设计足够多的测试用例,使判断中“每个条件的所有可能取值至少执行一次”(条件覆盖),与此同时还保证“每个判断本身所有结果也至少执行一次”(判定覆盖)即同时满足100%判定覆盖和100%条件覆盖的标准。

  • 优点:弥补了判定覆盖和条件 覆盖各自的缺陷
  • 缺点:当程序中还有多个判断结构时,容易出现不同的条件组合导致不同的结果,但判定/条件覆盖并未考虑这种条件组合的情况。

条件组合覆盖:又称组合覆盖,是指每个判断语句中的各个条件的各种可能组合都至少执行一次”,因此条件组合覆盖的测试用例可满足判定覆盖、条件覆盖以及判定/条件覆盖。

  • 优点:以同时满足判定覆盖、条件覆盖、判定/条件覆盖,可弥补三者的不足,从而对程序做更严格的测试,覆盖率更高。
  • 缺点:需要考虑程序中所有的判断结构,并将判断结构中的各条件的所有可能组合都至少执行一次,因此设计的 测试用例数量较多,执行所花费的时间也会更长。

路径覆盖:考虑所有可能执行的路径。

优点:路径覆盖是 6 种逻辑覆盖方法中 覆盖率最高的白盒测试用例设计方法。

缺点:当需要考虑程序中所有可能执行的路径,尤其是判断结果比较多时,测试用例的设计量就会很大,测试用例的编写就会比其他方法耗时更多,整个测试过程也会被拉长。


例题 :

//被测程序
1   int doWork(int x,int y,int z)
{
2       int k=0,j=0;
3       if((x>3)&&(z<10)){
4            k=x*y-1;
5           j=sqrt(k); }
6      if((x==4)||(y>5)){
7          j=x*y+10;
8          j=j%3; }
9      return j; }

1. 分析程序,画出程序流程图

2. 根据程序流程图对程序进行白盒测试:

① 语句覆盖,语句块,执行至少1次。

② 判定覆盖,判定节点,整体,真,假,执行至少1次。

③ 条件覆盖,判定节点,局部,真,假,执行至少1次。

④ 判定-条件覆盖,判定节点,整体,局部,真,假,执行至少1次。

⑤ 条件组合覆盖,判定节点,内部条件的组合,跨判定节点的条件组合无需考虑。

⑥ 路径覆盖,判定节点,真,假,至少执行1次。

3.测试用例:

(1)语句覆盖

用例编号

x

y

z

覆盖语句

Case1

4

6

8

3,4,5,6,7,8,9

(每行代码对应的编号)


(2)判定覆盖

x>3 && z<10 :P1

(x==4)||(y>5):  P2

用例编号

x

y

z

P1

P2

覆盖路径

Case1

5

3

9

T

F

abceghi

Case2

4

6

11

F

T

abdefhi


(3)条件覆盖

x>3  : C1

z<10 : C2

x==4 : C3

y>5  : C4

用例编号

x

y

z

C1

C2

C3

C4

P1

P2

覆盖路径

CASE1

4

6

8

T

T

T

T

T

T

abcefhi

CASE2

2

4

12

F

F

F

F

F

F

abdeghi

CASE3

5

4

8

T

T

F

F

T

F

abceghi

CASE4

4

6

12

T

F

T

T

F

T

abdefhi


 (4)判定-条件覆盖

用例编号

x

y

z

C1

C2

C3

C4

P1

P2

覆盖路径

CASE1

4

6

8

T

T

T

T

T

T

abcefhi

CASE2

2

4

12

F

F

F

F

F

F

abdeghi


(5) 条件组合覆盖

x>3 && z<10 :

x==4)||(y>5):   

用例编号

x

y

z

C1

C2

C3

C4

P1

P2

覆盖路径

CASE1

5

5

7

T

T

F

F

T

F

abceghi

CASE2

4

5

12

T

F

T

F

F

T

abdefhi

CASE3

5

6

12

F

F

F

T

F

T

abdefhi

CASE4

4

5

8

T

T

T

F

T

T

abcefhi

CASE5

5

6

8

T

T

F

T

T

T

abcefhi

CASE6

2

4

12

F

F

F

F

F

F

abdeghi


(6) 路径覆盖

用例编号

x

y

z

C1

C2

C3

C4

P1

P2

覆盖路径

CASE1

4

6

8

T

T

T

T

T

T

abcefhi

CASE2

2

4

12

F

F

F

F

F

F

abdeghi

CASE3

5

4

8

T

T

F

F

T

F

abceghi

CASE4

4

6

12

T

F

T

T

F

T

abdefhi

这篇关于软件测试与管理-白盒测试-逻辑覆盖法例题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/966117

相关文章

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

Python绘制土地利用和土地覆盖类型图示例详解

《Python绘制土地利用和土地覆盖类型图示例详解》本文介绍了如何使用Python绘制土地利用和土地覆盖类型图,并提供了详细的代码示例,通过安装所需的库,准备地理数据,使用geopandas和matp... 目录一、所需库的安装二、数据准备三、绘制土地利用和土地覆盖类型图四、代码解释五、其他可视化形式1.

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在