前言
在99年的Quality week上的一次演讲中,微软的一个测试司理,Roger Sherman指出了由于“不可重现”导致bug关闭的重要原因。这是一个非常惋惜的环境,由于如许的bug report浪费了告急的开辟筹划中的宝贵时间,增加了对产物质量完满是无关紧急的事故,同时导致了在开辟职员和测试之间的挫败感和差的感觉。偶然,bug report是由于短暂的或随机的变乱,测试和开辟之间差别等的工具和设置,大概在测试的环境下对精确的举动的暗昧界说而产生的,但是很多的由于不可重现而被关闭的测试陈诉是由于形貌不清晰,被误解,大概只是笔墨的错误。
荣幸的是,我学习到一些可以或许引起管理层注意,更清晰的和开辟职员沟通并得到修复的编写精良bug report的诀窍。这些本领不但仅提供了是在被修复的标题的比例方面得到了可靠的回报,而且在同开辟职员和管理层的通过中也得到了回报。在我管理的项目中使用这种方法编写bug report,8份bug report中约莫只有一个没有被修复。
这篇文章的头脑只有当你的陈诉针对的测试实行过程是专业的质量工作才可以发挥作用。聪明地实行完备的测试包是产生可靠的测试状况信息的底子的此中一个因素。在很多的测试文献中广泛地先容了多种多样的关于怎样构建如许的测试包的方法。选择和你质量风险管理需求类似等的技能而且使之顺应你的详细环境,灵敏地监视已筹划的测试的实行过程,如许你就可以拥有可靠的测试实行过程。
别的一个关键的因素-bug report,却没有得到太多的关注。这好坏常令人遗憾的,由于精良的bug report对反映测试小组真实的和可明白的工作质量同测试本身一样都好坏常告急的。试想一下:如果你不能用开辟职员可以或许明白的术语和可以或许用于调试的方法给开辟职员表明一个错误,他怎么可以或许修复标题呢?如果你不可以或许在bug report中提出象“保险杆标签”(bumper sticker)一样的错误总结来引起管理层的注意,你又怎样让他们关心你们发现的标题呢?
Bug report的焦点是对错误的形貌。表格1中是一个关于好和差的错误形貌的例子。编写好的bug report是一种好的艺术形式。采取以下的10条本领可以资助你的小组进步编写bug report的质量:
- 构造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。
以上10条本领可以资助你和你的小组提交正确简便的,彻底校订的,经心构思的,高质量的技能文档。测试小组应该会集编写bug report的任务,测试组长和司理应该让测试构成员清晰地认识到编写精良的bug report是一项主要的工作任务。权衡精良的bug report的质量指标应该包罗如下:
o 对管理层来说,是清晰明白的,特殊是在概要这一级;
o 对于开辟部门是有用的,重要是给出可以或许让开辟职员高效地调试标题的相干信息
o 可以很快的将bug从“Opened”状态变化成“Closed”状态,镌汰为得到更多的信息从开辟职员打回的差的bug report并导致测试职员返工的时间。
改进bug陈诉的流程是须要耗费一些时间的,但是也给予了结果明显的回报。起首,简单的流程改进了测试小组和高层、平行管理层之间的沟通,加强小组的信托度,光荣和鼓励管理层给测试投资更多的资源。第二,安稳地递交陈诉给开辟职员促进了测试和开辟职员之间积极的关系。第三,更短的bug生命周期是更加有用的,在时间上之前耗费在编写精良bug report上的时间和后期由于返工差的bug report耗费的时间相抵消。这些回报资助开辟流程通过有用的沟通和高服从的流程得到更好的产物质量。
|
Good
|
Bad
|
|
<u>概要(Summary)</u>
Arial, Wingdings和 Symbol字体粉碎了新文件。
<u>重现标题的步调(Steps to Reproduce)</u>:
1. 启动SpeedyWriter编辑器, 接着创建了一个文件.
2. 输入4行笔墨, 每次重复输入“The quick fox jumps over the lazy brown dog”,
3. 选中4行笔墨,点击字体的下拉菜单,选择Arial.
4. 全部的笔墨变化成了控制字符,数字和其他一些二进制的数据.
5. 实验了3次,每次都可以重现这个标题。
<u>隔离(Isolation)</u>
这个标题是新出如今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字体时,我创建的新文件中全部的内容被粉碎了。
|
Table1
案例分析:SpeedyWriter
SpeedyWriter --
· 用Java开辟的字处理惩罚器(word processor)
· 支持常见的字处理惩罚器功能
· 在案例分析中,用“italics”字体突出体现内容的形貌上有差别
步调1、构造Structure
· 采取深图远虑的,仔细的方法举行测试
· 依照编写好的大概运行由编写好的和尺度化的流程自动化的测试用例
· 做仔细的记载
步调2、重现Reproduce
|
Good
|
Bad
|
|
· <u>重现标题的步调:</u>
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捣毁了我创建的新文件中全部的内容,浪费了我的时间。
|
步调3、隔离Isolate
|
Better
|
Good
|
|
· <u>重现标题的步调:</u>
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平台下。
|
· <u>重现标题的步调:</u>
1. 我打开 SpeedyWriter编辑器, 接着创建了一个文件。
2. 然后我输入了4行笔墨, 每次重复输入“The quick fox jumps over the lazy brown dog”, 每次采取bold, italic, strikethrough, 和underline差别的结果。
3. 我选中了笔墨,点击字体的下拉菜单,选择Arial。
4. 这个讨厌的bug把全部的笔墨酿成了毫偶然义的垃圾,浪费了用户的时间。
5. 我实验了3次,每次都可以或许重现这个标题。
隔离
这个标题在Solaris下没有出现。
|
步调4、归纳Generalize
|
Better
|
Good
|
|
· <u>重现标题的步调:</u>
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平台下。
|
· <u>重现标题的步调:</u>
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平台下。
|
步调5、对比Compare
|
Better
|
Good
|
|
· <u>重现标题的步调:</u>
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平台下。
|
· <u>重现标题的步调:</u>
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平台下。
|
步调6、总结Summarize
|
Better
|
Good
|
|
概要
Arial, Wingdings和 Symbol字体粉碎了新文件
· <u>重现标题的步调:</u>
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平台下。
|
· <u>重现标题的步调:</u>
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平台下。
|
步调7、精简Condense
|
Better
|
Good
|
|
概要
Arial, Wingdings和 Symbol字体粉碎了新文件
· <u>重现标题的步调:</u>
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字体粉碎了新文件
· <u>重现标题的步调:</u>
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平台下。
|
步调8、消除歧义Disambiguate
|
Better
|
Good
|
|
概要
Arial, Wingdings和 Symbol字体粉碎了新文件
· <u>重现标题的步调:</u>
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字体粉碎了新文件
· <u>重现标题的步调:</u>
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平台下。
|
步调9、中立Neutralize
|
Better
|
Good
|
|
概要
Arial, Wingdings和 Symbol字体粉碎了新文件
· <u>重现标题的步调:</u>
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字体粉碎了新文件
· <u>重现标题的步调:</u>
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平台下不出现这个标题。
|
步调10、查抄Review |