覆盖标准(白盒、黑盒和灰盒)

news2024/11/28 7:46:00

覆盖标准(白盒、黑盒和灰盒)

覆盖标准Coverage Criteria
覆盖标准采用软件的抽象表示并将其划分为可测试的功能。
每个功能构成了测试需求的基础——需要由软件的测试套件进行测试的东西。
当测试套件的一个测试用例满足测试要求时,我们说测试要求被覆盖。测试套件覆盖的测试需求的百分比称为覆盖级别(或更简单地称为“覆盖率”)。
覆盖标准是一种分而治之的测试方法。

“抽象表示”指的是被测软件的高级概念模型或描述。 它是一种捕获软件功能的基本方面而不深入研究具体实现细节的表示。 抽象表示侧重于与测试目的相关的软件特性和行为,而不是特定的代码或设计。
使用抽象表示的目的是简化软件的复杂性,并为定义测试需求和识别可测试特性提供结构化框架。 它帮助测试人员和开发人员清楚地了解软件的功能并定义测试范围。

“可测试特性”是可以单独测试的软件的特定方面或功能。 这些特性源自软件的抽象表示。 它们代表需要通过测试验证的不同组件、行为或场景。
可测试的特性应该是明确定义和可测量的,这样它们才能被有效地测试。 它们可以是功能、模块、类、方法、输入、输出、用户交互或软件需要测试的任何其他方面。
通过识别抽象表示并将其划分为可测试的特性,覆盖标准提供了一种接近测试的系统方法。 测试需求源自这些特性,测试套件旨在满足这些需求。 测试套件的覆盖级别表示已覆盖的测试需求的百分比,提供对测试过程的彻底性的评估。

报表覆盖率Statement Coverage
一种非常简单的表示是程序语句组成一个软件。
每个功能都是一个程序语句。
每个测试要求都涉及执行(“覆盖”)每一行。
语句覆盖率是测试套件执行的代码行的百分比。

覆盖水平Coverage Level
JaCoCo 测量指令而不是语句,因为它计算 Java 字节码级别的覆盖率
覆盖率水平(或简称“覆盖率”)是测试的百分比
测试套件满足的要求。
例如执行了78%的语句,那么语句覆盖率为78%。

JaCoCo 类覆盖率报告JaCoCo Class Coverage Report
共有三种颜色:
绿色 = 由测试执行
黄色 = 测试执行的 if 或 for/while 语句的一个分支(真或假)
红色 = 测试未执行

批评和其他覆盖标准Criticisms and Other Coverage Criteria
语句是表示软件并将其划分(然后“征服”)以进行测试的一种非常简单的方法。
语句覆盖并不是一种“决定要测试什么”的有用方法,而是一种发现测试套件未涵盖的内容并决定是否需要更多测试用例的方法。
我们将在整个模块中满足不同的(并且可能更有用的)覆盖标准。

获得 100% 的覆盖率是否确保我们的程序没有错误?
不! – 覆盖标准,例如语句覆盖,只是一个以系统的方式生成测试需求的方法。
例如,100% 的语句覆盖率可能会执行大部分缺陷,但是:
• 不保证缺陷会影响程序的状态
• 不保证感染会作为失败传播到程序的输出
• 不保证失败会被测试套件的断言捕获
更多细节: java 区分缺陷Defects/感染Infections/失败Failure

不可行的测试要求Infeasible Test Requirements
此外,一些测试要求可能是不可行的。
这意味着它们不可能被覆盖。
例如,一行无法执行的代码——即死代码。
在这里插入图片描述
该程序语句永远无法执行! 它对语句覆盖形成了不可行的覆盖要求

回顾:重要术语Terminology
覆盖标准Coverage Criterion:一种将软件划分为一组测试要求以进行测试的方法。
测试要求Test Requirement::测试套件必须按覆盖标准满足的软件功能。 请注意,测试需求与软件需求不同,也与测试用例不同。一个测试用例可以满足多个测试需求。
不可行的测试要求Infeasible Test Requirement::不可能满足的测试要求。
覆盖率Coverage Level:执行的测试需求的百分比(覆盖)由测试套件。

白盒、黑盒和灰盒覆盖标准
对覆盖率标准进行分类的一种方法是区分测试需求是从代码中派生出来的,还是它没有参考它的编程方式。

白盒White Box:
全面了解内部代码结构。因此通常称为“代码覆盖率”标准。
黑盒子Black Box:
不了解内部代码结构。覆盖标准基于软件的需求、设计或抽象模型。
灰盒Grey Box:
内部代码结构的一些知识。覆盖标准基于被认为是“白盒”和“黑盒”的人工制品的混合

不同的标准,不同的缺陷
黑盒覆盖标准
由于不了解软件的内部工作原理,不太适合检测调试缺陷(defects of commission)。
最适合检测基于需求的遗漏缺陷(defects of omission),软件的抽象模型。
白盒覆盖标准
最适合检测可以“看到”代码的调试缺陷(defects of commission)。
由于不了解软件需求,不太适合检测遗漏缺陷(defects of omission)。

在软件测试中,调试缺陷和遗漏缺陷是测试过程中可能遇到的两类问题:

  1. 调试缺陷:当软件表现出不应该具有的行为或功能时,就会出现调试缺陷。 换句话说,它指的是软件包含不应该存在的东西或行为不正确的情况。 这些缺陷通常被认为是“错误”或“错误”,并可能导致意外结果或失败。 调试缺陷的示例包括逻辑错误、计算错误、崩溃或不正确的输出。

  2. 遗漏缺陷:另一方面,当软件缺少或未能包含其应具有的功能或行为时,就会出现遗漏缺陷。 它指的是缺少某些东西或未正确执行的情况。 这些缺陷涉及缺少所需的特性、要求或预期的行为。 遗漏缺陷可能是由于不完整或不准确的规范、不充分的实施或开发过程中的疏忽造成的。 遗漏缺陷的示例包括功能缺失、错误处理不完整、安全漏洞或不符合要求。

这两种类型的缺陷、错误和遗漏都是不受欢迎的,它们会影响软件的质量和可靠性。 测试的目标是识别和报告这些缺陷,以便在将软件发布给最终用户之前解决和解决这些缺陷。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/590469.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

四、机器人整体结构的稳定性

结构的稳定性是指结构在外界载荷作用下,能否维持自己的形状和位置。如果结构在外界载荷作用下能够维持自己的形状和位置,则称为稳定;如果结构在外界载荷作用下无法维持自己的形状和位置,则称为不稳定。 结构的稳定性是一个相对概念…

管理系统总结(前端:Vue-cli, 后端Jdbc连接mysql数据库,项目部署tomcat里)

根据所学的知识, 写一个管理系统, 顺便总结一些知识点 准备: 前端用vue-cli的框架, 后端用jdbc连接数据库, 项目部署tomcat服务器来完成交互 ●前端的vue-cli框架搭建可以看 点击跳转 的第二小结 ●后端的tomcat在idea里的相关的配置与集成,可以看 点击跳跃 文章目录 一、 前段…

机智云物联网低功耗转接板GE211+机智云APP遥控灯

要实现硬件的智能化,除了硬件本身外,还需要实现:智能云平台、手机 APP、联网模块,每 一个领域都需要专业的团队来支撑。机智云提供完整的解决方案,让厂商或开发者只需要专 注于自身产品硬件。以最小的成本和风险实现硬…

【网络】路由器和无线路由器就这么配置

目录 🍒常见的接入互联网方式 🍓WAN配置 🍓LAN口配置 🍓WLAN配置 🍓WLAN安全 🍒路由设备管理 🍓路由器内部组件 🍓Cisco路由器的启动过程 🍓基础命令 🍎show …

数据库中的DDL、DQL、DML、DCL 和 TCL 命令

数据库中的DDL、DQL、DML、DCL 和 TCL 命令 SQLDDL(Data Definition Language)数据库定义语言DML(Data Manipulation Language)数据操纵语言TCL(Transaction Control Language)事务控制语言DQL (Data Query…

UEFI开发环境搭建(Windows)

重拾UEFI学习。 第一步是搭建开发环境,记录如下: 1. 安装开发工具 Visual Studio 2017 python/ASL/NASM 安装到如下目录: c:\Python310 c:\ASL c:\NASM 更新系统变量Path: 新建系统变量PYTHON_HOME 下载EDK2 创建工作目录&#xff…

一个技巧,让ChatGPT学会复杂编程,编程水平逼近人类程序员!

夕小瑶科技说 原创 作者 | 智商掉了一地、Python 随着 AIGC 技术迈出了一大步,ChatGPT 等聊天机器人被频繁地使用在生活和工作中的各个场景。想象一下,当你写代码陷入没有头绪的境地或者无法解决 Bug 时,这种基于大型语言模型(LL…

ROS:发布者Publisher的编程实现(C++)

目录 一、话题模型二、创建功能包三、创建Publisher代码四、编译代码五、运行 一、话题模型 图中,我们使用ROS Master管理节点。 有两个主要节点: Publisher,名为Turtle Velocity(即海龟的速度) Subscriber&#xff0c…

STM32H723ZGT6 LAN8720A LWIP

Stm32CubeMX 版本&#xff1a;6.8.1 硬件库版本&#xff1a;STM32Cube FW_H7 V1.11.0 usart.c#include <stdio.h> #if 1//标准库需要的支持函数 struct __FILE { int handle; }; FILE __stdout; //定义_sys_exit()以避免使用半主机模式 void _…

设计模式(二):创建型之工厂方法和抽象工厂模式

设计模式系列文章 设计模式(一)&#xff1a;创建型之单例模式 设计模式(二)&#xff1a;创建型之工厂模式 目录 一、设计模式分类二、概述三、简单工厂模式1、结构2、实现3、扩展&#xff1a;静态工厂 四、工厂方法模式1、结构2、 实现3、优缺点 五、抽象工厂模式1、结构2、实…

牛客网2018吉比特校招技术开发类试题分析

最近做了两套笔试题&#xff0c;复习一下错题&#xff0c;有很多地方需要查缺补漏&#xff0c;再谈一下感受总结一下。 2018届吉比特校招技术类笔试B卷 吉比特2018届提前批校园招聘-开发类试卷 一、基础题 1.已知 a 6789x 6789、b 6789x 6790、c 6789x 6791&#xff0c…

GIT | 浅析原理篇

此篇文章主要是讲讲 一些 git 操作发生的时候 , .git 文件如何变化&#xff0c;git 背后发生了什么。磨刀不误砍柴工嘛&#xff01;算是一篇视频观后笔记&#xff08;文末取视频地址&#xff09; 基础概念 Git 是一个代码版本管控的工具&#xff0c;是一个内容寻址文件系统&am…

剑指 Offer 14- I. 剪绳子解题思路

文章目录 题目解题思路优化 题目 给你一根长度为 n 的绳子&#xff0c;请把绳子剪成整数长度的 m 段&#xff08;m、n都是整数&#xff0c;n>1并且m>1&#xff09;&#xff0c;每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少&…

Spring Boot + vue-element 开发个人博客项目实战教程(二十六、前端首页统计完善及完结)

⭐ 作者简介&#xff1a;码上言 ⭐ 代表教程&#xff1a;Spring Boot vue-element 开发个人博客项目实战教程 ⭐专栏内容&#xff1a;个人博客系统 ⭐我的文档网站&#xff1a;http://xyhwh-nav.cn/ 后端代码gitee地址&#xff1a;https://gitee.com/whxyh/personal_blog …

设计模式六大原则的理解

本文参考&#xff1a; 设计模式简介 | 菜鸟教程 (runoob.com) 六大设计原则之依赖倒置原则&#xff08;DIP&#xff09; - 简书 (jianshu.com) 设计模式的六大原则有&#xff1a; 1、开闭原则&#xff08;Open Close Principle&#xff09; 开闭原则的意思是&#xff1a;对扩…

设计模式之~桥接模式

桥接模式&#xff1a; 将抽象部分与它的实现部分分离&#xff0c;使他们都可以独立地变化。这种类型的设计模式属于结构型模式&#xff0c;它通过提供抽象化和实现化之间的桥接结构&#xff0c;来实现二者的解耦。 什么叫抽象与它的实现分离&#xff0c;这并不是说&#xff0c;…

图解系列 图解Spring Boot 最大连接数及最大并发数

文章目录 概序架构图TCP的3次握手4次挥手时序图核心参数AcceptCountMaxConnectionsMinSpareThread/MaxThreadMaxKeepAliveRequestsConnectionTimeoutKeepAliveTimeout 内部线程AcceptorPollerTomcatThreadPoolExecutor 测试参考 每个Spring Boot版本和内置容器不同&#xff0c;…

树状数组学习总结

今天本初中生蒟蒻学习了一下 树状数组 \color{red}{树状数组} 树状数组&#xff0c;总结一下~~~ 树状数组的实现 功能简介 快速求前缀和&#xff08; O ( l o g 2 n ) \color{purple}{O(log_2n)} O(log2​n)&#xff09;修改某一个数&#xff08; O ( l o g 2 n ) \color{gr…

SpringBoot+原生awt,实现花花绿绿的图形验证码

图形验证码是用于验证用户身份的一种方式&#xff0c;通常在网站注册、登录或进行某些敏感操作时会使用。它通过展示一个包含随机字符或数字的图形&#xff0c;要求用户输入相应的字符或数字来证明其为真人而非机器人。图形验证码能有效地防止机器人攻击和恶意注册行为&#xf…

Excel·VBA自动生成日记账的对方科目

如图&#xff1a;根据日记账/序时账的日期、凭证号为一组&#xff0c;按借贷方向生成相反的科目&#xff0c;并写入H列。可能存在一对一、一对多、多对多等情况的账目 目录 数组法遍历、判断、写入测试结果 多对多问题处理测试结果 数组法遍历、判断、写入 适用日期凭证号连续…