技术分享 | 什么是软件缺陷

简介: 技术分享 | 什么是软件缺陷

软件缺陷常常又被称为 Bug。所谓软件缺陷就是指计算机软件或者程序中存在的某种破坏正常运行能力的问题、错误或者隐藏的功能缺陷。

Bug 的存在会导致软件产品在某种程度上不能满足用户的需要。

在 IEEE 中对 Bug 有一个标准的定义:

  • 从产品内部看,是指软件产品开发或维护过程中存在的错误、毛病等各种问题。
  • 从产品外部看,是指系统所需要实现的某种功能的失效或违背。

缺陷种类

缺陷可以分为不同的种类:

  • 遗漏:指规定或预期的需求未体现在产品中。
  • 错误:指需求是明确的,在实现阶段未将规格说明正确实现。
  • 冗余:指需求规格说明未涉及的需求被实现了。
  • 不满意:除了上面 3 种情况外,用户对产品的实现不满意也称为缺陷。

缺陷的等级划分

在不同的企业对软件缺陷等级的划分大同小异,大致可分为五个等级:

  • 致命:指造成系统或应用程序死机、崩溃、非法退出等,会造成用户数据丢失或被破坏,功能设计与需求严重不符的问题。
  • 严重:指功能和特性没有实现,导致模块功能失效或异常退出,还有程序接口错误或者数据流错误等问题。
  • 一般:指主要功能丧失,提示信息不太正确,用户界面设计太差以及删除未提示等问题。
  • 提示:指对功能几乎没有影响,产品及属性仍可使用的问题。
  • 建议:测试人员提出的建议、质疑等问题。

缺陷报告

缺陷报告是测试执行完成后,最重要的输出之一,一份好的缺陷报告也是提高软件质量的重要保障。

不同的公司因为缺陷管理的流程不一样,可能有不同的缺陷报告模版。但是一个完整的缺陷报告通常应该包含以下内容:

  • 编号:用数字进行唯一标识缺陷,通常是在缺陷管理工具中新建 Bug 时会自动生成。
  • 状态:通常描述当前缺陷的状态,比如修复、延期等。
  • 标题:通常用一句比较简洁的话来概括 Bug,通过描述可以初步推测 Bug 原因,来提高处理的效率。
  • 类型:主要为了进一步描述缺陷产生的原因,比如功能错误、接口错误、数据库错误等。
  • 所属版本:描述当前 Bug 所在的测试版本,便于后期回归时注意测试版本。
  • 所属模块:描述 Bug 所在的业务模块,便于后期统计缺陷的分布情况,利于在进行回归测试的方法及测试策略的改进。
  • 严重级别:指 Bug 的严重程度。通常不同的严重程度给软件带来的后果、风险的影响都不一样,开发人员处理的优先级也不同。
  • 处理优先级:由开发人员根据 Bug 的严重级别来确定处理的优先级。
  • 发现人:Bug 的提交者。
  • 发现日期:一般在提交 Bug 时,由 Bug 管理工具自动生成,便于后续进行缺陷的跟踪。
  • 复现概率:指 Bug 重现的概率,便于开发定位分析。一般包括必现、偶现等。
  • 指定处理人员:根据 Bug 的类型指定处理人。通常指定具体的开发人员,如果是需求错误则需要指定产品或需求分析人员,便于后期进行跟踪。
  • 详细描述:详细描述缺陷引发的原因以及复现步骤。需要包含测试环境、前提条件、测试数据、复现步骤、预期结果、实际结果等内容。
  • 附件:为了加深描述可以添加一些附件信息,如截图、录屏、错误的日志信息等。
相关文章
vue3 element-plus 实现表格数据更改功能
在 vue3 中使用 element-plus 实现表格数据更改功能,可以通过以下步骤实现:
1499 0
|
9月前
|
机器学习/深度学习 安全 算法
《联邦学习:打破数据孤岛,实现隐私保护下的跨机构协作》
联邦学习是一种分布式机器学习技术,核心理念为“数据不动模型动”,即在不交换原始数据的前提下,各机构基于本地数据独立训练模型,并通过加密方式上传模型参数更新至中央服务器进行聚合,从而提升全局模型性能。它分为横向、纵向和联邦迁移学习三种类型,分别适用于不同场景下的数据协作。联邦学习有效解决了数据隐私保护与跨机构协作的难题,在医疗、金融等领域展现出巨大潜力,推动了智能化变革。尽管仍面临通信效率、安全性和可解释性等挑战,但其前景广阔。
897 25
|
Kubernetes Linux 虚拟化
一文详解容器技术简介和基本原理
本文全面阐述了容器技术的发展历程、关键技术、架构和当前的行业生态,特别是容器技术在云环境中的应用和演进。
|
安全 网络安全 数据安全/隐私保护
ansible 建立ssh信任并分发到各个机器
ansible 建立ssh信任并分发到各个机器
297 0
|
搜索推荐 API 对象存储
10分钟学会构建端到端的图片搜索服务
本文介绍在没有向量数据的情况下,怎样通过OpenSearch-向量检索版快速从零搭建图像搜索服务。
83342 69
|
11月前
|
JSON Dart 数据格式
<大厂实战场景> ~ flutter&鸿蒙next处理后端返回来的数据的转义问题
在 Flutter 应用开发中,处理后端返回的数据是常见任务,尤其涉及转义字符时。本文详细探讨了如何使用 Dart 的 `dart:convert` 库解析包含转义字符的 JSON 数据,并提供了示例代码和常见问题的解决方案,帮助开发者有效处理数据转义问题。
445 0
|
搜索推荐 关系型数据库 MySQL
MySQL 模糊查询新纪元:超越 LIKE+% 的高效探索
在数据库的日常操作中,模糊查询是一项不可或缺的功能,它允许我们根据不完全匹配的关键字来检索数据。传统上,MySQL 使用 LIKE 关键字配合 % 通配符来实现这一功能,虽然灵活但性能上往往不尽如人意,尤其是在处理大型数据集时。今天,我们将一起探索几种超越 LIKE+% 的模糊查询技术,以提升查询效率与用户体验。
683 2
|
JSON 小程序 JavaScript
微信小程序调用json数据接口并解析
微信小程序调用json数据接口并解析
660 0
|
安全 Go 开发者
Golang深入浅出之-Go语言中的CSP模型:深入理解并发哲学
【5月更文挑战第1天】Go语言基于CSP理论,借助goroutines和channels实现独特的并发模型。Goroutine是轻量级线程,通过`go`关键字启动,而channels提供安全的通信机制。文章讨论了数据竞争、死锁和goroutine泄漏等问题及其避免方法,并提供了一个生产者消费者模型的代码示例。理解CSP和妥善处理并发问题对于编写高效、可靠的Go程序至关重要。
383 2
|
Python
Python(二十九)pycharm连接调试器失败 Interrupted function call accept failed~
Pycharm在使用调试器模式时报错: Interrupted function call: accept failed
576 0