如何高效填写缺陷


# 如何高效填写缺陷

# 缺陷组成

# 缺陷标题

  • 对「什么问题」的描述不仅要做到清晰简洁,最关键是要足够具体,不能采用过于笼统的描述,描述问题的同时还必须清楚地表述问题出现的场景。
    例如:「用户不能正常登录」「搜索功能有问题」和「用户信息页面的地址栏位置不正确」等。
  • 标题应该尽可能描述问题本质,而避免只停留在问题的表面。

例如

  • 描述问题表现的缺陷:商品金额输入框,可以输入英文字母和其他字符。
  • 描述问题表现的本质:商品金额输入框,没有对输入内容做校验。
  • 缺陷标题不易过长,对缺陷更详细的描述应该放在「缺陷概述」里。

# 缺陷概述

缺陷概述通常会提供更多概括性的缺陷本质与现象的描述,是缺陷标题的细化。

目的清晰简洁地描述缺陷,使开发工程师能够聚焦缺陷的本质

描述内容包含:

  • 列出同一类型的缺陷可能出现的所有场景
  • 描述同样的问题是否会在之前的版本中重现

# 缺陷影响

缺陷引起的问题对用户或者对业务的影响范围以及严重程度

前提:必须对软件的应用场景以及需求有深入的理解

作用:决定了缺陷的优先级和严重程度

  • 开发经理会以此为依据来决定修复该缺陷的优先级
  • 产品经理会以此为依据来衡量缺陷的严重程度,并决定是否要等该缺陷被修复后才能发布产品

# 环境配置

描述测试环境的配置细节,为缺陷的重现提供必要的环境信息

例如:

  • 操作系统的类型与版本
  • 被测软件版本
  • 浏览器的种类和版本
  • 被测软件的配置信息

注意:环境配置的内容通常是按需描述,也就是说通常只描述那些重现缺陷的环境敏感信息。

# 前置条件

指测试步骤开始前系统应该处在的状态,其目的是减少缺陷重现步骤的描述。

例如:某个业务操作需要先完成用户登录。

前置条件:用户已完成登录。

# 缺陷重现步骤

缺陷重现步骤是整个缺陷报告中最核心的内容

目的:用简洁的语言向开发工程师展示缺陷重现的具体操作步骤

注意:操作步骤通常是从用户角度出发来描述的,每个步骤都应该是可操作并且是连贯的,所以往往会采用步骤列表的表现形式

避免的常见问题

  • 笼统的描述,缺乏可操作的具体步骤
  • 出现与缺陷重现不相关的步骤
  • 缺乏对测试数据的相关描述

# 期望结果和实际结果

期望结果:需要说明应该发生什么,而不是什么不应该发生

实际结果:应该说明发生了什么,而不是什么没有发生

# 优先级和严重程度

差异

严重程度:指因缺陷引起的故障对软件产品的影响程度,是缺陷本身的属性,通常确定后就不再变化

优先级:指缺陷必须被修复的紧急程度,是缺陷的工程属性,会随着项目进度、解决缺陷的成本等因素而变动

两者之间关系

  1. 缺陷越严重,优先级就越高;
  2. 缺陷影响的范围越大,优先级也会越高;
  3. 有些缺陷虽然从用户影响角度来说不算严重,但是会妨碍测试或者是自动化测试的执行,这类缺陷属于典型的严重程度低,但是优先级高;
  4. 有些缺陷虽然严重程度比较高,但是考虑到修复成本以及技术难度,也会出现优先级较低的情况。

# 变通方案

提供一种临时绕开当前缺陷而不影响产品功能的方式。

实施前提

  • 根原因分析
    • 在发现缺陷的同时,定位出问题的根本原因,清楚地描述缺陷产生的原因。
    • 变通方案的有无以及实施的难易程度,是决定缺陷优先级和严重程度的重要依据

对优先级的影响

  • 如果某个严重的缺陷没有任何可行的变通方案,不管修复缺陷代价有多大,优先级一定会是最高的。
  • 如果缺陷存在比较简单的变通方案,那么优先级就不一定会是最高的了。

# 附件

为缺陷的存在提供必要的证据支持。

常见的附件

  • 界面截图
  • 测试用例日志
  • 服务器端日志等

(完)