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

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

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

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

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

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

缺陷种类

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

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

缺陷的等级划分

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

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

缺陷报告

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

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

  • 编号:用数字进行唯一标识缺陷,通常是在缺陷管理工具中新建 Bug 时会自动生成。
  • 状态:通常描述当前缺陷的状态,比如修复、延期等。
  • 标题:通常用一句比较简洁的话来概括 Bug,通过描述可以初步推测 Bug 原因,来提高处理的效率。
  • 类型:主要为了进一步描述缺陷产生的原因,比如功能错误、接口错误、数据库错误等。
  • 所属版本:描述当前 Bug 所在的测试版本,便于后期回归时注意测试版本。
  • 所属模块:描述 Bug 所在的业务模块,便于后期统计缺陷的分布情况,利于在进行回归测试的方法及测试策略的改进。
  • 严重级别:指 Bug 的严重程度。通常不同的严重程度给软件带来的后果、风险的影响都不一样,开发人员处理的优先级也不同。
  • 处理优先级:由开发人员根据 Bug 的严重级别来确定处理的优先级。
  • 发现人:Bug 的提交者。
  • 发现日期:一般在提交 Bug 时,由 Bug 管理工具自动生成,便于后续进行缺陷的跟踪。
  • 复现概率:指 Bug 重现的概率,便于开发定位分析。一般包括必现、偶现等。
  • 指定处理人员:根据 Bug 的类型指定处理人。通常指定具体的开发人员,如果是需求错误则需要指定产品或需求分析人员,便于后期进行跟踪。
  • 详细描述:详细描述缺陷引发的原因以及复现步骤。需要包含测试环境、前提条件、测试数据、复现步骤、预期结果、实际结果等内容。
  • 附件:为了加深描述可以添加一些附件信息,如截图、录屏、错误的日志信息等。
相关文章
|
10月前
|
C#
一个.NET开源、轻量级的运行耗时统计库 - MethodTimer
一个.NET开源、轻量级的运行耗时统计库 - MethodTimer
130 3
|
7月前
|
人工智能 测试技术 程序员
3天功能开发→3小时:通义灵码2.0+DEEPSEEK实测报告,单元测试生成准确率92%的秘密
通义灵码2.0是阿里巴巴推出的一款智能编程辅助工具,借助AI的强大能力,为开发者提供高效的代码生成、单元测试自动生成及跨语言编程支持。其核心亮点包括: 通义灵码2.0不仅提升了开发效率,还降低了编程门槛,帮助初学者快速上手。强烈推荐给所有开发者! [了解更多](https://hyk52syx.blog.csdn.net/article/details/145642464?spm=1001.2014.3001.5502)
940 23
|
9月前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
240 3
|
安全
[AIGC] 如何建立和优化你的工作流?
[AIGC] 如何建立和优化你的工作流?
362 1
|
Java API 开发者
Bladex生成Swagger的方法
Bladex生成Swagger的方法
|
数据采集 搜索推荐 算法
fuzzywuzzy,一个好用的 Python 库!
fuzzywuzzy,一个好用的 Python 库!
340 0
|
Kubernetes Ubuntu 网络协议
基于vmware16 和 ubuntu20.04, 搭建单节点 kubernetes 1.22.2
基于vmware16 和 ubuntu20.04, 搭建单节点 kubernetes 1.22.2
基于vmware16 和 ubuntu20.04, 搭建单节点 kubernetes 1.22.2
|
敏捷开发 前端开发 JavaScript
基于 iframe 的微前端框架
一、背景 VAPD是一款专为团队协作办公场景设计的项目管理工具,实践敏捷开发与持续交付,以「项目」为核心,融合需求、任务、缺陷等应用,使用敏捷迭代、小步快跑的方式进行开发及质量跟踪,简化工作流程,帮助团队快速迭代并高效完成产品开发交付。 但早期VAPD以“一切皆可配置”的设计理念开发运行了两年,整个前端代码复杂混乱,组件庞大(需要支持多种配置),状态混乱,前端代码打包出来有50M之巨。这个项目难以为继,bug多、维护困难、新增功能处处受限,总之产品不满意、测试不满意、用户不满意。 因此改版是必然的选择,而改版的要求就是不能耽误用户继续使用,必须保证网站可用、逐步更新,因此微前端是必然的
|
算法 容器
算法竞赛入门【码蹄集新手村600题】(MT1101-1150)
算法竞赛入门【码蹄集新手村600题】(MT1101、MT1102、MT1103、MT1104、MT1105......MT1150)
1389 1
算法竞赛入门【码蹄集新手村600题】(MT1101-1150)
|
Web App开发 缓存 JSON
Android 集成 Flutter | 与交互
Android 集成 Flutter | 与交互
1017 0
Android 集成 Flutter | 与交互