关于那些难改的bug
多年的测试经验中,经常发现有这么一种现象:总有些提了的bug不能顺利的被修复。这些bug往往有4个走向:
1.在被发现的版本中最终被解决,但中途花费较多周折。
2.有计划的在后续的版本中被解决。
3.决定永远不修复,却变成潜在的炸弹,在后续版本中被迫修复。
4.决定永远不修复,至今为止也一直没有被修复。
近期对我们做过的项目做过一次较大的统计,统计严重程度中等及以上的缺陷,这四种走向第一种占到了50%左右,第二、三种各占20%,最后一种约占了10%。
这些没有被修改的bug带来的负面影响有:
1.大部分时候最终还得改了,是被迫改,项目组疲惫,在领导和客户那里都落不了好。
2.这些bug积累到一定数量,发现系统快不能要了,得大规模重构,重构的过程不要太痛苦,最后没准就推倒重来了(见过n个这样这样的案例了)。
3.拖得越久改起来越难,最近的一个案例是:某项目为了赶进度,使用了一个较低版本的底层组件,当时识别出低版本的底层组件特性有缺失,测试人员提出了功能bug,项目组决定忍了。一拖就是2年。结果项目很成功,越来越重要,与之交互的其它系统越来越多,但这个底层组件缺失特性的短板就越来越痛。最后不得不进行修复工作(高版本组件替换),但发现由于代码耦合太紧,已经不是一个月两个月能搞定的事情了。大规模重构还是推到重来现在成了一个难题。
4.每天跟带着太多毛病的系统朝夕相对,是杀死所有干系人士气的慢性毒药。当你的潜意识认为你在做的东西是一团shit,还有毛激情?想一想破窗效应马上能够反应过来。
怎样降低大量bug长期遗留的现象呢?我有如下的一些建议:
1.提升内建质量。这句话高大上,内涵也很丰富,从软件架构,开发过程,各种技术应用等各方面都能够找到无数的提升点避免系统存在太多遗留bug,展开说真的要一本书了。从里边抽取出最重要的一条精神:bug被发现的越早,修改遇到的阻力越小。
2.定期bug扫除,这其实是测试应该主动提出来的事情,并且应该让这件事儿变成项目组的例行活动。其实如果做好了,乐趣还是很多的,效果也非常好。
3.如果是大型系统,或者项目群,很多bug是跨项目组的,这时候组织级的机制就要建立起来了,必要的时候需要跟考核制度挂钩。这样有一些三不管的重要bug才能被最终解决。
4.有些bug还真得睁一只眼闭一只眼了,约有10%的顽疾会这样。难改,影响范围有限。对这类bug最有效的办法是:挖雷难,我给它上边插个旗子让使用者离他远点儿好不好?有时候处理这些bug挺艺术的,运维,客服,售前,售后,都得长点儿心眼。
关于那些难改的bug的更多相关文章
- 如何写出一个让人很难发现的bug?
程序员的日常三件事:写bug.改bug.背锅.连程序员都自我调侃道,为什么每天都在加班?因为我的眼里常含bug. 那么如何写出一个让(坑)人(王)很(之)难(王)发现的bug呢? - 1 -新手开发+ ...
- 如何隐藏一个让人很难发现的bug?
程序员的日常三件事:写bug.改bug.背锅.连程序员都自我调侃道,为什么每天都在加班?因为我的眼里常含bug. 那么如何写出一个让(坑)人(王)很(之)难(王)发现的bug呢? - 1 - 新手开发 ...
- 如何打造难用,bug多的产品
本文纯属吐槽,如有雷同,绝非巧合.长期更新,欢迎一起吐槽. 没有产品规划 需求方提出需求后,直接开发,无需经过产品规划,用开发的思维搞出来!于是我们得到了一堆功能的集合.这个集合可以让刚上手的新用户一 ...
- 13 年的 Bug 调试经验总结
在<Learning From Your Bugs>一文中,我写了关于我是如何追踪我所遇到的一些最有趣的bug.最近,我回顾了我所有的194个条目(从13岁开始),看看有什么经验教训是我可 ...
- 13 年的 Bug 调试经验总结(来自蜗牛学院)
在<Learning From Your Bugs>一文中,我写了关于我是如何追踪我所遇到的一些最有趣的bug. 最近,我回顾了我所有的194个条目,看看有什么经验教训是我可以学习的.下面 ...
- 面试官问,说一个你在工作非常有价值的bug
如果你去参考面试,做足了准备,面对面试官员从容不迫,吐沫横飞的大谈自己的工作经历.突然,面试官横插一句:说一个你在工作非常有价值的bug.顿时,整个空气都仿佛都凝固了!“What?”... 我想没几个 ...
- 12月中旬项目中出现的几个bug解决方法的思考
这周做的项目遇到2个费了很多时间才解决的bug,解决之后,发现根本问题并不是什么很难的技术难点,都是因为自己在写代码的过程中,思维不够清晰.还有一个需要再提高的地方就是解决问题的思维,如何快速定位到问 ...
- 修改BUG心得
修改BUG心得 分类: 项目管理/CMMI2013-01-14 22:06 845人阅读 评论(0) 收藏 举报 目录(?)[-] 一 二 三 一. 1.写第一版时就杜绝这些的发生. 2.思维要开 ...
- 项目bug的修正
这几个月来,大部分业余时间,都花在阅读软件工程和编译原理方面的书籍上了.软件工程方面的书,包括软件需求.风险管理.敏捷建模,系统设计,软件项目管理,还有一些类似于的沉思录书籍等. 在这些书中,都只是讲 ...
随机推荐
- Log4net配置文件一般配置
配置文件一般配置 <?xml version="1.0"?> <configuration> <configSections> <sect ...
- ReportViewer技巧汇总
在MVC项目中使用ReportViewer 创建WebForm,向Webform中添加ReportViewer控件,通过CodeBehind设置报表参数并填充数据,测试通过后在MVC的View中iFr ...
- 《数据结构与算法JavaScript描述》
<数据结构与算法JavaScript描述> 基本信息 作者: (美)Michael McMillan 译者: 王群锋 杜欢 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9 ...
- Effective Java 55 Optimize judiciously
Principle Strive to write good programs rather than fast ones. Strive to avoid design decisions that ...
- Eclipse報錯:Could not find or load main class
代碼正確,但在Eclipse中無法運行,一直報錯: Could not find or load main class
- 01_蚂蚁感冒(第五届蓝桥预赛本科B组第8题 nyoj 990)
问题来源:第五届蓝桥预赛本科B组第8题 问题描述:有在一条定长(100cm)的直杆上有n(1<n<50)只蚂蚁(每只蚂蚁的起点都不一样),他们都以相同的速度(1cm/s)向左或者向右爬, ...
- css常见问题
CSS: 1.垂直居中布局 (1)已知宽高 (2)未知宽高 https://segmentfault.com/q/1010000004073623 2.文字退格 text-indent: 4em; 3 ...
- hdu 2583 permutation
permutation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- Astyle编程语言格式化工具的中文说明
Artistic Style 1.23Maintained by: Jim PatteeOriginal Author: Tal Davidson Usage : astyle [options] ...
- 【读书笔记《Android游戏编程之从零开始》】10.游戏开发基础(View 游戏框架)
对于玩家来说,游戏是动态的:对于游戏开发人员来说,游戏是静态的,只是不停地播放不通的画面,让玩家看到了动态的效果. 进入Android之前,首先要熟悉三个重要的类:View(视图).Canvas(画布 ...