测试杂感:Bug Bash
缺陷大扫除(Bug Bash)是一项短期的全员测试活动。在微软,许多开发团队会在里程碑(milestone)的末期执行缺陷大扫除。程序员、测试员、程序经理、内部用户、市场人员在1~3天的时间窗口中,运用各自的技能和职业背景,集中精力来搜寻软件的缺陷。通常,每位参与者会获得一个小礼品,发现缺陷数目最多的冠军会获得一份大奖。
一般认为,缺陷大扫除的优势在于引入了“更多的眼睛”。程序员更了解程序逻辑和实现细节,有可能发现隐蔽的缺陷;测试员更擅长缺陷猜测和持续攻击,有可能发现其他测试员遗漏的缺陷;程序经理能够从业务角度考察软件,有可能发现业务流程、整体设计上的缺陷;内部用户是软件的使用者,有可能发现易用性、可达性上的缺陷。总之,参与者在技能和角色上的差异性有助于发现不同类型、不同层次的缺陷。
如果只有测试人员参与,缺陷大扫除还有意义吗?以我的观察,测试团队定期组织所有成员执行缺陷大扫除,是一项非常好的实践,有助于团队建设(team building)和个人成长。
在我的部门,测试团队有近20名测试员工。每个员工会负责一个子系统或独立模块的测试,这些子系统和模块会组成整个业务系统。我们大约2~3个月做一次发布(release),每次发布之前都会执行缺陷大扫除。其大致流程和要点如下:
缺陷大扫除持续一个完整的下午(大约3~4个小时)。这是一个天然的时间窗口,让测试员可以集中精力工作。超过这个窗口,测试员很有可能分心去做其他工作。
所有的测试员带着自己的笔记本电脑,在一个大会议室围桌而坐,一起测试。团队建设的一个手段就是团队成员协作去完成一个有挑战性的任务。缺陷大扫除就是测试团队一起工作去搜索整个业务系统的缺陷。
测试员测试一个陌生的子系统时,他可能不了解该系统的业务目标和使用方式。这时,他可以询问负责该系统测试的同事。由于所有人都坐在一个会议室,绝大部分业务问题都可以得到立即解答。这使得测试可以顺畅地推进,也强化了相互协作的团队精神。
测试主管(test lead)参与缺陷大扫除,他也在会议室执行测试。领导重视是团队建设的必要基础,它体现为领导亲自做那些他宣称是非常重要的事情。
测试主管会不定期通报测试进度:已经发现了多少缺陷、目前的冠军发现了多少缺陷等。这是对测试团队士气的鼓舞,也推动了测试员之间的良性竞争。
在“缺陷大扫除”会议结束之后,每个子系统的开发团队立即举行“缺陷分拣(triage)”会议。程序员、测试员、程序经理一起检查缺陷列表,决定哪些缺陷需要立即修复、哪些缺陷可以延迟修复、哪些缺陷不必修复。
在一周内,测试团队举行“缺陷检讨”会议,对有教益的缺陷进行深入分析。团队识别出有代表性的缺陷,分析根本原因,枚举错误症状,总结适用的测试方法,并提出避免再犯的建议。这个会议是缺陷大扫除最重要的一环,它使得测试技巧、开发知识、有效实践可以在团队中分享并沉淀,是团队学习、个人成长的有力工具。
对缺陷大扫除的冠亚季军给予适当奖励,奖品可以是运动装备、购物劵、书劵等小礼品。这是为了提高整个活动的趣味性,因此奖品不宜过于贵重。在我的团队,冠军奖品大约为150元,亚军奖品为100元,季军奖品为50元。
缺陷大扫除是常规测试的有效补充。测试团队将各个子系统连成业务系统,执行端到端(end-to-end)的系统测试,能够发现个人在子系统测试中难以发现的缺陷。此外,测试员在测试不熟悉的子系统时,没有任何先入为主的“偏见”,往往能立即发现那些被”熟视无睹“的缺陷。而资深测试员还可能发现一些初学者难以察觉的隐蔽问题。
不过,相比找到的缺陷,我认为缺陷大扫除在以下两个方面更有价值。
团队建设。在日常工作中,测试员更多的时间在独立地工作,彼此之间的联系并不紧密。在缺陷大扫除中,测试员进行渗透式交流,互通情报,一起嘲笑那些拙劣的设计、滑稽的缺陷,甚至说一些无关的笑话以相互逗乐。全部这些“小事”都在潜移默化中逐步构建一个团队。
团队学习。团队举行“缺陷检讨”会议,总结缺陷模式(bug pattern),完善测试策略,补充测试检查列表(check list)。这是一种积极的集体学习行为。在此过程中,测试员可以积累经验、分享技能,测试团队可以沉淀知识、凝聚士气。
测试杂感:Bug Bash的更多相关文章
- Alpha Version Release Of Teamwork: Appendix 1 BUG BASH
在为期一周的发布周中,我们将app本身最后的细节完善,功能代码到位,UI不断改进和优化,团队在开始准备发布之前,对整个APP进行了一次BUG检查,每个人都部署了app在自己的android设备上进行测 ...
- 生活就像测试, BUG会越来越少,生活会越来越好!
生活就像测试, BUG会越来越少,生活会越来越好!
- 测试对bug如何分析和定位
如何去区分一个功能测试工程师的水平高和低? 可以从很多个方面去检查,比如测试的思路, 比如测试用例的覆盖度?,比如测试出bug是否能够定位到根因? 上面说的各个方面都很合理,那我们平常如何如更深的定位 ...
- 【测试方法】Web测试中bug定位基本方法
知识总结:Web测试中bug定位基本方法 涉及知识点:测试方法 在web测试过程中,经常会遇到页面中内容或数据显示错误,甚至不显示,第一反应就是BUG,没错,确实是BUG.进一步了解这个BUG的问题出 ...
- Bug Bash in Personal Photo Experience 1/11/2016
In the process of our Personal Photo Experience Project, There are some bugs which hinder our forwar ...
- Alpha版本BUG BASH
在本次软件开发的第一轮迭代中,我们团队遇到了很多问题.首先是和学长联系不上导致拿到项目前一版本的代码的时间延后了一个星期. 拿到代码后发现由于安装环境的问题代码无法移植.在这一阶段我们就耗费了大量的时 ...
- iOS之利用腾讯Bugly程序调试,测试代码bug、卡顿等情况
1.自己先写一个 Demo 演示一下利用bugly测试崩溃的具体情况. 在ViewController里面实现崩溃代码如下: 运行后 毫无疑问程序报错了! 2.使用到第三方的框架Bugly,官方下载 ...
- itest(爱测试) 4.0.0 发布,开源敏捷测试管理 &BUG 跟踪管理软件
v4.0.0 下载地址 :itest下载 itest 简介:查看简介 V4.0.0 根据用户反馈,共增加了29个更新:其中有15 个功能增强和14个BUG修复 :UI更加清爽,用例执行和用例复制粘 ...
- itest(爱测试) 3.3.5 发布,开源敏捷测试管理 & BUG 跟踪管理软件
v3.3.5 下载地址 :itest下载 itest 简介:查看简介 V3.3.5 有 6个功能增强,2个BUG修复 ,详情如下所述. 用户反馈并强烈要求增强的功能实现: 1: 测试用例管理可线 ...
随机推荐
- 二进制打印与逆序_C语言(转)
//二进制逆序 by MoreWindows( http://blog.csdn.net/MoreWindows ) #include <stdio.h> //二进制打印函数 templa ...
- CRM ribbon按钮上引用JS库
在CRM ribbion 按钮上引用 javascript库文件实验,怎么要引用javascript库文件.实验 加载完ribbbion 按钮后立即执行 引用的库文件 (function(){ ale ...
- 解决C#导出excel异常来自 HRESULT:0x800A03EC的方法 .
解决C#导出excel异常来自 HRESULT:0x800A03EC的方法 . xlBook.SaveAs(FilePath,Microsoft.Office.Interop.Excel.XlFi ...
- Python 常用函数time.strftime()简介
time.strftime()可以用来获得当前时间,可以将时间格式化为字符串等等 格式命令列在下面:(区分大小写) %a 星期几的简写%A 星期几的全称%b 月分的简写%B 月份的全称%c 标准的 ...
- JavaScript Patterns 3.8 Error Objects
The error objects created by constructors(Error(), SyntaxError(), TypeError(), and others) have the ...
- PE文件结构部分解析以及输入的定位
原文链接地址:http://www.cnblogs.com/shadow-lei/p/3554670.html PE文件定义 PE 文件("Portable executable" ...
- ASP.NET 使用Ajax(转)
之前在Ajax初步理解中介绍了对Ajax的初步理解,本文将介绍在ASP.NET中如何方便使用Ajax,第一种当然是使用jQuery的ajax,功能强大而且操作简单方便,第二种是使用.NET封装好的Sc ...
- Tomcat 服务器版本的区别以及下载与安装
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他一些公司及个人共同开发而成.由于有了 ...
- Spring学习笔记之 Spring IOC容器(一)之 实例化容器,创建JavaBean对象,控制Bean实例化,setter方式注入,依赖属性的注入,自动装配功能实现自动属性注入
本节主要内容: 1.实例化Spring容器示例 2.利用Spring容器创建JavaBean对象 3.如何控制Bean实例化 4.利用Spring实现bean属性sett ...
- poj 2942 Knights of the Round Table 圆桌骑士(双连通分量模板题)
Knights of the Round Table Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 9169 Accep ...