如何写一个好的缺陷(Defect)报告

编写缺陷报告是测试人员的日常工作,好的缺陷报告能够让开发人员更容易理解,更快速的定位问题;不好的缺陷报告可能会误导调查方向,增加沟通成本。那么一个好的缺陷报告应该包括哪些方面呢?

请看我的mindmap:

标题

  1. 首先要做一个“标题党”(此标题党非彼标题党)。标题一定要清晰简洁易理解,不应该臃长

  2. 尽量前缀要规范,例如模板: [Product][Version]_[Feature]_[Title],这样描述会很清晰,也方便查找

  3. 缺陷的标题一定要描述在什么情况下发生了什么问题

  4. 尽量避免使用人称(比如you, I等等)

  缺陷标题的例子: DemoApp 1.0_Login_Cannot enter username by copy/paste enternal string

  这个标题包含了产品名,版本号,模块,发生了什么(cannot enter username),什么情况下(copy/paste enternal string)

描述或总结

  描述或总结这个模块可以用来描述标题不能容纳的更详细的内容,它可以包括很多方面,比如相关、历史版本是否重现、用户操作等。目的是更清晰详细的描述缺陷。

影响

   这部分用以描述该缺陷对用户实际应用中的影响。 

前置条件

  用以描述在重现缺陷之前环境、数据或者其他的一些特殊需求。

重现步骤

  从用户角度出发来描述重现步骤,步与步之间不应该有太大的业务跳跃,最好是连贯的。

  例如:

  Repro Steps:

  1. Open DemoApp to enter Login screen

  2. Copy username from enternal file

  3. Paster username to username field of Login Screen

结果

  结果可以分为“期望结果”和“实际结果”,结果可以有多个,也可以穿插在重现步骤之间(比如重现步骤中有多个缺陷的问题)

优先级

  凡事都有轻重缓急,缺陷也是,需要标明缺陷优先级和紧急程度,以便开发团队决定先做还是延后。

重现频率  

  当然,大部分的缺陷是可以100%重现的,对于少数缺陷可能很难重现,或者不太容易重现,这就要标明重现的几率,比如50%。往往这种缺陷需要提供详细的日志文件,以便从日志角度获取重现或者解决突破口。

附件

  附件非常重要!附件的格式可以多种多样,图片,日志文件,视频等。除了可以提供直观的认识(图片,视频),还可以有更多的信息(缺陷讨论邮件,日志等)。

变通方案(Workaround)

  变通方案是提供一种绕过当前问题而使用其它的产品功能的一种方式。这样客户就可以在缺陷未解决的情况下继续使用产品。

发生原因分析(Root Cause Analysis)

  描述从代码角度,该缺陷是如何发生的。能做到这一步的测试人员需要有较高的读写代码的能力。

环境配置

  用以描述测试环境的配置,比如OS,相应产品版本等。

那么,问题来了!缺陷包括这么多方面,如果每个缺陷都这么写,要耗费多少effort啊!!!(毕竟测试时最忙的!)

个人认为没有必要每个都这么写,毕竟写缺陷报告对客户来说没有value。缺陷报告是缺陷的信息载体,它存在的意义是用于更好、更清楚的进行开发团队之间的沟通和以后的回顾,写到什么程度还是需要根据实际情况有所取舍。(比如Root cause analysis在时间不富裕的情况下可以忽略等)

综合以上的方面,下边是一个模板,希望对大家有所帮助。

Title:   [Product][Version]_[Feature]_Title

Description/Summary:

Impact:

Priority/Severity:

Critical

Frequency:

100%

Precondition:

Repro Steps:

step 1:

step 2:

Expected Result:

Actual Result:

step 3:

Expected Result:

Actual Result:

Root Cause Analysis:

 

Workaround:

 

Environment:

 

Attchment:

时间: 2024-10-12 04:56:27

如何写一个好的缺陷(Defect)报告的相关文章

继承?静态代理?写一个自己的动态代理吧

[ 需求分析 ] 在我们实际开发中常常会遇到这样的问题:记录一个类的方法运行时间,以分析性能.一般我们的做法是先在类的开始记录一个开始时间,然后在类的结束记录一个结束时间,二者相减就可以获取我们想要的结果.但是很多时候这些类已经打了jar包,我们无法直接修改源码,这个时候我们应该怎么办呢? 下文使用Tank的移动需要统计时间.记录日志来模拟需求场景,假定Moveable.Tank类无法修改. interface:Moveable public interface Moveable { publi

“makefile”写法详解,一步一步写一个实用的makefile,详解 sed 's,$?\.o[ :]*,\1.o [email protected] : ,g' < [email protected]

目的:编写一个实用的makefile,能自动编译当前目录下所有.c/.cpp源文件,支持二者混合编译.并且当某个.c/.cpp..h或依赖的源文件被修改后,仅重编涉及到的源文件,未涉及的不编译. 二要达到这个目的,用到的技术有:1-使用wildcard函数来获得当前目录下所有.c/.cpp文件的列表.2-make的多目标规则.3-make的模式规则.4-用gcc -MM命令得到一个.c/.cpp文件include了哪些文件.5-用sed命令对gcc -MM命令的结果作修改.6-用include命

写一个Windows上的守护进程(6)Windows服务

写一个Windows上的守护进程(6)Windows服务 守护进程因为要开机启动,还要高权限,所以我就把它做成Windows服务了. 关于Windows服务的官方文档,大家可以看https://msdn.microsoft.com/en-us/library/windows/desktop/ms686953(v=vs.85).aspx. 总的来说,服务的行为区别于普通应用程序的地方有以下几点: 1. 一般来说,服务是运行于System用户下的,当然也可以自己指定.也就是说服务可以在无用户登录的情

如何写一份好的数据分析报告

先说说写一份好的数据分析报告的重要性,很简单,因为分析报告的输出是你整个分析过程的成果,是评定一个产品.一个运营事件的定性结论,很可能是产品决策的参考依据,既然这么重要那当然要写好它了. 我认为一份好的分析报告,有以下一些要点: 首先,要有一个好的框架,跟盖房子一样,好的分析肯定是有基础有层次,有基础坚实,并且层次明了才能让阅读者一目了然,架构清晰.主次分明才能让别人容易读懂,这样才让人有读下去的欲望: 第二,每个分析都有结论,而且结论一定要明确,如果没有明确的结论那分析就不叫分析了,也失去了他

HTML: 仿写一个财经类静态的网页

要求:仿写一个静态的网页,主要采用HTML+CSS+DIV的布局方式, 新建两个文件:demo.html.demo.css 图片素材:image.zip demo.html代码如下: <!doctype html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta name="description" content="t

python 学习笔记 12 -- 写一个脚本获取城市天气信息

最近在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么能够显示后最重要的就是显示什么的问题了.最容易想到的就是显示时间啊,CPU利用率啊,IP地址之类的.那么我觉得呢,如果能够显示当前时间.温度也是甚好的,作为一个桌面小时钟还是很精致的. 1. 目前有哪些工具 目前比较好用的应该是 weather-util, 之前我获取天气信息一般都是通过它. 使用起来也很简单: (1) Debian/Ubuntu 用户使用 sudo apt-get install weather-util 安装

如何写一份合格的数据分析报告

开会拖延了时间~~~ 好了,能一直坚持每天跟读的童鞋们,相信对分析工具都有了一定程度的了解.缺的就是实战. 分析工具无非就是那几种,就像菜刀,有人用来切菜都困难,有人用来雕花都得心应手. 这是需要时间积累的过程.不是一蹴而就. 当然,分析的目的是为了解决问题. 不管是管理者还是员工,解决问题都需要以“分析报告”的方式呈现.把过程展示出来,把结果最终呈现给大家,只有大家认同的原因,才会得到顺利的执行. ———————— 分析报告要说明的部分有: ·分析对象的现状水平 ·分析对象存在的问题及原因 ·

请写一个算法,用于将list集合内重复元素剔除

package Homework; import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Scanner;/** * list集合是否可以包含重复元素? * 如果可以,请写一个算法,用于将list集合内重复元素剔除. * @author 张致远 * */public class Homework2 { public static void main(String[]

用java写一个远程视频监控系统,实时监控(类似直播)我想用RPT协议,不知道怎么把RPT协议集成到项目中

我最近在用java写一个远程视频监控系统,实时监控(类似直播)我想用RPT协议,不知道怎么把RPT协议集成到项目中,第一次写项目,写过这类项目的多多提意见,哪方面的意见都行,有代码或者demo的求赏给我,谢谢