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

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

开发者最爱的三款开发工具 Facebook开源JavaScript库:React 硬件天堂深圳行:从Seeed Studio、Knewone到柴火创客空间 消费应用开发难赚钱?做个企业app store吧 开发开源软件的智慧:够简单,很好用 历届中国云计算大会PPT集萃(终章):架构到实践的全面解析 透过现象看本质:详谈数据可视化 专家观点:HTML5无法彻底抹杀Native应用 Google地图工程主管Raj Shah跳槽至微软在线服务部门 微软证实Windows 8.1引入类“开始”按钮 系统6月26日开放下载 PHP开发者意向调查:移动开发+云服务成为焦点 研发周报:16种折磨开发者的方式 移动周报:Jolla和Sailfish OS,那些你应该知道的事儿 优化技巧分享:把内存消耗降低至原来的1/20 85后程序员:独自一人,完成一个HTML5开源图形库 关于Waze的前世今生,你所不知道的事 代码审查——提高代码质量的终极武器 值得开发者关注的8个HTML5 API 最初设计方案大公开!LINE STAMP 贴图诞生记 安全宝联合华为成立抗D联盟 储备防御带宽达110G 专访中科院贾海鹏:给异构开发者的六个建议 我们死后的遗留数据将会如何处理? 传微软考虑重大重组 或势在必行 云适配CEO陈本峰:8年磨一剑 Splashtop企业应用:SplashApp让办公移动起来 时空旅行+内付费“植物大战僵尸2”下月18日全球同步发行! 中移动推网络电话Jego 后来者能否居上? 防止数据泄露:BYOD下的管理员5大妙招 咕咚副总裁司建铭谈移动时代的“软硬整合” 未来的物联网结点:可穿戴设备 应用开发的4个技巧,让程序能真正为用户使用 关于addnew的问题(在线等待,一解决马上给分) 两个很菜的UNIX问题! 在win2000 sever中忘记了administrator的密码怎么办(大大的加分) javascript 中的转义字符是什么? 请教SSI 请问有没有办法可以将10M大小的文件用软盘拷到WINDOWS2000中???? 数据库数据导出, 怎么能快点? QQ密码存放在哪? ADO的Query控件 能告诉怎样实现2000服务器的电话回拨吗~~ 初级问题之三,关于DataWindow Error 灌水乐园???? 100分答谢高手!-------谁有写代理服务器的经验呢? 帮一下我好么? 救命!!pb6.5是不是不支持oracle的blob类型???? 去掉引导信息??? 为什么我用MFC写的单文档程序在别人的没装VC++的机子上不能运行? 用户登录是密码存放在哪个文件夹里? (简单问题) 请问这个程序为什么抛出这样一个违例??? 问题一个,请教! 增值合订本出的我心不甘 我又来提问了~前天复习是发现一道很怪异的题目~ 用activemovie控件打开一个URL,用哪个函数? 如何去掉ACTIVE MOIVE控件下面显示的几个键和进度条 c源程序。 >>>>高分求解!!!我在一个对话框中插入一个active report run time design,但程序运行时却不显示,在vb中却可以,如何解决这个问题?????? 关于sql server的安装 哪里有下载cc编译器的? 关于导出数据窗口数据的问题,明白人请进! delphi可不可以用于自动控制方面的开发呢 如何使对话框程序执行就让整个屏幕背景变黑色?? 想了解有关程序考试的一些情况? 不同系统就不可以直接电缆直接吗? 怎样使用PQMAGIC对硬盘进行调整分区 memory fault--core dumped的问题 有谁知道怎么解win98的开机密码? 用 procedure 与 trigger 、database link 能完成吗? flowerofwind,rjcludy()请回答 COM中的一个怪问题:我将::CoUninitialize();去掉后程序不出错,添上出现非法操作,是啥问题??? 请问?????? 如何在程序中播放rm格式的文件??? edit怎么用啊? JB6盘中不含 Borland Enterprise Server AppServer5.0,各位快载一个上去吧! 如何改变显示的分辨率? 那里有c#编译器免费下载?谢谢 如何在vc中播放rm格式的文件??? 那位大侠知道怎么创建并使用一个变量,每次只让一个进程访问???给个例子吧,大大大 大 delphi中怎么编写中断,获取外部设备传来的信息?急救!! 数值模拟与计算仿真,高手请帮忙! 请问:dos下图形放大算法或思路?还有.........(高手请进) 求教!!!!SOS!! --请问如何将一个BMP图形文件转成JPG图形文件,高分请教师--- 高分给出,win98的怪问题! 氟气与氯气反应方程式条件? 怎样用氟化钠制氟气如题 氟气的氧化性强还是硝酸的氧化性强? 将氟气、氯气和氧气混合起来会发生化学反应吗 氟气的实验室制法及检验、除杂求高手给出氟气的实验室制法的装置、严谨的操作次序、注意事项(如用什么方法收集氟气),以及如何检验收集到的气体是氟气.氟气中可能的杂质有什么?如 氟气的实验室与工业制法 51克2%双氧水和二氧化锰制取氧气,求双氧水含h2o2物质的量,氧气的物质的量(完全反应) 电解氟化钠溶液能否制氟气? 白炽灯泡的钨丝正常工作时温度可高达2000摄氏度左右(钨的熔点是3410℃),长期使用后,钨丝因升华而变细,导致导致灯丝电阻变什么,升华后的钨又什么使灯泡内壁变黑 已知一个正弦交流电的频率f=20HZ,有效值为5A,初相角为30度,求该电流的瞬时值表达式. 随机变量X的概率密度为f(x)=2x, 0 钨、铜的熔点分别是3410℃、1084.5℃,估算最低再结晶温度,并选择再结晶退火温度 一正弦交流电的有效值为3A,频率为50HZ,求该电流瞬时值的表达式怎么算的? 氟气与水的反应是什么?我在书上看到,氟气与氧气反应不仅仅生成氧气和氟化氢,还会生成双氧水等物质,这是怎么回事? 氟气和氯气是什么颜色的?氟气和氯气是什么颜色? 一个正弦交流电的频率是50Hz,有效值5A,初相是-II/2,写出瞬间表达式答案希望详细点 氟气与水反应离子方程式是什么? 氟气是什吗颜色啊 交流电电动势瞬时值表达式 为什么是正弦或者是余弦 氟气会和水反应吗? F2(氟气)有颜色不?如果有是什么颜色呢? 为什么不是直接用海水通氯气制溴,而是用晒盐后的卤水通氯气制溴 氟和氟盐是化工原料.由于氟气性质活泼,很晚才制取出来.第三问用电荷守恒来求氟离子的物质的量浓度为什么求不对?第四问为什么写两个反应式,不可以合在一起写吗 氟气有什么气味?就是氟气有什么味道 氟气通入饱和食盐水中为什么不能得到氯气和NaF那么氟气就无法置换出氯气, 设随机变量X的概率密度为f(x)=1/π(1+x^2),(-∞ 金会和活泼的氟气反应吗 从海水中提取溴 ,以溴离子存在,可向其中通入氟气, 氟气,臭氧哪个氧化性更强? “晶体有固定的熔化温度,非晶体只要吸热温度就会不断上升没有确定的熔点”这句话对不对? 从海水中制取溴的过程中是把氯气通入加热到90度,ph=3.5的卤水中,将溴离子化为溴气,用空气吹成的溴气,被碳酸钠溶液吸收得到NaBr和NaBr3混合液,再用酸化混合液,即可得到溴气写出有关的离子 氟离子和氟气哪个氧化性强拜托了各位 谢谢简述理由 非晶体没有一定的熔点,就是说它熔化除了温度还有别的因素了?我有两个想法:1,非晶体熔化,除了温度以外还与比如形状,质量之类的有关,以至于每次熔化的温度都不太相同.如果是这样的话, 交流电的电流计算在三相交流电中,如果,A,B,C三相的电流相等,那么零线的电流为零.现在要计算的是 :在三相交流电中,如果,A,B,两相的电流都为10安培,(C相为0)那么通过零线的电流为多少?怎 怎么证明双氧水具有氧化性 晶体有固定熔点是什么意思?指的是一开始融化的温度吗?非晶体没有固定熔点这句话怎么理解?能举个例子吗?还有图中的两个图像又该怎么理解?甲图像中的A处就是熔点吗?ABCD又分别指的是什 正弦交流电的等效电流 急任意一段时间内都是Im/根号2吗?我用微积分证明出了 在π/2或者n*π/2的时间段内的等效电流时Im/根号2但是 如果是0~π/6时间内就不是的啊而且 π/6的任意一个时刻的电 氟气、氯气、氧气、液溴、碘、砹、SO3、HNO3、三价铁的氧化性比较 装氟气的集气瓶怎么这么奇怪这是装氟气的集气瓶.怎么集气瓶口上还有一个圆形的东西(淡黄色的),但是装其他气体的集气瓶都很正常 谁告诉我是怎么回事? 求正弦交流电的有效电流值的微积分证明 氟和氧(点燃)哪个氧化性更强? 低温或常温下氟气为什麽可以装在合金瓶quick!please! 正弦的倒数是什么 怎么根据用电器的功率计算其电流(交流电) 5%的过氧化氢溶液和10%的过氧化氢溶液,5%的加了二氧化锰,能不能探究二氧化锰对反应速率的影响.. 正弦等于什么? 正弦交流电是指_____和_______都按_______变化的电流 二氧化锰是如何加快过氧化氢的反应速率的 每年有多少石油流入大海 怎样用生活中常见的物质制氟气? MnO2的用量对H2O2制氧的反应速率有影响吗?如果有,怎样影响 海洋科学家预言,21世纪人类将从海洋上的“海藻园”取得石油.海藻是大海中随处可见的海洋植物,由于它具有含油量高的特点,科学家都在积极进行将海藻精炼成类似汽油、柴油等液体燃料用 如何验证二氧化锰在过氧化氢制氧中只做催化剂?要具体的操作方法! 除了氟气,什么物质的氧化性最强. 交流电直流电符号到底是v上面加~还是下面加~ 用氟化钙制氟气如题 氟气 氯气 溴单质 氧化性强弱比较是什么 求碳和氯气、氟气的反应条件氟气和氯气氧化性都强于氧气,所以我觉得氟和碳、氯和碳的反应要比氧和碳的反应简单些还有我是刚毕业的初中生,回答的太深会看不懂的。 二氧化锰为什么可以给过氧化氢当催化剂?要个具体点的 氧化性最强的物质是什么,注意了是物质
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn