news 2026/4/18 14:40:06

软件测试的缺陷管理与分析,小白福利拿走不谢!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
软件测试的缺陷管理与分析,小白福利拿走不谢!

软件测试过程中提交缺陷是测试工程师最常做的一件事,也是开发工程师解决问题的依据,所以需要对缺陷进行管理和分析。缺陷管理主要是管理从提交缺陷到解决缺陷这一系列的过程,包括流程中角色的变换。

缺陷分析主要对测试过程中所发现的缺陷进行分类分析,分析缺陷分布的情况,并对缺陷产生的原因进行归纳分类,为改善研发和测试过程提供依据。本章节我们先讲解“缺陷管理与分析”的内容。

缺陷报告的发展:早期并没有缺陷的概念,直到第一台计算机诞生后才有人提出Bug一词。那时仅仅是将缺陷使用Bug这个词来描述,而并未真正对缺陷的产生进行详细的描述。1945 年美国的哈珀将军第一次通过报告的形式来描述缺陷。

Bug的由来

Bug一词的原意是“臭虫”或“虫子”,现在在软件测试过程中所有发现的问题,我们都喜欢使用“Bug”这个词来描述。

早期第一代的计算机是由许多庞大且昂贵的真空管组成,并利用大量的电子真空管发光,可能正是由于计算机运行产生的光和热,导致一只小虫子钻进了一支真空管内,使整个计算机无法工作。

研究人员花费很长时间才找到小虫子所在的真空管,将其取出后,计算机又恢复正常。后来“Bug”这个名词就沿用下来,表示计算机系统或程序中隐藏的错误、缺陷或问题。与Bug 相对应,人们将发现Bug 并加以纠正的过程称为“Debug”,即“捉虫子”或“杀虫子”。

遗憾的是,在中文中一直没有找到一个恰当的词来准确地翻译“Bug”的意思,因此就一直使用“Bug”一词来表示,所以测试中所有的问题我们都称之为“Bug”。

一份简单的缺陷报告

从计算机诞生之日起,就存在Bug。但早期并没有针对缺陷的相关报告,第一个使用缺陷报告的方式来记录Bug 的是美国海军编程员、编译器的发明者格蕾斯· 哈珀(Grace Hopper)。哈珀后来成为了美国海军的一个将军,领导了著名计算机语言Cobol 的开发。

1945年9月9日下午15点,哈珀中尉正带领着她的小组构造一个称为“马克二型”的计算机。

当时的计算机并不完全是电子计算机,还使用着大量的继电器。那时正处于第二次世界大战期间,哈珀的团队在一间第一次世界大战时建造的老建筑中工作,夏天很炎热又没有空调,所有的窗户都敞开散热,突然“马克二型”死机了,研究员想尽了办法,最后定位到第70 号继电器出现故障,仔细研究发现原来是一只飞蛾在继电器里面,当然飞蛾被继电器电死了,她小心地使用镊子将飞蛾取出来,并用透明胶布贴到记录本中,这是第一次对缺陷进行描述。

早期的缺陷报告描述是很简单的,只对缺陷的步骤进行描述,下面是一份简单的缺陷报告。

缺陷标题:Arial、Wingdings 和Symbol 字体会破坏新文件缺陷产生的步骤:

  • (1)启动WordEdit 编辑器,然后创建新文件;

  • (2)输入四行文本,如重复输入内容“The quick fox jumps over the lazy brown dog”;

  • (3)选中所有四行文本,然后选择字体下拉菜单,并选择“Arial”字体。所有文本被转换成控制字符、数字和其他明显的随机二进制数据。

这是一份简单的缺陷报告,现在的缺陷报告所包含的元素已经丰富了很多。

一份好的缺陷报告

一份好的缺陷报告应该包含以下元素:缺陷ID 号、严重等级、归属版本、归属模块、简要描述、详细描述、附件、提交日期、提交人、当前状态、当前负责人和当前测试环境。

(1)缺陷ID号

  • 缺陷ID号即提交Bug 的ID号,一般情况下,当我们在缺陷管理系统中提交Bug 时,缺陷管理系统会自动生成一个ID 号,并不需要人为的定义,当然不同的缺陷管理系统生成缺陷ID 号的方式有所不同。

(2)严重等级

  • 缺陷严重等级是缺陷报告中最重要的属性之一,缺陷的严重等级分为:致命、严重、一般和建议四类,衡量缺陷的严重等级必须考虑两个维度:该功能在客户端使用的频率和缺陷带来的影响详见7.3.1 小节。

(3)归属版本

  • 归属版本是指当前测试的版本,即发现该Bug 所测试的系统版本。

(4)归属模块

  • 归属模块是指测试哪个模块发现Bug 的,即该Bug 是由哪个模块引起的。

(5)简要描述

  • 简要描述即使用一句话简要地概述该Bug 的内容,简要描述要简单明了,最好是一看便知道其含义,一般不超过15 个字。

(6)详细描述

  • 详细描述是Bug报告中的核心内容之一,需要通过详细的步骤来介绍发现Bug 的过程,一般分步骤地描述,这样让读Bug 的人更轻松、更省时且易理解。对于一些建议的问题,在详细描述里面还应该写明建议将功能修改成什么样。

(7)附件

  • 附件是用来辅助描述Bug的内容,一般包括以下几种形式:图片、日志文件、配置文件等。对于一些操作步骤或Bug 的结果,如果不能很准确地描述,应该借助图片来帮助描述,图片可以让开发工程师很简单地了解Bug 的步骤和结果;日志文件主要是将出现Bug 时的日志文件附带给开发工程师,这样便于分析Bug 出现的原因;相关配置文件主要是在出现Bug 时,将系统的相关配置文件附带给开发工程师,便于分析Bug 出现的原因。

(8)提交日期

  • 提交日期是指提交Bug时的日期,一般情况下缺陷管理工具会自动生成。

(9)提交人

  • 提交人是指提交该Bug 的测试工程师。

(10)当前状态

  • 当前状态是指Bug 当前的状态,Bug 状态在7.3.4 节有详细的介绍,每到一个步骤Bug 都有一个对应的状态,而这个状态一定要更新正确。

(11)当前负责人

  • 当前负责人是指该Bug 由哪些开发工程师负责修复。

(12)当前测试环境

  • 当前测试环境是指发现该Bug 时所处的环境,测试环境主要包括使用的浏览器、分辨率、操作系统和相关硬件信息。

  • 1)浏览器是指当前测试使用的是哪个厂家的浏览器及相关的版本,主要用于分析一些浏览器兼容的问题。

  • 2)分辨率是指当前测试时系统的分辨率。主要用于分析一些关于界面显示的问题。

  • 3)操作系统是指当前测试时的操作系统,应该介绍是什么操作系统以及是32 位还是64 位。

  • 4)相关硬件信息更多的是用于嵌入式系统的描述上,在纯软件的系统中一般不需要描述此项内容,对于嵌入式的测试应该描述清楚主板、电源板、接口板等其他硬件的版本信息。

缺陷报告应该遵循以下几个原则:

  • Correct(准确):每个组成部分的描述应该准确无误,不会引起误解。

  • Clear(清晰):每个组成部分的描述应该清晰,易于理解。

  • Concise(简洁):只包含必不可少的信息,不包括任何冗余的内容。

  • Complete(完整):包含修改该缺陷的完整步骤和其他本质信息。

  • Consistent(一致):按照一致的格式书写全部缺陷报告。

本章节关于“软件测试—缺陷管理与分析”的内容就学习到这里,大家觉得文章有用的话记得每天来这里和小编一起学习涨薪技能哦。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 2:02:33

C# 12顶级语句增强细节全公开,99%开发者忽略的性能优化点

第一章:C# 12顶级语句增强概述C# 12 进一步优化了顶级语句(Top-Level Statements)的语法体验,使其更适用于构建简洁、可读性强的程序入口点。这一增强不仅减少了样板代码,还提升了开发效率,尤其适合小型脚本…

作者头像 李华
网站建设 2026/4/18 2:02:54

业务流程智能化新范式:JBoltAI节点化思维链让确定性流程“可编译”

在企业数字化转型过程中,“员工入职”“财务报销”“订单履约”这类确定性强、逻辑固定的核心业务流程,往往面临两难困境:要么依赖传统工作流引擎,代码耦合高、修改成本大;要么寄希望于AI智能体自主规划,却…

作者头像 李华
网站建设 2026/4/18 2:04:12

避免线上事故的关键一步:在C#通信层部署拦截器的最佳实践

第一章:避免线上事故的关键一步:在C#通信层部署拦截器的最佳实践在现代分布式系统中,C#应用常通过gRPC、HTTP客户端或WCF进行跨服务通信。一旦通信异常未被及时捕获和处理,极易引发级联故障。在通信层部署拦截器是预防线上事故的有…

作者头像 李华
网站建设 2026/4/18 2:07:21

C#开发必知的using别名高级用法(仅1%工程师掌握的元组适配技巧)

第一章:C# using别名与元组类型适配概述在现代C#开发中,代码的可读性与类型表达的清晰性至关重要。using 别名和元组类型是提升代码表达力的两个关键特性。通过 using 别名,开发者可以为复杂或冗长的类型定义简洁的名称,从而增强代…

作者头像 李华
网站建设 2026/4/18 2:02:34

YOLOv8自动化训练脚本编写指南:提升开发效率利器

YOLOv8自动化训练脚本编写指南:提升开发效率利器 在智能安防摄像头实时识别可疑行为、工业质检设备毫秒级定位产品缺陷的今天,一个共通的挑战摆在开发者面前:如何让目标检测模型的训练不再成为项目进度的瓶颈?当团队还在为“为什么…

作者头像 李华