白盒测试的测试用例设计方法

白盒测试的测试用例设计方法一白盒测试的主要技术对简单的程序流程而言,确定程序的路径有多少条可通过:语句覆盖(覆盖率100%);分支(判定)覆盖(覆盖率85%);条件覆盖;分支-条件覆盖;条件组合覆盖;路径覆盖(覆盖率80%)来确定,这也是白盒测试的主要技术。1.1语句覆盖(覆盖率100%)使程序中每个语句至少执行一次1.2分支(判定)覆盖(覆盖率85%)使每个判定的真假分支都至少执行一次1.3条件…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一 白盒测试的主要技术

对简单的程序流程而言,确定程序的路径有多少条可通过:语句覆盖(覆盖率100%);分支(判定)覆盖(覆盖率85%);条件覆盖;分支-条件覆盖;条件组合覆盖;路径覆盖(覆盖率80%)来确定,这也是白盒测试的主要技术。

1.1语句覆盖(覆盖率100%)

使程序中每个语句至少执行一次
在这里插入图片描述
在这里插入图片描述

1.2分支(判定)覆盖(覆盖率85%)

使每个判定的真假分支都至少执行一次
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3条件覆盖

使每个判定的每个条件的可能取值至少执行一次
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1

1.4分支-条件覆盖

选取足够多的测试用例,使判断中的每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次。
在这里插入图片描述
在这里插入图片描述

1.5条件组合覆盖

所有可能的条件取值组合至少执行一次
在这里插入图片描述
在这里插入图片描述

1.6路径覆盖(覆盖率80%)

在这里插入图片描述

二、白盒测试的辅助技术

对简单的程序流程而言,可通过以上方法确定程序的路径有多少条,但对复杂的程序,必须通过程序的控制流图来确定程序的路径。基本路径法设计测试用例:

1)画出控制流图

控制流图的基本符号:
在这里插入图片描述
将流程图映射成控制流图:
在这里插入图片描述
在控制流图中,每一个圆称为流图的结点,代表一条或多条语句。流图中的箭头称为边或连接,代表控制流

2)计算圈(环路)复杂度

方法1:V(G)=区域数
方法2:V(G)=边数 – 节点数 + 2
方法3:V(G)=判断节点数 + 1
在这里插入图片描述

3)整理基本路径集合

4)导出测试用例

三 实例

在这里插入图片描述

1)画控制流图

在这里插入图片描述

2)计算圈(环路)复杂度

V(G) = 4 + 1,由此得出共5条独立路径

3)整理基本路径集合

4)导出测试用例

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182959.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微服务架构-实现技术之三大关键要素3服务可靠性:服务访问失败的原因和应对策略+服务容错+服务隔离+服务限流+服务降级

    微服务架构-实现技术之三大关键要素3服务可靠性:服务访问失败的原因和应对策略+服务容错+服务隔离+服务限流+服务降级目录一、服务访问失败的原因和应对策略(一)服务访问失败的4大原因和分类1硬件失败2.分布式环境的固有原因3.服务自身失败4.服务依赖失败(二)服务访问的雪崩效应(三)服务访问失败的应对策略二、服务容错1.Failover2.Failback3.Failsafe4.Failfast5.Forking6.Broadcast三、服务隔离…

    2022年4月28日
    31
  • java中使用Jedis操作Redis实例[通俗易懂]

    java中使用Jedis操作Redis实例[通俗易懂]要想在Java中连接Redis,并进行操作,由两种方式,一种是springdataredis,它是由spring集成的,不支持集群,一种是官方推荐的jedis,支持集群,其他功能差不多一样,这里我们介绍jedis操作实例,以下是使用Jedis的具体步骤:1、如果是在Maven项目中,在pom.xml中增加如下语句,如果不是Maven项目下载包导入项目即可:…

    2025年10月13日
    3
  • 别人的收藏_自己的qq收藏别人是否能看到

    别人的收藏_自己的qq收藏别人是否能看到0DAY 0daydivxz数据库0dayGamezHowtotellNFOrceEntertainmentTLF0DayCheckIndexTLF资讯网UGiA0daysearchengine_2002-2005梦幻0Day~game阿拉下载龙族-北京站-MCSYSTEM2004 BBS  下载论坛

    2022年10月8日
    2
  • forkjoin用法_fork join_none

    forkjoin用法_fork join_noneFork/Join是一个分而治之的任务框架,如一个任务需要多线程执行,分割成很多块计算的时候,可以采用这种方法。动态规范:和分而治之不同的是,每个小任务之间互相联系。工作密取:分而治之分割了每个任务之后,某个线程提前完成了任务,就会去其他线程偷取任务来完成,加快执行效率。同时,第一个分配的线程是从队列中的头部拿任务,当完成任务的线程去其他队列拿任务的时候是从尾部拿任务,所以这样就避免了竞争。在Java的Fork/Join框架中,使用两个类完成上述操作:  1.ForkJoinTask:我们要使用F

    2025年8月15日
    2
  • postMessage的使用

    postMessage的使用postMessage是H5的API,用来解决跨页面通信的。postMessage的使用分为发送方和接收方。发送方的代码用法如下:otherWindow.postMessage(message,targetOrigin,[transfer]);otherWindow是接收方的window对象。可以通过以下几种方法获得,例如window.open()方法返回的值就是打开页面的window对象,或…

    2022年7月13日
    35
  • 计算机复试面试题总结「建议收藏」

    计算机复试面试题总结「建议收藏」面试问题之编程语言1。C++的特点是什么?封装,继承,多态。支持面向对象和面向过程的开发。2.C++的异常处理机制?抛出异常和捕捉异常进行处理。(实际开发)3.c和c++,java的区别?c是纯过程,c++是对象加过程,java是纯面向对象的4.纯虚函数?被virtual修饰的成员函数,再基类不能实现,而他的实现放到派生类中实现。5.什么是内存泄漏?没有de…

    2022年6月4日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号