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

目录

知识点:

例题 :


知识点:

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

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

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

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

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

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

判定-条件覆盖:设计足够多的测试用例,使判断中“每个条件的所有可能取值至少执行一次”(条件覆盖),与此同时还保证“每个判断本身所有结果也至少执行一次”(判定覆盖)即同时满足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.rhkb.cn/news/320319.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

保研面试408复习 3——操作系统

文章目录 1、操作系统一、进程有哪几种状态&#xff0c;状态之间的转换、二、调度策略a.处理机调度分为三级&#xff1a;b.调度算法 标记文字记忆&#xff0c;加粗文字注意&#xff0c;普通文字理解。 为什么越写越少&#xff1f; 问就是在打瓦。(bushi) 1、操作系统 一、进程…

企业网站 | 被攻击时该怎么办?

前言 每天&#xff0c;数以千计的网站被黑客入侵。发生这种情况时&#xff0c;被入侵网站可用于从网络钓鱼页面到SEO垃圾邮件或者其它内容。如果您拥有一个小型网站&#xff0c;很容易相信黑客不会对它感兴趣。不幸的是&#xff0c;通常情况并非如此。 黑客入侵网站的动机与所…

后端方案设计文档结构模板可参考

文章目录 1 方案设计文档整体结构2 方案详细设计2.1 概要设计2.2 详细设计方案2.2.1 需求分析2.2.2 业务流程设计2.2.3 抽象类&#xff1a;实体对象建模2.2.4 接口设计2.2.5 存储设计 1 方案设计文档整体结构 一&#xff0c;现状&#xff1a;把项目的基本情况和背景都说清楚&a…

MAC 本地搭建Dify环境

Dify 介绍 Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务&#xff08;Backend as Service&#xff09;和 LLMOps 的理念&#xff0c;使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员&#xff0c;也能参与到 AI 应用的定义和数据运营过…

Voice Conversion、DreamScene、X-SLAM、Panoptic-SLAM、DiffMap、TinySeg

本文首发于公众号&#xff1a;机器感知 Voice Conversion、DreamScene、X-SLAM、Panoptic-SLAM、DiffMap、TinySeg Converting Anyones Voice: End-to-End Expressive Voice Conversion with a Conditional Diffusion Model Expressive voice conversion (VC) conducts speak…

数塔问题(蛮力算法和动态规划)

题目&#xff1a;如下图是一个数塔&#xff0c;从顶部出发在每一个节点可以选择向左或者向右走&#xff0c;一直走到底层&#xff0c;要求找出一条路径&#xff0c;使得路径上的数字之和最大&#xff0c;及路径情况。(使用蛮力算法和动态规划算法分别实现&#xff09; #include…

c语言从入门到函数速成(1)

温馨提醒&#xff1a;本篇文章适合人群&#xff1a;刚学c又感觉那个地方不怎么懂的同学以及以及学了一些因为自身原因停学一段时间后又继续学c的同学 好&#xff0c;正片开始。 主函数 学c时最先学的是我们c语言程序的主体函数&#xff0c;c的主函数有两种写法&#xff0c;这…

【Docker】★★★

docker 的网络模式 ●host模式&#xff1a;使用 --nethost 指定 容器与宿主机共享网络命名空间、ip和端口 ●container模式&#xff1a;使用 --netcontainer:NAME_or_ID 指定 新建的容器共享已有容器的网络命名空间、ip和端口 ●none模式&#xff1a;使用 --netnone 指定 不进行…

被问了n遍的小程序地理位置权限开通方法

小程序地理位置接口有什么功能&#xff1f; 在平时我们在开发小程序时&#xff0c;难免会需要用到用户的地理位置信息的功能&#xff0c;小程序开发者开放平台新规要求如果没有申请开通微信小程序地理位置接口( getLocation )&#xff0c;但是在代码中却使用到了相关接口&#…

macOS sonoma 14.4.1编译JDK 12

macOS sonoma 14.4.1编译JDK 12 环境参考文档开始简述问题心路历程着手解决最终解决(前面有点啰嗦了&#xff0c;可以直接看这里) 记录一次靠自己看代码解决问题的经历(总之就是非常开心)。 首先&#xff0c;先diss一下bing&#xff0c;我差一点就放弃了。 环境 macOS sonom…

分布式与一致性协议之Raft算法(二)

Raft算法 什么是任期 我们知道&#xff0c;议会选举中的领导者是有任期的&#xff0c;当领导者任命到期后&#xff0c;需要重新再次选举。Raft算法中的领导者也是有任期&#xff0c;每个任期由单调递增的数字(任期编号)标识。比如&#xff0c;节点A的任期编号是1。任期编号会…

自定义类型

引言&#xff1a; C语言分为&#xff1a;1、内置类型 2、自定义类型&#xff1a; 1》结构体——每个成员有自己的空间 2》枚举型——定义多个常量 3》联合体——所有成员共用一快内存空间 一、结构体&#xff1a; 单独写过了一篇 关于结构体的介绍以及使用 二、 枚举型&…

论文辅助笔记:Tempo之modules/prompt.py

1 get_prompt_param_cls 2 get_prompt_value 3 Prompt 类 3.1 _init_weights 3.2 forward

表空间的概述

目录 表空间的属性 表空间的类型 永久性表空间(PermanentTablespace) 临时表空间(Temp Tablespace ) 撤销表空间(Undo Tablespace) 大文件表空间(BigfileTablespace) 表空间的状态 联机状态(Online) 读写状态(Read Write) 只读状态(Read) 脱机状态(Offline) Oracle从…

Elasticsearch初步认识

Elasticsearch初步认识 ES概述基本概念正向索引和倒排索引IK分词器ik_smart最少切分ik_max_word为最细粒度划分 ES索引库基本操作对索引库操作对文档操作 ES概述 Elasticsearch&#xff0c;简称为 ES&#xff0c;是一款非常强大的开源的高扩展的分布式全文检索引擎&#xff0c…

谁能取代迈巴赫,征服互联网安全大佬周鸿祎?

‍作者 |老缅 编辑 |德新 4月18日&#xff0c;「周鸿祎卖车」登上了微博热搜。这位360创始人、董事长发微博称&#xff1a;自己做了一个艰难的决定&#xff0c;将把陪伴9年的迈巴赫600给卖掉。 随后&#xff0c;他解释道&#xff1a;「这是因为我需要体验新一代车的感觉。古人…

opencv图像处理详细讲

传统的计算机视觉框架&#xff1a; SimpleCV BoofCV Dlib JavaCV 深度学习计算机视觉框架 Caffe Tensorflow Pytorch Paddlepaddle Keras 深度视觉计算机视觉框架 OpenVINO TensorRT onnxruntime Deepface YOLO/DarkNet mmdetection Paddle-detection/seg/ocr …

重学java 29.经典接口

光阴似箭&#xff0c;我好像跟不上 —— 24.5.6 一、java.lang.Comparable 我们知道基本数据类型的数据(除boolean类型外)需要比较大小的话&#xff0c;直接使用比较运算符即可&#xff0c;但是引用数据类型是不能直接使用比较运算符来比较大小的。那么&#xff0c;如何解决这个…

ECC 号码总结

1、问题背景 在手机开发过程中&#xff0c;经常遇见各种紧急号码问题&#xff0c;在此特意总结下紧急号码相关知识。 2、紧急号码来源 在MTK RILD EccNumberSource.h中&#xff0c;定义了如下几种紧急号码来源。 按优先级排序介绍如下 2.1、SOURCE_NETWORK 网络下发&#xff…

本地大语言模型LLM的高效运行专家 | Ollama

Ollama简介 Ollama是一个开源的大型语言模型服务工具&#xff0c;它帮助用户快速在本地运行大模型。通过简单的安装指令&#xff0c;用户可以执行一条命令就在本地运行开源大型语言模型&#xff0c;如Llama 2。Ollama极大地简化了在Docker容器内部署和管理LLM的过程&#xff0…