编写优秀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 ...
随机推荐
- vagrant在windows下的安装和配置
记录一下安装和配置过程中的一些坑步骤一分别下载vagrant和VirtualBox,我这里下载的是vagrant_1.9.1.msi 和 VirtualBox-5.1.14-112924-Win.ex ...
- web环境中微信JS-SDK配置
一.公众号相关设置 首先,在公众号中进行JS安全域名的设置,在公众号设置-功能设置中选择JS接口安全域名,点击设置进入设置对话框.按照要求逐步进行,完成设置. 二.页面请求发送与处理 引入所需js: ...
- vuex状态管理2
在vuex的官网https://vuex.vuejs.org中,提到的核心概念一共有5个,分别是State.Getter.Mutation.Action和Module,在上一篇随笔中,我们主要用到其中 ...
- JavaScript之图片操作5
本次的图片操作是要实现模仿天猫淘宝的放大镜效果,如下图所示: 其实现原理其实很简单,主要就是定位的运用,在上面的图中,左边是一个div,它的大小就是左边图片的大小,我们称为左窗口(原图),红色部分我们 ...
- 廖雪峰Java2面向对象编程-3继承和多态-1继承
1.继承 继承是一种代码复用的方式. Student与Person有相同部分的代码. Student可以从Person继承,这样Student获得了Person的所有功能,只需要编写新增的功能即可.通 ...
- Hive学习笔记一
1. Load的使用 //在1.x版本中定义long数据类型会报错(用bigint代替) create table t_load_stu(name string,age bigint) row for ...
- cnn进行端到端的验证码识别改进
keras_cnn.py 训练及建模 #!/usr/bin/env python # coding=utf- """ 利用keras cnn进行端到端的验证码识别, 简单 ...
- [UE4]手柄导航 Navigation
Navigation是对应游戏手柄.Left.Right.Up.Down.Next.Previous分别对应游戏手柄上的左.右.上.下.下一个.上一个按键. Left.Right.Up.Down.Ne ...
- locals()和globals()
都是获取当前作用域的内容: locals() 获取局部作用域的所有内容 函数内:获取locals()之前的,当前作用阈所有内容 函数外:获取打印前, 当前的作用域所有内容 在闭包内: 会把使用到的外层 ...
- HBase核心知识点总结
一.HBase介绍 1.基本概念 HBase是一种Hadoop数据库,经常被描述为一种稀疏的,分布式的,持久化的,多维有序映射,它基于行键.列键和时间戳建立索引,是一个可以随机访问的存储和检索数据的平 ...