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

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

窗口处理技巧大全 -VB资料 窗口事件的发生顺序-VB资料 VB创建不规则窗口 VB创建透明窗体 VB创建位图菜单 VB创建无 Icon 的窗口 打开 Win95 的创建快捷方式窗口-VB资料 打印机技巧 -VB资料 带有历史记录功能的菜单-VB资料 得知目前Mouse所指的Menu Item是哪一个-VB资料 调整 Combo 下拉部分的宽度 -VB资料 对象是使用 TAB 键还是鼠标激活的 -VB资料 防止用户编辑文本框控件中的内容-VB资料 改变 ListIndex而不发生 Click 事件 -VB资料 改变 TreeView 的背景 -VB资料 改变安装向导的背景色-VB资料 改变按钮的文本颜色-VB资料 功能强大的增强列表框 ――VB6控件LISTVIEW使用指南 关闭MDI窗体中所有的子窗体-VB资料 规范设计Windows应用软件菜单-VB资料 VB建立可滚动的视区 -VB资料 VB建立可下拉选择的属性 -VB资料 VB建立无模式窗口 -VB资料 将VB5中的ToolBar变成平面的 将程序从任务列表中隐藏 -VB资料 将我自已的命令加入窗体的控制菜单栏-VB资料 VB利用 UnloadMode 来控制窗体的卸载? VB利用Form_QueryUnload询问使用者是否关闭窗口 利用VB的图片框实现屏幕的滚动 利用VB动态改变Windows显示模式的两种方法 利用VB控制窗口显示风格 关于什么才是真正的系统分析和系统分析员的讨论!——欢迎大家参加,进行善意地讨论!^&^ 今晚的球赛什么时候开始啊? 哪里有关于水平考试(高程)的模拟题的啊??? 为什麽还是不能显示中文呢? 怎样获取WIN2000的密码 在父窗体怎样画jpg格式的背景图? 如何注册MSComm控件????????? 如何解决这个问题啊?重赏啊!!!! 公告: 从现在开始封shines 111222 :)流芳斑主,结贴的工作要开始了,会很累啊!我代表大家先谢谢你了! 怎样改变MSHflexgrid中每条记录的背景颜色。急急急急急急急 各位,能不能给我讲一下“句柄”是怎么一回事? 唉,心情不爽 关于C++语法的问题? 灌水-----大学时的恶作剧(转载) "setdibs()"是什么来着,请指教,谢谢! 写注释不宜过头 这段代码错在哪里? 请大家预测一下比分(参与者都有分)开赛后就不算了,还有半个小时,赶紧着 写网络电话程序的讨论 最后一帖,贴完睡觉----如何在电梯里捣乱 怎样定制一个在程序中重用的组件?只能通过包方式吗? 寻寻觅觅 汉英计算机科技文章 互译!!有劳各位朋友费心帮忙找找 我靠!真TMD不爽,这个时候准老婆的老妈进了医院! 怎样调用*.db格式文件 谁知道哪儿有英汉互译,急急急急!!!! ISO 9001认证 VS CMM2 谁知道哪儿有《神秘的人月》下载? 为111222求情 怎样可以修改浏览器的标题? 怎样可以修改浏览器的标题1? 哪位能给我一个source insight 3.0的sn号? 怎样可以修改浏览器的标题2? 如何异步调用远程组件的方法? 哈哈!球赛开始了!我也不想去医院了!!!顶多明天挨顿骂! 上CSDN的有谁是七月份毕业,大家认识一下 我想问问,一个程序员的黄金年龄是多少? 如何由CRgn得到一组Polygon? 初学者请教一个小问题!急急急,尿都快急出来啦! 急急急急急急急急急急,用vb怎样知道COM口是不是打开着,能不能不用控件高分. 高手请看:20 分 我想给50 分,但是系统只让给20分,对不起大家了,有机会一定补上!!! 关于一个报表问题,急! 我需要一个Hackman的配套的Debugger,有谁知道哪有 现在就用VB.net开发商用程序可靠吗? 急急急急急急急急急急,用vb怎样知道COM口是不是打开着,能不能不用控件,怎样用API函数,高分。 中乌最新战报!!!!!!!!!! .....百丑图..... 高手请推荐几本好的C的书,华储里都是C++,C才几本而已。 如何隐藏光标,不仅仅是自己程序的光标? 现在还在看球并打算看下半场的来报到!!!!! 如何避免驱动器列表框刷新时的MOUSE指针闪烁? 设方程2^x+x+2=0和方程log2 x+x+2=0的根分别为p和q,则p+q=?我想知道,作出y=2^x,y=log2 x,及y=-x-2的图像以后, 初一计算题解方程 分母带小数的或去分母的 小学五年级数学 解方程: 5×6-4x=7.6 求大神解答! 已知方程2^x+x+2=0的根为P,log2(x+x+2)=0的根为q,记f(x)=(x+p)(x+q)+2则A,f(0) 求20到方程(十道去分母)不要应用题10道去分母 10到化简求值 10道随便 (要求不带答案,不是应用题)来的及时有悬赏! 体验下列各数是不是方程5x-3=4x+2的解.(1)x=1,(2)x=5 2x-3/4=5/6 . 关于方程去分母的计算题5道. 如4x^3+5x^2-25=0的方程怎么解? 6.3-2x+4.5=7. 方程3分之2x-1=6分之2x-1 -1去分母得________ 1.把下列各方程变形为用一个未知数的代数式表示另一个未知数的形式 (1)4x-y=-1 (2)5x-10y+15=0 解答两道方程题目(1)3x²=2x (2) (x+4)²=5(x+4)(1)3x²=2x (2) (x+4)²=5(x+4) 这个方程怎么解 3分之2X-1=0.5 把下列各方程变形为用一个未知数的代数式表示另一个未知数的形式5x-10y+15=0请写出过程 请根据方程,x+2x+3x=72联系生活实际,编一道应用题(要求题目完整,题意清楚)明天就要交 试求方程x^2-2x-4|x-1|+4=0的四个根之和,当1<b<5时,再求方程x^2-2x-4|x-1|+b=0的四个根之和 把下列各方程变形为用一个未知数的代数式表示另一个未知数的形式(1)4X-Y=-1 ( 2 )5X-10Y+15=0 要用二元一次方程解,每一步都要解出来, 编写一道应用题,使它满足下列要求:1:题意适合一元一次方程2x+8=6-2x 2:所编应用题应完整,符合实际. 已知x=1是方程2-3分之1(a-x)=2x的解,求关于y的方程a(y-5)-2=a(2y-3)的解 把下列方程变形为用一个未知数的代数式表示另一个未知数的形式1.4x-y=-12.5x-10y+15=0 8道一元一次方程应用题先说明要有步骤不要只有一个答案 不用再步骤中插入解说。一定要用方程!1、两个仓库装粮食,第一个仓库是第二个仓库存粮的3倍,如果从第一个仓库中取出20吨放 8x-3=13,0.3x+0.4=0.7x-0.1,4x-5=9/2x-4 ,y-1/2+3=y+12/3-1 把下列各方程变形为用含一个未知数的代数式表示另一个未知数的形式3x-5t=3分之1,4分之y+1=.分之x+2 求一元一次方程答案 2x-1/6=5x+1/8带步骤的速度要快 当K为何整数时,方程组2X+Y=K和X+3Y=6的解是非负数 已知关于x的方程5x+3m=4x+1和2x+3m=5x+1的解相同,求(-3m)2011次方-(m-4/3)2012次方的值 求30-40道初一的一元一次方程练习题!不要应用题,像2x+1=x+3这种题不要 当K为何值时,方程组:2x+y=k x+3y=6的解是非负数看不懂 能说清楚点吗? 当m为何值时,关于x的方程5x-2m=4x-1的解是2x-3m=x的解的3\1? 解下列方程:2x+3y=4,3x-2y=11. 已知关于x、y的方程组2x+y=-7-a.x-3y=10a中,x是非负数,y是负数,求a的取值范围 m为何值时,关于x的方程5x-3m=4x-2的解是2x-2m=x的解的2倍? 3x-2y=8,2x+3y=7 用加减消元法解这个方程 M为何数时,方程X+Y=M,5X+3Y=13的解是非负数? 在一个建筑工地上有大、中、小三个圆柱形水池,它们的底部半径分别为10m,5m,2m,现在把一堆碎石分别装进中、小形的水池中,水面分别升高了6cm和8cm.如果把这堆碎石都装进大水池中,那么水面 已知3x+2y=17,2x+3y=13,则x-y=( ).方程2x+y=6的正整数解是( ) 已知关于x,y的方程级x+y=k 5x+3y=31的解xy均是非负数,求整数k的值用一元一次不等式解 虹远商场原计划以1500元出售甲、乙两种商品,通过调整价格,甲提价百分之二十,一降价百分之三十后,实际1600元出售,问甲商品的实际售价是多少? 3x-2y=6 2x+3y=17 解方程 某项工程由甲队独做需要40天完成,如果由乙队先单独做10天,那么剩下的工程两队合作20天才完成 1求乙队单独完成这项工程所需的天数.2求两队合作完成这项工程所需的天数 李老师先拿给小明1块糖,然后把糖盒里所剩糖的 7 分之 1给他,再拿给小颖2块,又把糖盒里的所剩糖的 7分之 1 给她.这样两人得到的糖块一样多.李老师糖盒里原来有多少块糖?(用方程解!) 0.01分之4-6x-6.5=0.02分之0.02+2x-7.5 已知关于x的方程2x-a/3-x-a/2=x-1与方程3(x-2)=4x-5有相同的解,求a的值实在搞不懂 为加强公民的节水意识,某城市制定用水收费标准:每户每月用水未超过7立方米时,每立方米按1.2元收费:超过7立方业的部分每立方米收费1.9元,如果某幢楼共50户,某月共叫水费541.6元,每户用水 已知关与X的方程.2分之2M+X=4的解是方程3分之2X-3M-4分之X-1=6X-1的解的5 倍求这两个方程的解. 已知关于x的方程(2x-a)/3-(2-a)/2=x-1与方程3(x-2)=4x-5有相同的解,求a的值 都不是很难 1、某公司存入银行共 20000,甲种存款年利率为1.4%,乙种存款的年款的年利率为1.98%,该公司一年后共得税前利息367元,求甲、乙两种存款各多少2、在高速公路上,一辆长4米,速度为110千 (0.1x-0.2)/0.01-6.5=(0.02-2x)/0.02-7.5 解方程 方程:x+4x=45/7 1.把一些苹果分给几个小朋友,如果每人分5个,那么还剩2个苹果,如果每人分6个,还缺3个,问:一共有几个小朋友?(只要求列方程)2.已知关于x的方程x的a-2次方=0是一元一次方程,求a的值是多少?3 (4-6x)/0.01-6.5+(0.02-2x)/0.02-7.5(注意解方程按步骤先通分再去分母再移向的做法)sorry……(4-6x)/0.01-6.5=(0.02-2x)/0.02-7.5 五年级方程;6x6/1减4x=5/2是 (都要方程解,只能是一元一次方程)甲、乙两人分别同时从相距30千米的A、B两地出发相向而行,甲每小时行6千米,乙每小时走4千米,甲带了一条狗和他同时出发,狗以每小时10千米的速度向乙奔 解方程4-6x/0.01+1=0.02-2x/0.02和2|2x-1|+1=5 五年级方程36-4x=24.解完后怎么检验?谢谢 一位售票员一次卖出了两件玩具,每件都以135元售出,按成本计算,其中一件赢利25%,另一件亏本25%,那么在这次买卖中是赚还是赔?若赚,赚多少?若赔,赔多少? (3+0.2x)/0.2-(0.2+0.03x)/0.01=0.75 解方程 把过程解析出来,例如6(3x-2)-4(4x-3)=1然后18x-12-16x+12=1 2x=1 x=0.518什么的我都不知道哪里来的, 用 一元一次的方程解 要清晰的解题过程有一些相同的房间需要用地砖装修地面,4名熟练工人一天可装修5间房,其中还差3^2地面未装修理,6名初级装修工人一天除了可装修7间房之外,还多装了另
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn