说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Bug报告:小角色,大用处!

HTML文档下载 WORD文档下载 PDF文档下载
软件测试是向开发者反馈软件存在的问题,一般以bug报告的形式进行。开发人员希望从bug报告那里收到错误信息的明确定位,而不是诸如“软件不好用”这样的无用信息。测试人员的工作是尽量的向技术支持方向靠拢。

本文作者Chris Kenst是一位专业的bug报告编写人员,曾参加Bug Advocacy Class的相关培训。在这片文章里,他为我们分析了bug报告到底有哪些作用,能带来哪些影响,在软件开发团队里又有着怎样的重要地位等等。(下面是编译内容)

为何要编写bug报告?

编写Bug报告的目的是为了让开发人员看到程序的错误,当然测试员也可以亲自给开发人员示范,当面交流,也可以在bug报告中给出导致程序出错的、详尽的操作步骤的描述。交流过程中尽量使用bug管理工具提出,这样做回归测试的时候,就能够有迹可循有据可依,同时也能够规范bug管理的过程。

对于软件测试人员来说,bug报告是我们能看的到的最明显的工作成果之一——是对系统调查的有形资产。测试人员的bug报告的质量好坏将直接影响到阅读报告的人如何理解这些bug,反之亦然,也将关乎到测试人员在程序员环境里的可信度和影响力。另外,bug报告在开发团队和测试团队之间起到一个重要的交流媒介的作用,因此,接下来将要强调的是如何理解bug报告和如何提高书写bug报告的技巧。

书写bug报告看上去很简单,像程序员、测试人员、内部和外部客户、分析师,他们并没有写过多少bug报告。不是和代码测试相关的人员就可以写这个报告的:某些东西很容易做,但并不意味着能把它们做好。

如何编写bug报告?

编写bug报告的重点是什么呢?找到bug,解决问题!作家Cem Kaner称之为Bug Advocacy,我们所倡导的方法是修复。程序员根本没有时间来阅读一个毫无意义的bug报告。如果出现的bug是相当明显的,程序员不用太多的信息就能将它修复,也就更谈不上什么bug报告了。我们所倡导的bug或问题是在某种程度上我们理解是重要的,但别人可能不容易理解的。

如何来修复那些被提倡的bug呢?所编写的bug报告要清楚地描述问题细节,用一个严酷但诚实的方式来反映问题,这样相关负责人员就能意识到风险所在并想方设法修复bug。仅仅复制问题可能并不足够,还要通过影响程序员的决定来引导他们修复这些bug,所以编写出好的bug报告起着重要作用。

为了帮助更好的理解bug报告里的那些细节部分,可以使用启发式的RIMGEA方法:

R—Replicate it。(复制)在编写bug报告的时候,必须要包含足够的能够解决bug的信息:必备的步骤和条件,将这个bug复制到另一台设备上。建议使用至少两台不一样的设备——一台主动力计算机和一台从动力约束计算机。其实,这些步骤在虚拟环境里同样可以施行。

I—Isolate it。(孤立)把问题复制之后,需要通过消除一些变量来确定复制问题所需的最简单的步骤或必要条件。同时,也要确保每个报告里只写一个问题,更要避免“一个bug修复了而其他bug仍然悬而未解”这样的情况出现。例如:在导入一个文件之后OpenOffice Impress挂掉了,但是复制品有25个步骤那么长,于是测试之后消除了一些变量,复制品只有6个步骤了。

M—Maximize it。(最大化)最大化的意思是做一些跟踪测试来观察除了刚开始在报告里提到的问题之外,是不是还有更严重的问题存在。跟踪测试包括改变方式、改变环境、改变输入值,甚至是改变系统配置。问题的严重性越大就越有可能说服程序员来修复这些问题。例如:我们无法将老的PowerPoint文件导入OO Impress,但是APP又不做出任何响应。经过一些跟踪测试之后,发现如果过量使用老的PowerPoint文件就会导致Impress死机。 

虽然最大化一个bug的过程比较有意思,但是在写bug报告的时候很费时。这其中就涉及到较为详细的四类变量:方法变量、环境变量、数据变量和系统配置变量。Markus Gartner的帖子里对这些变量做了详细的讲述。

G—Generalize it。(总结)对bug进行总结意味着我们可以了解这个问题所影响的人群范围是不是如之前所预料的那样大小。如果这只是一个角落案例,那么就在非极端环境下把这个问题展示出来。还是拿OO Impress为例,在改变输入值之后,不管输入什么类型的文件,只要是过量的,OO Impress都会死机。现在看起来,貌似不仅仅是老版本的PowerPoint用户遇到了麻烦。

E—Externalize it。(具体化)将对bug报告的注意力从程序上的问题转向相关联系人,这些人能够真实描述bug问题是如何对他们造成影响的。OO Impress因为过量导入文件而死机,与此同时也会阻止所有的用户导入适当的APP文件。还有可能阻止新的用户下载或安装APP,甚至是关闭现有依赖于兼容性的用户。

A—And say it clearly and dispassionately。(清晰冷静的表达)编写bug报告要确保别人能够理解报告所要表达的中心意思,报告的中心基调要保持中立,不冒犯阅读报告的任何一方(因为bug有可能是开发者导致的)。

如何成为一个Bug Advocate?

我们希望通过影响程序员、管理者和其它相关人员的决定来修复bug。只有清晰的bug报告才能达到这一目的,但要注意,还有一些同样重要的事情也可以影响我们成为Bug Advocates(并影响我们写这些报告的能力):

  • 软件错误的定义比较多(所以在bug报告里所说的错误要符合组织/团队的要求)。
  • 质量的定义也是比较多的。
  • 报告阅读者(开发者、测试人员、顾客)可能都带有在问题理解上的偏见。尽量减少他们之间的偏见,以解决问题为最终目的。
  • 要将无法解决bug的种种原因牢记于心:

  1. 参与者时间约束。
  2. 修复bug的成本过高。
  3. 在修复成本和添加一个顾客喜欢的功能之间进行权衡。
  4. 在读者眼里(管理者/程序员),bug编写者的可信度比较低。
  5. Bug问题只是一个角落问题,不可能影响所有的用户。

Bug Advocacy的价值

对于bug报告编写者来说,Bug Advocacy的价值真的很简单:

  • 丰富经验,写出更清楚更高效的bug报告。
  • 根据自身经验来评估别人的bug报告,并给出建设性的反馈。
  • 更好的理解bug报告所使用的交流媒介里所涉及到的细节/组成元素。
  • 在一个开源项目上贡献点时间和精力,回馈技术社区。
  • 在修复bug与否之间做出更好的权衡结果。

对于团队/组织来说,Bug Advocacy的价值在于贡献:

  • 更好的编写、评估和理解bug报告。
  • 增加深入探究、评估和改善bug报告的渴求欲。
  • 提升bug报告者的可信度,减少相互之间的偏见。
  • 更好的理解组织的需求。

下面引用Bug Advocacy课上Cem Kaner的话来作结束语:

最好的测试员不是发现了所有的bug或是让程序员难堪的人,最好的测试员是那个真正能够修复bug的人。                                                                                                        (编译/薛梁 校审/付江)

原文:MyTechFetish

Vb6.0编程技巧四则 VB6二进制双通道技术实战经典 VB6内置的内码转换功能 VB编程步步高-代码效率篇(一) VB编程步步高-杂类篇(二) VB编程步步高-杂类篇(一) VB编程的必备技巧 VB编程的一些心得 VB编程技巧几例 VB编程经验点滴 VB编程俱乐部问答 VB编程如何控制I/O口 VB编程问与答 VB编程之提速攻略(二) VB编程之提速攻略(三) Windows/VB编程逐月通 VB编写键盘拦截程序 VB常见问题解答(1) VB程序中处理随机事件 VB的多媒体控件VBPLAY.VBX简介 VB技巧点滴 VB技巧汇编 (一) VB剪贴板的用法 VB开发CAI软件的小经验 VB软件设计中的几个问题 VB新手常见问题解答 VB修改注册表一特例 VB与VC混合编程中处理消息的方法 VB中的进制转换是怎样的? VB中调用带参数存储过程的实现(数据库) VB中感叹号“!”与圆点“.”的用法差异 怎样在公司上网,不让管理员在服务器上查出记录? 请教getimageindex和selectedindex的应用 我想做这样的框架特效,谁知道哪里有这样的插件? 在sql/plus中,用insert语句向date类型字段插入数据,该怎么写? 有什么网站提供C++builder源程序下载?给你100分。 求教得到累计的简单方法 求画直线的算法 白痴问题,关于字符串 寻求 flashget V1.31 的注册码?! 第一次提问,请教如何统计一个文件夹下的某一类文件数目,如(*.txt)文件有几个,先谢了 网上下的一个程序,NetManager 编程居然出了这个问题..... 帮忙~~~~!用C#语句调用一个.exe文件??? 各位帮忙啊!怎么用程序生成access数据库! Word转换PDF文档时,图像失真问题如何解决 请问一下是不是中毒了,如何处理?...(很急的问题,在线守候) 怎样动态更新数据控件?快快求解?进者有分 如何合并磁盘上的两个Word文件为一个文件? 请问显卡的总线接口共有哪几种??比如PCI,ISA等等!!!!!!! 急!为什么数据已经删除了还看的到???在线等! 用template作c数组的问题,请各位进来帮帮忙,看一看! 如何在Notes的Web开发中,让嵌入视图列表有两种颜色隔行现实? 关于radio的问题,局简单 ping 不通网关! 小问题 这个打开数据库语句有何错误?老是说:'Open' : function does not take 4 parameters java执行操作系统命令的问题:如何判断多个操作系统? 硬盘逻辑出错!怎么办? 求购 侯捷翻译的《C++ Primer》 为论坛整齐起见,建议增加“转让分数”功能 再线求救:关于vector 小弟有事请教,关于用mysql同java构件安全的c/s应用的问题,高人请指点?分不是问题,不够再加 读取文件夹内容?来者有分! 关于reportbuilder换行的问题,很简单,来者有分!! 源程序错在那里了?把一个文件分成块,模拟文件在网上传输Stream! 获得硬盘的物理序列号 如何在一个页面里面既完成添加,又完成删除的操作,类似于收邮件的收件箱 JRE 1.4下,如何更改Applet安全性让IE可以支持一个无签名,且有特殊操作的Applet 各位老大,VB用什么方式调用SQL Server最好???(本人给分结贴最积极) 在SQL Server 中SQL语句连接与嵌套的效率的比较 谁知到在windos xp下是否可以用vc++6。0? 如何清理‘用户配置文件’?? 女友在深圳,身在广州,想要到深圳去工作,但又不知那边怎么样? vc6中有跳入成员函数实现的快捷键吗? 关于struts 的问题。 求助:"异或指针双向链表",偶怎么也弄不明白!:( rtf文件格式的问题 Sumtec、Latitude、Montaque 班主 帮我!!! 拨号上网什么卡最实惠? 关于delegate委托的问题 请问高手,如何用linux操作系统里的标准c函数获取bios时间,高分!!!! 求教!怎么实现这个设计!!!分不够还能加! VB whatever is,is right怎么两个be呢 The exercise books are so______that I can't carry them.(heavier heavy )选择合适的单词补全句子. 求一分耕耘 一分收获的作文 600字左右 What she did is right/Whatever she did is right区别RT 什么时候用play什么时候用plays什么时候用playing 作文"一分耕耘,一分收获"要写好点!要450字的哦!要是在晚上8点半就有的话,给他多分! “老师气急了”一句话扩充到200字;内容需有:心理描写,动作描写,肖像描写,语言描写,情境. Those bags are too heavy.you can't p___ carry all of them. He football every Sunday .A.play B.plays C.playing 纽约在电脑上是什么时区 作者为了说明萤石是—种真正有价值的宝石,运用的说明顺序是:,其标志性语句是什么? The bag is so heavy that that I can't carry it.The bag is ( ) ( )( )( ) to carry 现在纽约时间是几点?如题 It is choice that does not mean right or wrong.撒意思? 求英语时态填空题(含答案)包括一般现在时 一般过去时 现在完成时 过去完成时 现在进行时 过去进行时 …… 用一般将来时写一篇英语小作文要用will和be going to+动词原形 It is right or wrong to give it up?请能帮我解释上面那句英文是什么意思`` 英语时态填空题三、(用括号中动词的正确时态填空.每小题1分,共10分)1.How popular supersonic travel ________ (become) once Concord is in service?2. She ______ (write) five essays before the end of this term.3. With the developm 宇宙就是天空?天空就是宇宙吗?请尽快解决,谢谢了 He was not sure whether it is right or wrong.是什么从句? 根据成语猜地名,好难啊 天空就是宇宙吗 my hobby is playing football对划线部分提问 the e-book readers make it possible for students to throw a___ heavy school bags.怎么填 宇宙与天空一样吗 My hobby is playing football.对这句话进行提问( )your hobby? 、Right Is Right,Left is Also Right .翻译中文,要几种不同的中文翻译 太空和天空的区别 下列计量经济模型是否合理,为什么?①ln(人均食品需求量)=-2.0-0.5ln(人均收入)-4.5ln(食品价格)+0.8ln(其他商品价格)②ln(人均食品需求量)=-2.0+0.5ln(人均收入)-4.5ln(食品价格)+0.8ln(其他商品价格)③Ct The () of "right" is "left"o开头的单词 螃蟹刚死能吃吗 pkpm计算后各比值均满足,如何将模型修改得更合理更经济? 2010年9月16日到2014年9月16日等于多少年 阿里山的什么湖泊位于台湾岛 fun的ing形式 2014年是12.9运动多少年 (高一英语)在某一天开始和在某一天结束在某一天开始和在某一天结束,在英语中是些什么结构呢?如果“开始”用begin这个单词的话,后面该加什么呢?如果“结束”用end 这个单词,后面 [急] There is no right or wrong的反意疑问句There is no right or wrong,_______?_______,_____ ___ 请问怎样填写is there还是isn't there要的回答中文是:是的,没有.怎么翻译成英语是Yes还是no?回答是句子部分还是反 Where are the---bags?A.women's BWhere are the---bags?A.women's B.womens' C.women of D.of women 在某一天,你再也找不到我英文怎么讲? Is wrong or right Where are the______(twin)bags? Over there 你会不会在某一天打电话告诉我、你很想很想我.这句话的英文怎么说 what is right?what is wrong? Where are the -------(twin)bags?用所给词的适当形式填空 I don't need nothing怎么翻译,里面有什么用法 为什么在计量经济模型中存在随机误差项? 根据首字母完成句子 】The cat doessn't like zhe(m ),but it like running after it. 英文I don't konw nothing是什么意思 我看美剧,翻译成我什么都不知道,可是这不是双重否定吗?这是既定的口语习惯还是什么啊 写校运会运动员的优美句段不要诗 where are the grammys 2010给翻译下吧.不要用翻译工具翻译.回复我,求英语高手翻译给我. 找首歌英文歌I don't need...欧美的,女声.听到的歌词有 lazy girli don't need dad always told me mom...sacrifice everybody shut your mouth最后好像有 I don't ever care. 1982年到2014年有多少年了 作文一分耕耘一分收获 最好是议论文500到600左右 i don't need to type in english的意思 2014年和1314年差了多少年 以一分耕耘一分收获为内容,写一篇不少于500字作文,要写具体事例,不要名人的. 英语翻译Korean culture is really exciting right now.The Korean Wave is sweeping Asian countries including China.Young people are going crazy about Korean TV dramas,Korean pop songs,teakwood and the Korean language.The Korean Wave started a few ye play playing plays的区别 Jack enjoys______football after school.A.plays B.to play C.is playing D.playing
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘