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

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

MOTODEV初体验,高效Android开发工具 Simple让BASIC语言编写Android程序 MOTODev试用报告- Android开发效率之源 安装MOTODEV Studio for Android版方法 Android开发工具-motoDEV studio介绍 Android过后Chrome OS又是如何开发? Android安全模型导致开发时功能受限 Android导出一个JAR库 APK汉化原理及方法 APK文件格式分析,Android反编译入门(一) ApiDemos中的Android Widget例子解析 APK签名导出向导 - Use the Export Wizard 剖析Android自带Widget - Music播放器 剖析Android自带Widget - Clock指针钟表 C#取得Excel工作簿工作表名称 C#中用Automation自动化方式对Excel的操作 VB如何打开或保存为有密码保护的Excel sheets工作表 VB在Excel表格文件中搜索指定内容 VB复制Excel表到另外一个Excel中 Java实现生成网站快照缩略图片 php实现生成网站快照缩略图片 C#实现生成网站快照缩略图片 VB比较两个Excel表格的内容 VB实现Excel按列或行排序 VB删除EXCEL表格指定行 用vb.net写的验证码识别代码 VB删除EXCEL表格指定列 Oracle数据库Windows 2003环境自动备份批处理 VB通过ADODB连接EXCEL表格文件读取数据 使用VBScript卸载软件 Discuz X2用户注册过程SQL java中如何象windows那样拦截其他窗口的消息? 告别CSDN,第一个全部进入全部给分 同一个submit可否和如何递交给不同的服务器端的不同的action处理? 一个关于tomcat中servlet的棘手问题。。。。。 谁有jbuilder6的license keys或serial number? 請教:vb里dim oRs as ADODB.Recordset與dim oRs as new ADODB.Recordset的區別在哪里? 请大家指点下在深圳哪里可以办个边防证?谢谢 在程序中如何得到一网页中的按钮焦点? 用vc生成曲面要用到那些类? 有關微軟的MCSE認証 请问如何用DELPHI实现拨号连接服务器? 有关界面的问题 如何实现Windows 2000 Server 远程拨号登录?请奉上你的经验和智慧!!! 莱鸟级的问题,你敢来挑战吗? TADODataSet 读磁盘文件是怎么用的? 我的毕业设计,一百分的送分题啊!!!!!!!!!!!!!!!!!1 请教这个函数的作用 //创建列的问题,谁帮我看一看缺什么,谢了 如何在本地访问远程数据库,用什么样的方法在速度、安全上都好一些 请大家指点下在深圳哪里可以办个边防证?谢谢 各位大侠,谁能介绍一下utf8,还有怎么把它转到gb2132编码呢? 我的毕业设计,一百分的送分题啊!!!!!!!!!!!!!!!!!1 窗体问题。。。 现有一个小项目: 怎样动态增加表格? 有人解决了jive的中文问题吗?? 报表就是查询结果吗?用VB很难做吗?为什么这么多人讨论,请问设计报表难点是什么? 请问我的VC地ClassView无法打开,有什么快速的方法可以打开 一个关于tomcat中servlet的棘手问题..... 谁可以帮我提供一个PHP的站内目录管理程序! 请问c++中,函数重载和虚函数有什么区别,在实现多态性方面有差别吗? 现有一个小项目: 如何对多个按钮的BN_ClICK进行映射 SQLserver备份与恢复 Delphi中怎样声明一个类?怎样实现多态?如果要在类库的一个类中添加一个方法又怎么做? 然后怎样封装它?是不是封装以后维护就非常简单? 可 计算机网络--〉清华大学出版社,作者:Andrew S Tanenbaum哪里有电子版下载 把播放F4的时间上《我们程序员都是活雷锋》 随便问问:VC能不能调用Access中的Form,Report 用ADO在线程中打不开数据库,请帮忙 如何在VB中动态的加载Dll,并使用其加载的函数??? 高手们看过来 Oracle初学,兄弟们多帮忙了! 怎么打开一个.txt文件,然后一行一行读取? 请问大家知道一个局域网里的IP在因特网上如何表示的呢。 请问各位,如何在我的程序中用代码生成Access数据库? 神啊,救救我吧,我想要含笑半步喋=== 请教NT4。0下的IE2。0怎样升级到IE6。0或IE5。0? 我要在程序中重载CBitmap类的一个函数,请问如何做 为什么我在bcb的new中找不到multitier(就是多层)选项页 请问如何知道数据库中有哪些表存在?在线等待 向各位大侠求救中 稀 硫酸氢钠溶液 与 碳酸钠溶液 的化学方程式 化学分辨稀硫酸,氯化钠溶液,氢氧化钠溶液.只用酚酞指示剂和适当的仪器设计一个简单的实验,将三种溶液区别出来,写出相关实验现象和结论.除此之外,你还能想出哪些鉴别方法. 氧气和烧碱溶液会反应吗?氯化钠和水会反应吗? 碳酸钠和硫酸氢钠可以反应么如上...讲一下关于酸式盐和盐的反应问题........ 我国根本政治制度和我国基本政治制度是什么 中国的基本政治制度、根本政治制度是什么?详细说明他们的含义、意义等~ 亚硫酸氢钠、硫酸氢钠、碳酸钠、碳酸氢钠、硫酸钠的电离和水解的化学反应方程式? 中国的政治制度 我国基本政治制度是什么?我国基本制度是什么? .下列物质中碳元素质量分数最小的( ) A.碳酸钙 B.干冰 C.金刚石 D甲烷 不懂是什么 意思啊 3号线 可以直接到上海的虹口足球场吗或者 从火车站出去后 什么可以直接坐到虹口足球场 紧急的 已知某固体粉末是由NaCL,Ba(N03)2,CuSO4,Na2SO4,Na2CO3中的一种或几种组成,取这种粉末加足量的水,振荡后呈浑浊,再加稀盐酸,沉淀不溶解,过滤后得无色溶液,取滤液并滴加AgNO3溶液,产生白色沉淀色沉 就一种碳元素能组合成多少种物质,像碳,钻石 篮球的一号位,二号位,三号位…等是啥意思 中华人民共和国基本的政治制度是什么? 只含有碳元素的物质 A.一定是金刚石 B.一定是石墨 C.一定是纯净物只含有碳元素的物质 A.一定是金刚石B.一定是石墨C.一定是纯净物D.可能是混合物 cf里面的 一号位 二号位 三号位 不是 是在沙漠灰中 一号位是主道机枪 其他的不知道了. 已知某固体粉末是由NAC1、BA(NO3)2、CUSO4、NA2SO4、NA2CO3中已知某固体粉末是由NaC1、Ba( N03)2、CuSO4、Na2SO4、Na2C03中的一种或几种组成,取这种粉末加足量的水,振荡后变浑浊,再加稀盐酸,沉淀不溶解, 将金刚石和石墨混在 一起,是纯净物还是混合物[ 他们都是C原子构成] 1、2、3号是什么意思GAY 里1、2、3、号是什么意思? 我国基本政治制度有哪些? 金刚石和石墨放一起是单质还是混合物 怎样分离金刚石与石墨或碳混合物?得到纯净金刚石!金刚石的熔点是3550℃,石墨的熔点是3652℃~3697℃(升华)。石墨熔点高于金刚石。加热是没有办法得到金刚石的,我说的是人造金刚石,能 氢氧化钠溶液易变质的原因是什么? 将钻石与石墨混合在一起,得到的是混合物么? 美国政治制度为何会如此持久 这对我们中国有什么启示? 新中国政治制度的突出特点概括地说 中世纪欧洲的基本政治状况是 ( ) ①封建割据严重 ②封建王权衰弱③天主教会居于至高无上的地位 ④世俗王权与教会神权处于绝对对立状态A.①②③④ B.①②③ C.②③④ D.①③④怎么选择 列出15个食物中的可数名词 美国与日本政治制度异同,中国与美日政治制度的不同及根本原因能不能简明扼要, 现有一包白色粉末可能由NaCl Na2SO4 Na2CO3 CuSO4 中的一种或几种组成如题、现做如下实验:1.取少量粉末,加水溶解得无色溶液.2.另取少量粉末,滴加稀盐酸,无明显现象.请回答(1)根据上述实验 不经过思考,脱口而出的词语是什么, 什么是人类的1号病、2号病、3号病啊? 一包白色粉末可能是CuSO4,CaCl2,Na2CO3,NaCl四种物质中的一种或几种组成,为确定白色粉末成分,一包白色粉末可能是CuSO4,CaCl2,Na2CO3,NaCl四种物质中的一种或几种组成,为确定白色粉末成分,进行了如 李阳所说的脱口而出是什么意思?如何检验自己能否脱口而出? 为什么说中国的政治制度要比美国的政治制度先进? 想请教下,以聚乙二醇为基础油和以丙二醇为基础油产出的切削油有何区别呢?分别可以用在哪些领域呢?谢谢乙二醇可以用作切削油的基础油吗?如果可以的话又是用来切什么的啊?谢谢哦! 自得其乐是什么意思?脱口而出什么意思? 太空3号治什么病? 中世纪欧州最强大的是哪国?是不是神圣罗马国? 中国早期政治制度的特点是什么? 什么是疾病险?疾病险的定义是什么?如何定义疾病险?疾病险的具体含义是什么? 中世纪的欧洲国家如果我想去有保存多一点的中世纪的建筑物,文化的国家,有什么国家? 中国早期政治制度的特点 美国、中国两国的政治制度 中世纪时期欧洲有哪些国家?越详细越好...好的有追分... 有一包白色粉末,其中可能含有NaCl、CuCl2、Ba(NO3)2、NaCO3、NaSO4、K2CO3.先按下列步骤进行试验:1.将该粉末溶于水得到无色溶液和白色沉淀2.再滤出的沉淀中加入稀硝酸后,有部分沉淀溶解,同时产 吾病甚中“甚”是什么意思? 不小心把水银弄到了水壶里喝了有什么伤害吗? “重口”是什么思今天看了新一期的洛奇花园,其中:“原来搞阴郁音乐的.都这么重口?”中的“重口”是什么意思?我不要网上抄的!我想要好理解的!(我很纯jie) 往往不病则已、是什么意思? 沾过了水银的水壶还能不能用?今天用温度计的时候,温度计破裂,水银掉到了烧水壶里.那么这个水壶以后还能不能用?能用的话该怎么消毒?不能用又该怎么处理? 好重口!这是啥片儿啊? 烷烃的同分异构体的种数与碳原子个数有没有规律(有什么规律)? 水银不小心掉在了正在烧开水的热水壶里,把水倒掉再烧一壶,还可以喝吗?水银会不会在盖子上凝固呢? 重口什么意思 在氧气、铝、二氧化锰、硫酸、过氧化氢、氢氧化钠、氢氧化钡、氯化钠、硫酸铜中,选出恰当的物质,……在氧气、铝、二氧化锰、硫酸、过氧化氢、氢氧化钠、氢氧化钡、氯化钠、硫酸铜 碳酸钠和硫酸氢钠反应的化学方程式二楼和三楼都是我的朋友,而且都答得不错!我该选谁?(看到这个多少给我回一个) 我国的政治制度是什么?根本政治制度. 什么与氢氧化钠反应生成氯化钠和难容物,难容物与氧气和水反应生成另一种难容物
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘