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

请看我的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:

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

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

    要求:仿写一个静态的网页,主要采用HTML+CSS+DIV的布局方式, 新建两个文件:demo.html.demo.css 图片素材:image.zip demo.html代码如下: <!doc ...

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

    写一个Windows上的守护进程(6)Windows服务 守护进程因为要开机启动,还要高权限,所以我就把它做成Windows服务了. 关于Windows服务的官方文档,大家可以看https://msd ...

  3. python 拼写检查代码(怎样写一个拼写检查器)

    原文:http://norvig.com/spell-correct.html 翻译:http://blog.youxu.info/spell-correct.html 怎样写一个拼写检查器 Pete ...

  4. 手把手用Monkey写一个压测脚本

    版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有. 允许有条件转载,转载请附带底部二维码. 一.为什么需要一个测试脚本? 昨天讲解了Android Monkey命 ...

  5. Scheme语言实例入门--怎样写一个“新型冠状病毒感染风险检测程序”

    小学生都能用的编程语言 2020的春季中小学受疫情影响,一直还没有开学,孩子宅在家说想做一个学校要求的研究项目,我就说你做一个怎么样通过编程来学习数学的小项目吧,用最简单的计算机语言来解决小学数学问题 ...

  6. 媳妇儿让我给她找一个PDF转word免费工具,找了半天我决定给她写一个出来^-^

    ​ 之前我媳妇儿让我给她找一个PDF转WORD的免费工具,在网上找了半天发现要不就是收费,要不就是转化的格式混乱.既然网上不能找到好用的免费工具那就直接来写一个吧.人生苦短,我用python. 万能的 ...

  7. 怎样写一个webpack loader

    div{display:table-cell;vertical-align:middle}#crayon-theme-info .content *{float:left}#crayon-theme- ...

  8. 请写一个php函数,可以接受任意数量的参数

    请写一个php函数,可以接受任意数量的参数 这是一道面试题.怎么写这个函数呢? function fun(......) { } ----------------------------------- ...

  9. 学记:为spring boot写一个自动配置

    spring boot遵循"约定优于配置"的原则,使用annotation对一些常规的配置项做默认配置,减少或不使用xml配置,让你的项目快速运行起来.spring boot的神奇 ...

随机推荐

  1. Windows系统下PHP使用Redis

    参考链接:https://www.cnblogs.com/lhat/p/6402472.html 环境:windows 10  64位操作系统    php 5.4 redis 3.0 1.redis ...

  2. Java占位符

    一.背景 在使用java开发的过程中,经常需要使用将字符串拼接到一起(比如,用于日志输出),常用方法如下: 使用+将不同字符串进行拼接 使用StringBuilder 使用String.format ...

  3. __slots__用法以及优化

    其实也是无意之中又看到这个东西,这次索性再记一下,免得下次忘记又再看一遍,往复循环浪费了太多时间. __slots__其实我做项目这么久还没有主动使用过.下面reference有提到这么一句话 War ...

  4. 周刷题第一期总结(two sum and two numbers)

    由于深深的知道自己是事件驱动型的人,一直想补强自己的薄弱环节算法,却完全不知道从哪里入手.所以只能采用最笨的办法,刷题.从刷题中遇到问题就解决问题,最后可能多多少少也能提高一下自己的渣算法吧. 暂时的 ...

  5. 简单FTP服务器搭建

    1 配置IIS 打开控制面板-卸载程序-点击 打开或关闭windows功能-勾选 internet信息服务-确定 2 配置iis web站点 开始菜单-搜索iis并进入iis管理器(计算机-右键-管理 ...

  6. target存放的是编译后的.class文件地方 默认情况下不会讲非class文件放入进入 如果要使用非.class文件 需要通过增加配置方式自动加入文件

    target存放的是编译后的.class文件地方 默认情况下不会讲非class文件放入进入 如果要使用非.class文件 需要通过增加配置方式自动加入文件

  7. codeforces622B

    The Time CodeForces - 622B 给你当前的时间(24小时制):HH:MM.输出 x 分钟后的时间是多少?(24小时制) 不明白可以看看例子哦- Input 第一行给出了当前时间, ...

  8. 注册页面手机验证码无跳转接收[html+js+ajax+php]

    [学习笔记] 来源:注册时需要使用短信验证码,但是注册的时候,点击接收验证码时,会产生跳转(尼玛,这不是我想要的啊!o(╥﹏╥)o) 查询资料和看书之后,知道使用js+ajax可以实现,就从网上找了一 ...

  9. Borg Maze POJ - 3026 (BFS + 最小生成树)

    题意: 求把S和所有的A连贯起来所用的线的最短长度... 这道题..不看discuss我能wa一辈子... 输入有坑... 然后,,,也没什么了...还有注意 一次bfs是可以求当前点到所有点最短距离 ...

  10. Java11实战:模块化的 Netty RPC 服务项目

    Java11实战:模块化的 Netty RPC 服务项目 作者:枫叶lhz链接:https://www.jianshu.com/p/19b81178d8c1來源:简书简书著作权归作者所有,任何形式的转 ...