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

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

iOS开发者必备:四款后端服务工具 市场研究公司:iPhone5C/5S成本分别是173、199美元 对软件开发有利的5个敏捷编程方法 移动端性能大比拼:CSS Sprites vs. Data URI 三大峰会七大论坛,2013移动开发者大会将于11月在京举行 黑莓47亿美元收购的背后 微软或成最大受益者 搜索大战升级:360搜狗相互起诉对方不正当竞争 诺基亚将于10月22日发布6款新产品 平板Lumia 2520等 从17美元到50美元 Facebook股价上涨背后的两大关键 12个理由:为什么我会认为Android比iOS 7好! AMD推 &amp;quot;Mantle&amp;quot; API 欲释放GPU全部潜能 Salesforce架构:日事务过13亿,2.4万TPS的数据库峰值 久违的iOS,新鲜的SDK,豌豆荚发布云相册 喜大普奔:谷歌15岁了,生日快乐! 传福特CEO Alan Mulally目前最有希望执掌微软 微软计划将WP8和Win8应用商店合并?太好了! 响应开发者要求:Kinect for Windows SDK 1.8发布 OpenStack基金会BD总监:希望有更多的中国公司加入 CTO如何避免决策失控(三):从CEO角度看CTO的应对能力 IT界需求最旺的16项技能 PMC发布8系列RAID卡 找准国内互联网企业需求 早Google一步,eBay数据中心率先搭载了火星上使用的技术 目标专利2000,技术研发人员占55%,斐讯的厚积薄发 SwiftStack CEO:分布式存储的未来 触控陈昊芝:“好声音”标王对移动游戏未来的预测 Office将更强大:微软正开发Office Reader和Office Lens 百度技术专家详解Clouda 并称计划推出相应UI解决方案 少年才俊:看IT界8个不到20岁的科技公司创始人 Oracle与Freescale展开深度合作,Java或将一统物联网? 探秘Google新搜索引擎算法Hummingbird的16个疑惑 如何在开发项目里进行自我激励! 如何禁止修改某一字段? 请问 怎么修改文本文件中的内容呢? 一些J2EE资料 如何将<div sytle="Z-INDEX: 100">的<div>元素<iframe>框之上? 每次重新启动WIN2000时无耍点击超级用户口令从而自动进入,默认为超级用户 动态生成数据表的问题! 高分求解一条智力问题 *.bpg文件怎么打開﹖ 怎样压缩Access数据库? 问一个打印的初级问题? 如何使用net send 在internet 上发消息, 如何设置让主板上的喇叭不发声? 关于字符集的一个问题 关于金山网镖的一点问题?/ 急: seseion 和httpsession有什么区别啊.?jsp内部对象和javax.servlet.http.*下面的类似对象有什么区别和相同点? 高分急救:急,急,急 数据定义问题 急:关于rich text小应用程序的问题,请高手指点!谢了! 女大学生的一天(转载) 200分问一个小问题, 在线等: JBuilder自带的ESite for weblogic部署出错... 请问 vb 怎么样让函数返回一个二维数组?能给你例子吗? 有人知道上海通方信息系统有限公司吗?我要去面式了?大家帮帮忙,做ejb程序员。 域问题 转分 介绍制作DLL专业书籍 有关image的函数问题 请教? TObject和integer之间的转换问题 数据库简单问题 文本文件的最后一行怎末去掉换行符,用程序实现。 善良的程序员,当心QQ骗子啊! 谁有Qamonitor,小弟急用! 不要笑偶 转分 有会打印对象编程的吗?printer对象怎样打印横线??怎样打印带风格的报表?? 表分区的数量有上限吗 ASP 0178 (0x80070005) 各位高人,请一定帮个忙吧 !! SetCellImage 利用C# 读取系统当前进程的出现问题,帮忙!! 请教高手:怎样在一个窗口里能够输入文本文件(按回车键) 另一个窗口显示出同样的文本 高手在何方 (大力请进)sql字符串处理的问题 上哪能下到exchange 2000,下到马上给分! ado问题? 数据迁移问题??? 怎么把列名选出来? [在线求助]:有什么好的方法可以使得鼠标放上有链接的地方状态栏不显示真实地址? 高手在哪!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 各位大哥﹐何為微创软件开发管理﹖﹖﹖﹖ 数列 3、6、10、15.的规律如果用公式列出,该怎么列? 非典是什么 大鸣、大放、大字报、大串联是什么历史事件说明理由 金属寒冰悠悠球(奥迪的)适合玩3a,4a还是5a呢?1、2a无视掉 心旷神怡: 天体为什么自转?可以用什么理论解释? 绞丝旁一个卷是什么字? 一个两位数,十位数加个位数的七倍等于这个两位数,有几个这样的数 圆明园的毁灭从 凡是 统统 任意等词可以感受到侵略者的什么 一个绞丝旁,一个各,左右结构是什么字 根据下列各点的坐标变化,判断他们进行了怎样的运动(-1,3)→(-1,-3)(-5,-6)→(-5,-1)(3,4)→(-3,4)(-2,3)→(2,-3)今晚就要啊! 殇縕读什么?有什么含义?更多关于这个词的? 一点一横长一撇到南阳 神技悠悠球自由和奥迪悠悠球火狐哪个强?RT,从手感,性能方面考虑,说明理由,越详细越好. Cl2和Fe的在液态环境中,可能会生成FeCl2和FeCl3的反应是不是化合反应? 下面这段话是写给怀特老师的评语,请把其中缺少的内容准确地补上.怀特老师是一个很有个性的人,教学方法独特,常常有出人意料的举动,具体表现有();();()……他让我们的学习过 地球离太阳最近的时候是哪天 典韦怎么过 二、判断下列函数在指定区间内的单调性.:f(x)=x3, X∈(-∞ ,+∞) ,g(x)=x2, X∈(-∞ ,+∞)要求答案详细点,我是网络本科学员 英语翻译在人家衣服上看到的. 一吕二赵三典韦,典韦是死在那场战役? 我现在初3了、发现老师在上面讲什么我都不懂、求各位能够给我好的意见、怎么样才能补上去? sun of a 有关舒畅搜狐做何解释?这事不能就这么算了吧!我很生气谁知道哪该死的记者做出什么解释?或道歉没?奶奶的别叫我知道是谁!知道我抄家伙杀你全家!有关搜狐说舒畅像陈一冰示爱的事!我只 老师给我作文的评语说要叙述凄美的情节那,什么是凄美的情节 _____ 释义:the home of a king or a queen根据释义,写出单词 三国典韦 一个字二十撇是什么字? ABC三个门卫人员实行昼夜三班倒,怎样安排值班表_日班:早8-4点 中班:下战书4-12点 日班:12-早8点每个班是8小时,每个班是1人值班. 婀娜多姿、心旷神怡的解释 一个字二十撇迷底是什么 求一数列的通项公式1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,22,24,26,28,30,33,36,39,42,45,48,51,54,57,60.补充说明一下,这个数列的每10项是一个等差数列1 -10项 公差为1的等差数列11-20项 公差为2的等差数列21-30项 下邳域曹操鏖兵,白门楼吕布殒命是什么生肖? 《被饿坏了那匹马》中“我扭头冲了出来,真想哭.”把“冲”换成“跑”,你认为怎么样? 急!求一数列通项公式RT:已知数列{an}满足,a1+2乘a2+2平方乘a3+...+2的(n-1)次方乘an=8n,求{an}通项跪谢,紧急 下邳域曹操鏖兵,白门楼吕布殒命是什么意思? 碧云,快把马草提进去,那匹马实际指 ,饿坏了则是指 宗教怎么解决人生的意义这个问题的 钓鱼的启示 辩论会我们的问题是:该不该把那条大鲈鱼放掉!我是反方:不该把那条大鲈鱼放掉!我怎么说?SOS!对不起我只有5分了,求救! 别饿坏了那匹马课文续写,100字 一篇450字红楼梦读后感小学生的 下邳域曹操鏖兵,白门楼吕布殒命+÷猜什么生肖? 2009上海交大自主招生考试 如图所示,甲、乙两个小球分别固定在一根直角尺的两端A、B,直角尺的顶点O处 每个数都比前面少一半的通项公式怎么列?有一条前端AB长100米 在AB中间的中点画一颗星 在第1颗星和B点的中点在画的二颗星 以后重视在钱一颗星于B点中点画一颗星 吧各颗星到B的距离组成一 “下邳域曹操鏖兵,白门楼吕布殒命”是三国演义第几回?如题. 笔算一位数除多位数要注意什么 转折号上面有五百强名企的笔试题目吗? 下邳城曹操鏖兵,白门楼吕布殒命.打一个生肖 两位数乘一位数的笔算一位数写在上面可以吗 1英语:让他们不要在河里游泳. 2英语;顺着中心大街走,邮电局就在你的左边. 3英语:向右拐. 快!谢 有人知道这个铜器是什么吗?这是一个铜制品有些年代了,class="ikqb_img" src="http://b.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=439f33fb49fbfbeddc0c3e7948c0db0e/32fa828ba61ea8d3e42fd6c0950a304e241f58e0.jpg" esrc="http://b.hipho 根据句子表达的意思写出成语1.比喻读书等不加分析地笼统接受.(填成语)2.比喻认错了对象,弄错了事情.(填成语)3.形容不顾生命危险,勇往直前.(填成语)4.形容很多人同时闯进门来.( 英语 请问邮局怎么走?4种 陌陌里 p 和t 是啥意思? 原来有基础上增加15个点 到底怎么算?请列出公式并且说明一下 彩虹岛酷酷的人生第一条件怎么做?我站着被怪K了一个下午,血药都刷空了,还是没完成,Why? 陌陌里面的私聊是什么意思? 公式告诉我呗15张扑克牌那个 殇字怎么读这个殇是复制的,要求拼音我查了下字典,是shang第一声 陌陌里 p 和t 是啥意思? 美国共和党参议员计划推迟叶伦的美联储美国广播公司高管就“杀光中国人”视频日借太平洋岛国会议插手南海朴槿惠为职棒比赛开球 露甜美微笑【组纽约华裔家庭五人被杀案疑犯被捕 为被女教师被调离因婆婆抗拆 评论吁查幕后中国海警编队10月28日在中国钓鱼岛安倍称不容中国“武力崛起” 外媒称中美医保网站高管被爆系奥巴马夫人同学 马尼拉市长将赴港道歉 评论称菲律宾一哈萨克斯坦时装周:黑白搭配永不过时美海军航母编队在中国南海训练演习奥巴马夫妇携女儿赴教堂做礼拜 一家服奥巴马医保网站问题频出 美卫生部长被法国前高官称经济危机下的恐慌导致排外约有40万杭州人的骨头不够硬叙问题特使将抵达叙利亚 筹备日内瓦国中国首支海军核潜艇部队 42年潜行百19岁坚强女孩爬行上大学:选择学医将女学生被抱养18年无户口 相关部门称瞭望:以宏大的高素质人才队伍托起中国兰州4座“环卫工人休息室”亮相西固张培萌腕小“配不起”队医?医疗器械板块活跃两市股指冲高回落六部门联合在兰打击非法行医城关消协:市民莫被“净味漆”忽悠不同意分手,电视台记者一怒勒死女友出入境证件县区公安机关即可办理填报志愿应注意看清体检结果回避受限专韩国警方搜捕沉船船主周冬雨加冕90后“吸金王”胁迫聋哑人乞讨获利百万“帮主”出行坐潮爸潮妈点爆“萌娃”经济全省主要城市天气甘谷县警方举行仪式集中发还23台被盗微 言兰州警方组织社会安保力量武装巡控泰国军方发动政变 英拉下落不明习近平对暴恐案作出重要批示富氧水恐怕玩的是新概念酒吧翻新加盖楼层 居民担心影响采光百姓感言
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘