如何编写软件缺陷报告?

在如何执行软件测试一文中我们提到了缺陷报告,那我们今天就详细了解缺陷报告。

什么是软件缺陷

软件缺陷(Defect),常常又被叫作Bug。所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。IEEE729-1983对缺陷有一个标准的定义:从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。--来自百度词条

什么是软件缺陷报告

软件缺陷报告,通常成为bug单。是描述发现的缺陷,具有清晰、完整和可重现问题所需的信息的文档。是开发与测试之间的重要沟通工具。一般企业都会引入缺陷管理系统,如:禅道、bugzilla、Jira、Mantis等。

缺陷报告的主要内容:缺陷编号、缺陷状态、缺陷标题、重现步骤、严重程度(bug严重程度)、优先级(开发修改的优先级)、缺陷类型(如:功能、UI、性能等)、测试环境。

如何编写高效的缺陷报告

  • 缺陷标题是最先看到的部分,是对缺陷的概括性描述,通常采用“在什么情况下发生了什么问题”的模式。对错误的描述要做到简洁,准确,完整,揭示错误实质

  • 缺陷概述及重现步骤:概括性的缺陷本质与现象的描述,是缺陷标题的细化。每一个步骤尽量只记录一个完整操作,复现的操作步骤完整,准确,简短,尽量使用短语和短句,避免复杂句型句式

  • 缺陷影响(严重程度):缺陷引起的问题对用户或者对业务的影响范围以及严重程度。明确指明错误类型和严重程度。

  • 测试环境:详细描述测试环境的配置细节,为缺陷的重现提供必要的环境信息。 比如,操作系统的类型与版本、被测软件版本、浏览器的种类和版本、被测软件的配置信息、集群的配置参数、中间件的版本信息等等。

  • 前置条件:指测试步骤开始前系统应该处在的状态,其目的是减少缺陷重现步骤的描述。合理地使用前置条件可以在描述缺陷重现步骤时排除不必要的干扰,使其更有针对性。

  • 期望结果和实际结果通常和缺陷重现步骤绑定在一起,在描述重现步骤的过程中,需要明确说明期待结果和实际结果。期待结果来自于对需求的理解,而实际结果来自于测试执行的结果。

  • bug分析:在发现缺陷的同时,定位出问题的根本原因,清楚地描述缺陷产生的原因并反馈给开发工程师,那么开发工程师修复缺陷的效率就会大幅提升。

  • 变通方案是提供一种临时绕开当前缺陷而不影响产品功能的方式,通常由测试工程师或者开发工程师完成,或者他们一同决定。

  • 附件通常是为缺陷的存在提供必要的证据支持,常见的附件有界面截图、测试用例日志、服务器端日志、GUI 测试的执行视频等。

  • 每个软件缺陷报告只写一个缺陷或者错误

软件缺陷的等级

缺陷是分级别的, 级别是缺陷的严重程度. 优先级是修改缺陷的优先级. 原则上缺陷的级别越高, 修改的优先级越高. 但也有个别缺陷级别高, 但是修改的优先级低.

缺陷级别分为5个: 崩溃(致命、严重、一般、 次要、 建议,分别对应着为 A、 B、 C、 D、 F(或者为1、 2、3、 4、 5)。

  • A类—致命的软件缺陷(Fatal):造成系统或应用程序崩溃、死机、系统挂起,或造成数据丢失,主要功能完全丧失,导致本模块以及相关模块异常等问题。如代码错误,死循环,数据库发生死锁、与数据库连接错误或数据通讯错误,未考虑异常操作,功能错误等

  • B类—严重错误的软件缺陷(critical):系统的主要功能部分丧失、数据不能保存,系统的次要功能完全丧失。问题局限在本模块,导致模块功能失效或异常退出。如致命的错误声明,程序接口错误,数据库的表、业务规则、缺省值未加完整性等约束条件

  • C类—一般错误的软件缺陷(major):次要功能没有完全实现但不影响使用。如提示信息不太准确,或用户界面差,操作时间长,模块功能部分失效等,打印内容、格式错误,删除操作未给出提示,数据库表中有过多的空字段等

  • D类—较小错误的软件缺陷(Minor):使操作者不方便或遇到麻烦,但它不影响功能过的操作和执行,如错别字、界面不规范(字体大小不统一,文字排列不整齐,可输入区域和只读区域没有明显的区分标志),辅助说明描述不清楚

  • E类- 建议问题的软件缺陷(Enhancemental):由问题提出人对测试对象的改进意见或测试人员提出的建议、质疑。

软件缺陷分析产生原因及分类

软件缺陷分析产生原因主要有三方面:技术问题,团队合作,软件本身。从测试观点我们将软件缺陷分为五类,分别为:功能缺陷,系统缺陷,加工缺陷,数据缺陷,代码缺陷。

软件缺陷报告单的生命周期

软件缺陷生命周期:

  • 新建:指新发现的缺陷,由测试人员创建。

  • 指派:已经由测试人员将缺陷指派给开发人员进行处理

  • 打开:开发人员正在修复缺陷

  • 修复:开发人员完成缺陷修复,还未进行回归测试

  • 拒绝:开发人员拒绝修复

  • 延期:对缺陷进行延缓处理(一般需要与产品沟通是否延期)

  • 关闭:由测试人员回归测试后,缺陷不存在了

  • 重新打开:由测试人员回归测试后,发现缺陷任然存在,

举报
评论 0