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

目录

知识点:

例题 :


知识点:

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

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

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

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

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

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

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

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

相关文章

C++例题:大数运算---字符串相加(使用数字字符串来模拟竖式计算)

1.代码速览 class Solution2 { public:string addStrings(string num1, string num2){//end1和end1是下标int end1 num1.size() - 1;int end2 num2.size() - 1;string str;//下标(指针)从后向前走,走到头才可以结束,所以是end>0int next 0;while (end1 > 0 || end2 &…

添加自定义内容致远oa门户

修改门户内容 甲方需要再主页添加按钮&#xff0c;其实也是可以的&#xff0c;这个配置还不好搞&#xff0c;在后端进行了配置开发

微积分 --- 偏导数,方向导数与梯度(二)

方向导数 上图为一温度图&#xff0c;所反映的是加利福利亚洲和内华达州在十月的一天下午三点的温度。其中&#xff0c;图中的每一点都是温度T关于x,y的函数&#xff0c;即T(x,y)。对于图中的Reno市而言&#xff0c;沿着x方向的偏导反映的是温度沿着x方向&#xff0c;即沿着东方…

Docker 的网络实现

简介 标准的 Docker 支持以下 4 类网络模式&#xff1a; 1&#xff09;host 模式&#xff1a;使用 --nethost 指定 2&#xff09;container 模式&#xff1a;使用–netcontainer:NAME_or_ID 指定 3&#xff09;none模式&#xff1a;使用 --netnone 指定 4&#xff09;bridge 模…

19 内核开发-内核源码编译

19 内核开发-内核源码编译 (1)开始准备 安装好virtual box ubuntu 系统后&#xff0c;即可下载内核代码&#xff0c;进行编译 历史内核源码地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/kernel/v5.x/ 下载 linux-5.10.102.tar.gz 的包,可以使用wget 命令 创建编译目…

Java二维码、条码生成及解码工具类

功能描述 生成二维码、条码解码使用谷歌的zxing依赖 引入依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.4.1</version> </dependency><dependency><groupId>…

帆软报表9.0连接达梦数据库

一、将驱动复制到帆软安装目录下 二、配置数据库连接 注意&#xff1a;dm.jdbc.driver.DmDriver是直接在文本框输入的 进行以上两部就能连接达梦数据库了

接口自动化测试之-requests模块详解

一、requests背景 Requests 继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池&#xff0c;支持使用cookie保持会话&#xff0c;支持文件上传&#xff0c;支持自动确定响应内容的编码&#xff0c;支持国际化的 URL 和 POST 数据自动编码。 二、requests安装 利用p…

(二)JSP教程——taglib指令

创建标签文件 首先创建一个Web项目&#xff0c;在webapp/WEB-INF目录下创建一个tags文件夹 在tags文件夹中创建一个oddNumberSum.tag文件&#xff0c;Tag文件时扩展名为.tag的文本文件&#xff0c;其结构和JSP文件非常相似&#xff0c;该文件的目录结构如图所示 创建Tag文件的…

SOLIDWORKS Electrical电气智能零部件的运用

电气2D向电气3D转型&#xff0c;3D模型无疑是重中之重&#xff0c;精准、正确的3D模型有利于电线长度、空间大小、耗材的计算。而线槽、导轨因为要根据实际情况裁剪&#xff0c;所以即使同一规格的线槽、导轨&#xff0c;在装配时也得根据实际情况&#xff0c;修改长度&#xf…

Adobe Illustrator 2024 for Mac:矢量图形设计软件

Adobe Illustrator 2024 for Mac是一款专为Mac用户设计的行业标准矢量图形设计软件。该软件以其卓越的性能和丰富的功能&#xff0c;为设计师和艺术家们提供了一个全新的创意空间。 作为一款矢量图形软件&#xff0c;Adobe Illustrator 2024 for Mac支持创建高质量的矢量图形&a…

视频改字祝福 豪车装X系统源码uniapp前端小程序源码

视频改字祝福 豪车装X系统源码uniapp前端小程序源码&#xff0c;创意无限&#xff01;AI视频改字祝福&#xff0c;豪车装X系统源码开源&#xff0c;打造个性化祝 福视频不再难&#xff01; 想要为你的朋友或家人送上一份特别的祝福&#xff0c;让他们感受到你的真诚与关怀吗&am…