Bug是一种财富-------研发同学的错题集、测试同学的遗漏用例集
此文已由作者王晓明授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
各位看官,可能看到标题的你一定认为这是一篇涉嫌“炒作”的文章,亦或是为了吸引眼球而起的标题,恭喜你猜对了一半,确实是为了吸引大家的关注而起的这个标题,不过不是为了“炒作”而只是为了让更多人关注bug,重视bug,从而挖掘bug的潜在价值--技术团队的财富。
Bug一词估计也只有相关从业人员才会比较了解,我想了解它的人没有一个不讨厌它的。这一点从给它起的名字就可以看出来,“bug”翻译成中文就是“虫子”,大家对虫子第一影响就是厌恶,所以没人喜欢它是人之常情,今天我们却要走相反的路线,好好的“夸一夸”令大家都不爽的“虫子”。
研发人员的“错题集”--bug追踪记录
说道错题集估计大家都不陌生,但凡热爱学习(关注成绩)的同学可能都有自己的“武林秘籍”--考试或者练习测验中做错的题目。通过对这本武林秘籍中的题目进行针对性的练习,来减少重复踩坑带来的分数损失。对于研发同学在研发阶段产生的bug和线上出现的事故,我们也可以做个类比,把它们称为研发同学的“错题集”。对于研发同学如何对待这本“错题集”,不仅仅关乎软件代码质量的提高,更关乎个人技能的持续成长。如何让一个人不重复犯同一类错误,如何让一个团队不重复踩相同的“技术坑 ”,如何把团队付出昂贵代价积累下的经验传承下来,一直都是技术管理者头疼的问题。那“研发团队错题集”不失是一种可行的方案,通过实际的bug案例,产生的原因、造成的影响、如何避免类似问题的产生,可以让新来的同学迅速继承以前趟过的坑。我认为对技术团队来说,技术积累大致可以分为两类,“成功案例”和“失败教训”,我认为失败教训对其他团队的参考意义更大,因为相对于成功来说,失败有更大的普适性。综上,认真对待自己犯过的“错误”,把它当做持续提高自己的“训练集”,既能完成软件代码质量的不断提高,又能让研发团队整体战斗力持续提升,你说它是不是一笔“财富”。
测试人员的“遗漏用例集”--非用例执行bug记录和在线bug记录
如果你认为bug只是针对研发同学的,那就大错特错了。对于测试同学bug也是一种“财富”,这不仅仅体现在“工作量”上,更体现在后续根据bug不断改进用例设计方法的实战经验上。相信测试同学大部分会有这样的经历。
经历A:
一期需求中辛辛苦苦准备了很多用例,开发提测后按照用例执行一遍发现没有发现几个bug,于是基于职业敏感,开始又一轮的探索性测试,又发现很多bug,甚至比通过用例发现的bug还要多,于是提出“设计测试用例无用论”。(私下认为,应该是设计用例的方法有问题,需要改进设计用例的方法,并推广之,让更少的同学经历A事件)
经历B:
辛辛苦苦熬到需求上线,发布不久出现线上故障,紧急回滚或者紧急线上修复,所有事情都忙完后,开始准备线上故障报告,包括故障原因,开始时间,修复时间,解决方法,后续避免措施,怀着忐忑的心情结束一天的工作。
其实经历A、B本质上讲都是由于用例设计不充分导致的,在互联网敏捷发布、持续交付的大环境下,如何更好更快的设计更加全面的测试用例是测试同学需要不断追求的,而bug集恰恰是最好的“场景数据”,从这个角度讲我想大家也都认为bug是一种财富。
bug不仅是软件研发中发生的错误,同时也是帮助大家技能持续成长的一种财富,如何把这种潜在资产的价值发挥出来,是研发团队需求不断探索和实践的。
网易云免费体验馆,0成本体验20+款云产品!
更多网易技术、产品、运营经验分享请点击
相关文章:
【推荐】 Android优化之内存优化倒计时篇
Bug是一种财富-------研发同学的错题集、测试同学的遗漏用例集的更多相关文章
- [每日电路图] 7、设计一个PCB的流程及细节·总结——给外行的同学或刚入行的同学一个宏观鸟瞰电路板设计的大致流程的文章
前言 最近两天使用AD14软件设计了一个蓝牙防丢器电路板(PCB)图纸,中间有一些细节在本文中记录下,方便下次设计PCB时参考.也希望能给外行的同学或刚入行的同学一个宏观鸟瞰电路板设计的大致流程的文章 ...
- centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB ...
- 阿里云移动研发平台 EMAS 助力银行业打造测试中台,提升发版效能
随着移动互联网的发展,手机银行凭借低成本.操作简单.不受时间空间约束等优势,正逐步替代传统的网银交易方式.越来越多的银行开始了“业务移动化”转型之路,“手机APP”已经成为企业价值传递和关系维护的关键 ...
- 测试同学难道要写一辈子的hello world?
最近我们在测试团队内推行自动化用例责任制,大致的意思是:我们安排培训资源,提供技术支持和一对一辅导,要求每一个自主选择了自动化和接口测试发展通道的同学必须让自己负责的项目自动化用例覆盖率有所提升. 后 ...
- Apache shiro集群实现 (八) web集群时session同步的3种方法
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示
Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示 今天项目中要实现一个天气的预览,加载的信息很多,字段也很多,所以理清了一下思路,准备独立出来写一个总结,这样对大家 ...
- 测试的发现遗漏BUG的做法
首先要确认BUG的影响范围: 后续做法如下: 1.从测试角度来说,外部缺陷等同与系统崩溃,测试是必须提的2.可以询问主管或负责人是否在后一个版本中修改3.评估缺陷对于用户使用存在多大的不便4.判定缺陷 ...
- Eclipse调试Bug的七种常用技巧(转)
注意事项及小结: (1)Line Breakpoint:如果设置Conditional,监控的变量需要比当前行高一级block,譬如for(int i=0;i<20;i++)中的i,fo ...
- Eclipse调试Bug的七种常用技巧
1. 条件断点 断点大家都比较熟悉,在Eclipse Java 编辑区的行头双击就会得到一个断点,代码会运行到此处时停止. 条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才 ...
随机推荐
- MvcApplication 中方法的那点事
最近比较闲,不知道干点啥,想找兼职没有合适的,不找工资又不够花,o(︶︿︶)o 唉! 说多了都是泪,入正题吧. 首先,新建一个MVC4.0项目,建好之后打开Global.asax文件,在MVCAppl ...
- ng-repeat 指令(带有数组)
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- Object Detection with Discriminatively Trained Part Based Models
P. Felzenszwalb, R. Girshick, D. McAllester, D. RamananObject Detection with Discriminatively Traine ...
- swiper插件使用技巧
1.加载插件: <!DOCTYPE html> <html> <head> ... <link rel="stylesheet" href ...
- ProjectServer如何创建时间表
默认配置的ProjectServer是没有时间表的,任务汇报的时候不能汇报工时,只能汇报任务的百分比. 但如果有企业一定要用工时来汇报的话,我们就需要开启时间表. 点击服务器设置-->时间报告阶 ...
- css3响应式布局设计——回顾
响应式设计是在不同设备下分辨率不同显示的样式就不同. media 属性用于为不同的媒体类型规定不同的样式.根绝浏览器的宽度和高度重新渲染页面. 语法: @media mediatype and | n ...
- 【TOJ 4309】表达式求值(模拟栈)
Description Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min(20,23)的值是20 ,add(10,98) 的值是108等等.经 ...
- 分布式网上商城项目-dubbo搭建与初次使用错误
1.Spring-service启动失败 严重: Exception sending context initialized event to listener instance of class o ...
- 爬虫——使用BeautifulSoup4的爬虫
我们以腾讯社招页面来做示例:http://hr.tencent.com/position.php?&start=0#a 如上图,使用BeautifulSoup4解析器,将图1中229页,每页1 ...
- 如何安全地跨窗体调用Timer控件 从一个窗体调用控制另外一个窗体的控件
具体的情况是Form1中有一个Timer2时钟,Timer2时钟事件弹出Warning窗体,点击Warning窗体上面的按钮,重新激活一下Form1中的Timer2.从而实现了从一个窗体调用另外一个窗 ...