编写优秀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 ...
随机推荐
- 禁止光盘优盘自动播放(Shell Hardware Detection服务)
strComputer = "."Set objWMIService = GetObject("winmgmts:\\" & strComputer & ...
- html框内文字垂直居中的方法
由于无法知道框内文字的高度,很难确定垂直空间的位置.vertical-align:middle仅对td元素有效,无论单行和多行均可实现垂直居中.
- C/C++基础----关联容器
基本属性 与顺序容器的差别,按照关键字来保存和访问,而顺序容器是按照容器中的位置来顺序保存和访问. map:每个元素是一对键值(key-valye)组合:set每个元素只包含关键字.. 每个根据关键字 ...
- C#使用MapReduce实现对分片数据的分组
事由:mongodb已经进行数据分片,这样就不能使用一些方法就不能使用,例如eval,$group如果尝试使用mongodb会提示 Error: { , "errmsg" : &q ...
- PAT 乙级 1076 Wifi密码 (15)
下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用wifi,又怕耽误亲们的学习,现将wifi密码设置为下列数学题答案:A-1:B-2:C-3:D-4:请同学们自己作答,每两日一换.谢 ...
- PAT 乙级 1049 数列的片段和(20) C++版
1049. 数列的片段和(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 给定一个正数数列,我们可以从中截 ...
- 客户端负载均衡Ribbon之二:Loadbalance的源码
Load Balance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法. 像nginx可以使用负载均衡分配流量,ribbon为客户端提供负载均衡,dubbo服务调用里的负载均衡 ...
- 信息安全-加密:RAS 加密
ylbtech-信息安全-加密:RAS 加密 1.返回顶部 1. RSA 是不对称的加密(加密密钥和解密密钥不同 其中 一个为公钥,一个为私钥): 公钥和私钥的产生是基于一对很大的素数(十进制来说 ...
- [转][C#]Web.config 相关配置
设置默认首页 <?xml version="1.0" encoding="UTF-8"?> <configuration> <sy ...
- [Html] jQuery Grid
https://www.jqwidgets.com/ jQuery Grid https://marketplace.visualstudio.com/items?itemName=jqwidget ...