编写优秀Bug报告的艺术及案例分析
编写优秀Bug报告的艺术及案例分析
---Rex Black原著《Fine art of writing a good bug report 》
---Kiki翻译于2005/5/28
- 组织Structure:测试人员应该采用深思熟虑的,小心谨慎的方法执行测试,并且做详尽的记录。这样可以促使他们对测试下的系统有很好的认识。当错误发生的时候,一个有组织的测试人员能够知道最早出现问题的地方。
- 重现Reproduce:测试人员在编写bug report之前必须在检查问题是否可重现。如果错误不可再重现,仍然应该写下来,但是必须说明问题的偶然性。一个好的处理原则就是在编写bug report之前反复尝试3次。
- 隔离Isolate:在尝试编写bug report之前,必须试着隔离错误。可以采用改变一些变量的方法,如系统的配置,它可能可以改变错误的症状。这些信息可以为开发人员着手调试提供思路。
- 归纳Generalize:在测试人员发现了一个已隔离的,可重现的问题后,应该对问题进行归纳。同一个问题是否出现在其他的模块或其他的地方?同一个故障是否有更加严重的问题?
- 对比Compare:如果测试人员以前曾经验证过现在出错的测试用例,那么他就应该检查以前的测试结果以检查相同的条件是否通过以前的测试。如果是的话,那么这个问题就象是一个回归的错误。注意由于同一测试条件有可能出现在多个测试用例中,这个步骤就不仅仅只是检查一个测试用例在以前的多个结果。
- 总结Summarize:在bug report的第一行写上错误的总结是非常关键的。测试人员要花些时间思考已发现的错误对客户有何影响。这不仅仅要求测试人员编写的报告要能够吸引读者,使和管理层的沟通清晰,还要能够帮助设置错误修复的优先级别。
- 精简Condense:在bug report的初稿完成后,测试人员应该反复阅读它,集中剔除那些没有关系的步骤或词语。隐含的或模糊的说明和那些由于对没有任何关系的细节或者那些在重现错误过程中不需要的步骤而消磨报告欢迎程度的无穷唠叨都不是bug report的目标。
- 消除歧义Disambiguate:测试人员在精简空话的同时或其之后随即应该再仔细检查报告是否有会产生误解的地方。测试人员应该尽量避免使用模糊的,会产生歧义的和主观的词语。目标是使用能够表述事实,清楚的,不会产生争执的词语。
- 中立Neutralize:如文中所述,作为坏消息的传递人,和善地提交消息是一个挑战。如同所有的错误总结一样,独立的bug report在措辞方面应该保持公正。攻击开发人员,指责潜在的错误,企图诙谐或使用挖苦将引起开发人员的憎恶,并且使注意力从“提高产品质量”这个大的目标上转移开了。谨慎的测试人员只用Bug report来描述事实。
- 检查Review:一旦测试人员感觉bug report是他能够编写的最好版本,他应该将报告再给一个或多个同行进行检查。他的同事们也应该给出一些建议,为了澄清问题不断地提问,如果适当的话,甚至可以挑战“错误成灾”的结论。在允许的时间里,测试小组应该尽可能提交最好的bug report。
Good |
Bad |
概要(Summary)
Arial, Wingdings和 Symbol字体破坏了新文件。
重现问题的步骤(Steps to Reproduce):
1. 启动SpeedyWriter编辑器, 接着创建了一个文件.
2. 输入4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”,
3. 选中4行文字,点击字体的下拉菜单,选择Arial.
4. 所有的文字转变成了控制字符,数字和其他一些二进制的数据.
5. 尝试了3次,每次都可以重现这个问题。
隔离(Isolation)
这个问题是新出现在build 1.1.018;相同的测试用例是在builds 1.1.007 (System Test entry) 和 1.1.017中通过测试的.
使用Wingdings和Symbol字体也可以重现这个问题,但Times-Roman, Courier New和Webdings字体都没有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。保存此文件再关闭它,然后再打开文件,这个错误还是存在。
在转换字体之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下,在Solaris, Mac或其它地Windows平台下不出现这个问题。
|
在格式一些文字成Arial字体时,我创建的新文件中所有的内容被毁坏了。 |
Good |
Bad |
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2. 然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
|
在格式一些文字成Arial字体时,讨厌的bug捣毁了我创建的新文件中所有的内容,浪费了我的时间。 |
Better |
Good |
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,是不会产生这个错误。
这个错误只出现在Windows98平台下。
|
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2. 然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
这个问题在Solaris下没有出现。
|
Better |
Good |
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下。
|
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,是不会产生这个错误。
这个错误只出现在Windows98平台下。
|
Better |
Good |
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试.
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下。
|
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下。
|
Better |
Good |
概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下。
|
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下。
|
Better |
Good |
概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 启动SpeedyWriter编辑器, 接着创建了一个文件.
2. 输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”,
3. 选中文字,点击字体的下拉菜单,选择Arial.
4. 这个讨厌的bug捣毁了所有的文字,变成了一些毫无意义的垃圾,浪费了用户的时间.
5. 尝试了3次,每次都可以重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。保存此文件再关闭它,然后再打开文件,这个错误还是存在。
在转换字体之前保存文件,将不会产生这个错误。
在已经存在的文件里,是不会产生这个错误。
这个错误只出现在Windows98平台下。
|
概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2.然后我输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采用bold, italic, strikethrough, 和underline不同的效果。
3. 我选中了文字,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把所有的文字变成了毫无意义的垃圾,浪费了用户的时间。
5. 我尝试了3次,每次都能够重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。我保存此文件再关闭它,然后再重新打开,这个错误还是存在。
如果在未将文字变成“Arial”之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下。
|
Better |
Good |
概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 启动SpeedyWriter编辑器, 接着创建了一个文件.
2. 输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”,
3. 选中4行文字,点击字体的下拉菜单,选择Arial.
4. 这个讨厌的bug捣毁了所有的文字,变成了一些毫无意义的垃圾,包括控制字符,数字和其他一些二进制的垃圾数据,浪费了用户的时间.
5. 尝试了3次,每次都可以重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
相同地步骤下,Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。保存此文件再关闭它,然后再打开文件,这个错误还是存在。
在转换字体之前保存文件,将不会产生这个错误。
在已经存在的文件里,是不会产生这个错误。
这个错误只出现在Windows98平台下,在Solaris, Mac或其它地Windows平台下不出现这个问题。
|
概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 启动SpeedyWriter编辑器, 接着创建了一个文件.
2. 输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”,
3. 选中文字,点击字体的下拉菜单,选择Arial.
4. 这个讨厌的bug捣毁了所有的文字,变成了一些毫无意义的垃圾,浪费了用户的时间.
5. 尝试了3次,每次都可以重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。保存此文件再关闭它,然后再打开文件,这个错误还是存在。
在转换字体之前保存文件,将不会产生这个错误。
在已经存在的文件里,是不会产生这个错误。
这个错误只出现在Windows98平台下。
|
Better |
Good |
概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 启动SpeedyWriter编辑器, 接着创建了一个文件.
2. 输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”,
3. 选中4行文字,点击字体的下拉菜单,选择Arial.
4. 所有的文字转变成控制字符,数字和其他一些二进制的数据.
5. 尝试了3次,每次都可以重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
相同地步骤下,Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。保存此文件再关闭它,然后再打开文件,这个错误还是存在。
在转换字体之前保存文件,将不会产生这个错误。
在已经存在的文件里,不会产生这个错误。
这个错误只出现在Windows98平台下,在Solaris, Mac或其它地Windows平台下不出现这个问题。
|
概要
Arial, Wingdings和 Symbol字体破坏了新文件
· 重现问题的步骤:
1. 启动SpeedyWriter编辑器, 接着创建了一个文件.
2. 输入了4行文字, 每次重复输入“The quick fox jumps over the lazy brown dog”,
3. 选中4行文字,点击字体的下拉菜单,选择Arial.
4. 这个讨厌的bug捣毁了所有的文字,变成了一些毫无意义的垃圾,包括控制字符,数字和其他一些二进制的垃圾数据,浪费了用户的时间.
5. 尝试了3次,每次都可以重现这个问题。
隔离
这个问题是新出现在build 1.1.018的;相同的测试用例在builds 1.1.007 (System Test entry) 和 1.1.017中通过了测试。
相同地步骤下,Wingdings和Symbol字体同样也有这个问题。
基于模糊的猜测,这个可能只是一个关于格式化的问题。保存此文件再关闭它,然后再打开文件,这个错误还是存在。
在转换字体之前保存文件,将不会产生这个错误。
在已经存在的文件里,是不会产生这个错误。
这个错误只出现在Windows98平台下,在Solaris, Mac或其它地Windows平台下不出现这个问题。
|
编写优秀Bug报告的艺术及案例分析的更多相关文章
- 如何用 Robotframework 来编写优秀的测试用例
介绍 这篇文档将会是一篇在「高层面」的怎么用 Robotframework 来编写优秀测试用例的原则.至于如何使用 Robotframework 来与您的待测试系统相作用这样的细节讨论是不包含在这篇文 ...
- Bug报告提交规范
首先声明,bug的测试规范应该在公司的正式文档建立.本建议非正式文档,有些内容可能不正确,有些内容可能需要继续商榷,甚至有些内容同公司规范有冲突.如果发现问题,直接忽略本文相应内容.本帖本意仅就工作中 ...
- Mybatis环境搭建中的案例分析 及 如果自己编写DAO接口的实现类
Mybatis环境搭建中的案例分析public static void main (String[] args) throws Exception { //读配置文件 //第一个: 使用类加载器,只能 ...
- 098 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 02 编写并测试Subject类
098 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 02 编写并测试Subject类 本文知识点:编写并测试Subject类 说明: ...
- 099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类
099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类 本文知识点:编写并测试Subject类 说明: ...
- Approach for Unsupervised Bug Report Summarization 无监督bug报告汇总方法
AUSUM: approach for unsupervised bug report summarization 1. Abstract 解决的bug被归类以便未来参考 缺点是还是需要手动的去细读很 ...
- K米APP案例分析
关于 K米 -- 的案例分析 产品 K米的APP (全国KTV点歌,手机直播,互动,交友,预订)的Android客户端 第一部分 调研,评测 评测: 软件的bug,功能评测,黑箱测试 • 下载并使用, ...
- 《深入理解Java虚拟机》-----第5章 jvm调优案例分析与实战
案例分析 高性能硬件上的程序部署策略 例 如 ,一个15万PV/天左右的在线文档类型网站最近更换了硬件系统,新的硬件为4个CPU.16GB物理内存,操作系统为64位CentOS 5.4 , Resin ...
- [BUAA2021软工助教]案例分析作业总结
目录 一.作业链接 二.优秀作业推荐 A+作业推荐 A作业推荐 三.总结 所有案例分析总结 特色与优点 问题与建议 不同类产品案例分析Bug汇总 CSDN问答社区.Stack Overflow.Seg ...
随机推荐
- elasticsearch 口水篇(6) Mapping 定义索引
前面我们感觉ES就想是一个nosql数据库,支持Free Schema. 接触过Lucene.solr的同学这时可能会思考一个问题——怎么定义document中的field?store.index.a ...
- vue中mounted中无法获取到dom元素
一.解决方案: 加上异步setTimeout,延迟获取dom的代码的执行 mounted() { // debugger this.$nextTick(()=> { setTimeout(()= ...
- 切换了webview 定位不了的解决方法 (还没有试,记录在此)
# 切换到 webview time.sleep(2) print(driver.contexts) driver.switch_to.context('WEBVIEW_com.tencent.mm: ...
- Spring @Async实现异步调用示例
什么是“异步调用”? “异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行:异步调用指程序在顺序执行时,不等待异步调用的语句返回结果 ...
- 信息安全-加密:RSA 算法
ylbtech-信息安全-加密:RSA 算法 RSA公开密钥密码体制.所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制. 1.返 ...
- 廖雪峰Java6 IO编程-2input和output-5操作zip
1.ZipInputStream是一种FilterInputStream 可以直接读取zip的内容 InputStream->FilterInputStream->InflateInput ...
- 我优化了一下:jquery点击元素以外任意地方隐藏该元素的方法
我优化了一下 $(document).bind('click', function (event) { var evt = event.srcElement ? event.srcElement : ...
- [UE4]打包EXE
Building configuration 1.Development:开发模式.不会压缩文件 2.Shipping,成品模式.移动版本会自动压缩文件
- win10家庭版怎么开启Administrator超级管理员帐户
一.win10家庭版开启administrator方法: 1.通过Cortana搜索cmd,匹配出“命令提示符”,右键以管理员身份运行: 2.在打开的命令提示符窗口输入net user admin ...
- T-SQL 带参数存储过程
创建带参数的存储过程 use StudentManager go if exists(select * from sysobjects where name='usp_ScoreQuery4') dr ...