白盒测试技术_静态白盒测试

白盒测试技术_静态白盒测试覆盖率 它是度量测试完整性的一个工具,通常可以分为逻辑覆盖和功能覆盖。覆盖率=(被执行到的项数/总项数)*100%逻辑覆盖 逻辑覆盖是以程序内部的逻辑结构为基础设计测试用例的技术,属于白盒测试。      被测试模块的流程图语句覆盖 设计若干测试用例,运行被测程序,使每个可执行语句至少执行一次。 语句覆盖率=被评价到的语句数量/

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

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

覆盖率

  它是度量测试完整性的一个工具,通常可以分为逻辑覆盖和功能覆盖。覆盖率 =(被执行到的项数/总项数)* 100%

逻辑覆盖

  逻辑覆盖是以程序内部的逻辑结构为基础设计测试用例的技术,属于白盒测试。

白盒测试技术_静态白盒测试

            被测试模块的流程图

语句覆盖

  设计若干测试用例,运行被测程序,使每个可执行语句至少执行一次。

  语句覆盖率 = 被评价到的语句数量 / 可执行的语句数量 * 100%

  为了使每个语句都执行一次,程序的执行路径应该是sacbed,因此需要输入测试数据:A=2,B=0,X=4

判定覆盖

  又称为分支覆盖。设计若该测试用例,运行被测程序,使得每个判定的取真分支和取假分支至少评价一次。

  判定覆盖率 = 被评价到的判定分支个数 / 判定分支总数 * 100%

  上例中,能够分别覆盖sacbed和sabd的两组测试数据,或者可以分别覆盖sacbd和sabed的两组测试数据,都满足判定覆盖标准。【1】A=3,B=0,C=3(覆盖sacbd)【2】A=2,B=1 ,X=1(覆盖sabed)

条件覆盖

  设计若干测试用例,运行被测程序,使得每个判定的每个条件的可能取值至少评价一次。

  条件覆盖率 = 被评价到的条件取值的数量 / 条件去追的总数 * 100%

  上例中,a点的各种结果为A>1, A<=1, B=0, B !=0。b点的各种结果为:A=2, A !=2,X>1,X<=1。

  测试数据为【1】A=2,B=0,X=4  【2】A=1,B=1,X=1

条件/判定覆盖

  设计足够的测试用例,使得判定语句的每个条件的所有可能取值至少评价一次,同时每个判定语句本身的所有可能分支也至少评价一次。

  条件/判定覆盖率 = 被评价到的条件取值和判定分支的数量 / (条件取值总数 + 判定分支总数)* 100%

  测试数据为【1】A=2,B=0,X=4  【2】A=1,B=1,X=1

条件组合覆盖

  设计足够的测试用例,使得每个判定的所有可能条件取值至少评价一次。

  条件组合覆盖率 = 被评价到的条件取值组合数量 / 条件取值组合的总数 * 100%

  上例中有8种可能的条件组合(1)A>1,B=0(2)A>1,B !=0(3)A<=1,B=0(4)A<=1,B !=0(5)A=2,X>1(6)A=2,X<=1(7)A !=2,X>1(8)A !=2,X<=1

  测试用例【1】A=2,B=0,X=4 (针对1,5两种组合)【2】A=2,B=1,X=1(针对2,6两种组合)【3】A=1,B=0,X=2(针对3,7两种组合)【4】A=1,B=1,X=1(针对4,8两种组合)

路径覆盖

  设计足够的测试用例,执行程序中所有可能的路径。

  路径覆盖率 = 被执行到的路径数量 / 程序中的路径总数 * 100%

ESTCA覆盖

  错误敏感测试用例分析规则:

  规则1:对于A rel B(rel可以是<、=、>)型的分支谓词,应适当地选择A与B的值,使得测试执行到该分支语句时,A<B、A=B、A>B的情况分别出现一次。

  规则2:对于A rel C(relrel可以是<或>,A是变量,C是常量)型的分支谓词,当rel为<是,应适当地选择A的值,使得A=C-M(M是距C最小的容许正数,若A和C均为整型时,M=1)。同样,当rel为>时,应适当地选择A的值,使得A=C+M。

  规则3:对外部输入变量赋值,使其在每一测试用例中均有不同的值与符号,并与同一组则是用例中其他变量的值与符号不一致。

LCSAJ覆盖

路径测试

分支结构的路径测试

  • 嵌套分支结构:若有n个判定语句,则存在n+1条不同的路径,需要n+1个测试用例来覆盖它的每一条路径。
  • 串联型分支结构:若有n个判定语句,则存在2n条不同的路径,因此需要2n个测试用例来覆盖它的每一条路径。可以采用正交实验设计法来设计测试用例。

循环结构的路径测试

简单循环:使用下列测试集来测试简单循环,其中n是允许通过循环的最大次数。

白盒测试技术_静态白盒测试

  • 跳过循环
  • 只通过循环一次
  • 通过循环两次
  • 通过循环m次,其中m<n-1。
  • 铜鼓循环n-1次,n次,n+1次。

嵌套循环

白盒测试技术_静态白盒测试

  • 从最内层循环开始测试,把所有其他循环都设置为最小值。
  • 最内层循环做简单循环的全部测试。
  • 逐步外推,对其外面一层循环进行测试。
  • 反复进行,直到所有各层面循环测试完毕。
  • 对全部各层循环同时取最小循环次数,或者同时取最大循环次数。

串接循环:

白盒测试技术_静态白盒测试

  如果各个循环相互独立,则同简单循环;若几个循环不是相互独立的,则使用嵌套循环测试方法。

基本路径测试

  程序的控制流图:描述程序控制留的一种图示方法,其中控制流图中的箭头称为边,表示控制流的方向,一条边必须终止于一个节点,边与节点圈定的空间称为区域。

  程序的环路复杂性:是对程序逻辑结构所做的一种定量量度,求法如下:

  1. 将环路复杂性定义为控制流图中的区域数。
  2. 控制流图G的环路复杂性记为V(G),则V(G)=E-N+2,其中E为边数,N为图中节点总数。
  3. V(G)=P+1,其中P为控制流图中的判定节点数。

  基本路径测试方法设计测试用例

  1. 以详细设计或源代码为基础,导出程序的控制流图。
  2. 计算得到的控制流图G的环路复杂性V(G)。
  3. 确定线性无关的路径的基本集合。
  4. 生成测试用例,确保基本路径集中每条路径的执行。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193218.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • hadoop核心模块_ERP核心模块

    hadoop核心模块_ERP核心模块转载地址:https://www.amobbs.com/thread-5531817-1-1.html 最近,利用uip搞了小东西,要想利用好uip,最好彻底搞清楚其关键函数uip_process.当网卡接收到数据之后,均需要通过该函数来处理.  下面是对uip1.0中的uip_process函数解读.//要点:网卡收到数据时,uip_process会遍历uip_udp_conn…

  • 进程调度算法设计_三种调度算法

    进程调度算法设计_三种调度算法【实验目的】进程管理是操作系统中的重要功能,用来创建进程、撤消进程、实现进程状态转换,它提供了在可运行的进程之间复用CPU的方法。在进程管理中,进程调度是核心,因为在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态,当就绪进程个数大于处理器数目时,就必须依照某种策略决定哪些进程优先占用处理器。本实验模拟在单处理器情况下的进程调度,目的是加深对进程调度工作的理解,掌握不…

  • Pycharm配置git环境「建议收藏」

    Pycharm配置git环境「建议收藏」Pycharm配置git环境在网上查了一些发现都已经过时了,有的根本没办法用,自己摸索了一下午。捣鼓的差不多了至少可以用hhhh默认各位老铁都已经安装好了,Git咯,并且有自己的github网址或者gitee网站咯0X1创建一个新项目首先新键一个新的项目,直接creat就好了创建好了如下:0X2匹配GitFile->Settings->VersionControl->Git详情如下:找到Setting,点击进入找到VersionControl,

  • Canny算子–边缘检测[通俗易懂]

    Canny算子–边缘检测[通俗易懂]Canny边缘检测算法的发展历史Canny边缘检测于1986年由JOHNCANNY首次在论文《AComputationalApproachtoEdgeDetection》中提出,就此拉开了Canny边缘检测算法的序幕。Canny边缘检测是从不同视觉对象中提取有用的结构信息并大大减少要处理的数据量的一种技术,目前已广泛应用于各种计算机视觉系统。Canny发现,在不同视觉系统…

  • 冒泡排序算法,C语言冒泡排序算法详解

    冒泡排序算法,C语言冒泡排序算法详解冒泡排序是最简单的排序方法,理解起来容易。虽然它的计算步骤比较多,不是最快的,但它是最基本的,初学者一定要掌握。冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。以从小到大排序为例,第一轮比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。比如对下面这个序列进行从小到大排序:9021132-5834第一轮:

  • spring的事件监听应用场景_java监听器的原理与实现

    spring的事件监听应用场景_java监听器的原理与实现前言Spring从3.x开始支持事件机制。在Spring的事件机制中,我们可以令一个事件类继承ApplicationEvent类,然后将实现了ApplicationListener

发表回复

您的电子邮箱地址不会被公开。

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