多年的测试经验中,经常发现有这么一种现象:总有些提了的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的更多相关文章

  1. 如何写出一个让人很难发现的bug?

    程序员的日常三件事:写bug.改bug.背锅.连程序员都自我调侃道,为什么每天都在加班?因为我的眼里常含bug. 那么如何写出一个让(坑)人(王)很(之)难(王)发现的bug呢? - 1 -新手开发+ ...

  2. 如何隐藏一个让人很难发现的bug?

    程序员的日常三件事:写bug.改bug.背锅.连程序员都自我调侃道,为什么每天都在加班?因为我的眼里常含bug. 那么如何写出一个让(坑)人(王)很(之)难(王)发现的bug呢? - 1 - 新手开发 ...

  3. 如何打造难用,bug多的产品

    本文纯属吐槽,如有雷同,绝非巧合.长期更新,欢迎一起吐槽. 没有产品规划 需求方提出需求后,直接开发,无需经过产品规划,用开发的思维搞出来!于是我们得到了一堆功能的集合.这个集合可以让刚上手的新用户一 ...

  4. 13 年的 Bug 调试经验总结

    在<Learning From Your Bugs>一文中,我写了关于我是如何追踪我所遇到的一些最有趣的bug.最近,我回顾了我所有的194个条目(从13岁开始),看看有什么经验教训是我可 ...

  5. 13 年的 Bug 调试经验总结(来自蜗牛学院)

    在<Learning From Your Bugs>一文中,我写了关于我是如何追踪我所遇到的一些最有趣的bug. 最近,我回顾了我所有的194个条目,看看有什么经验教训是我可以学习的.下面 ...

  6. 面试官问,说一个你在工作非常有价值的bug

    如果你去参考面试,做足了准备,面对面试官员从容不迫,吐沫横飞的大谈自己的工作经历.突然,面试官横插一句:说一个你在工作非常有价值的bug.顿时,整个空气都仿佛都凝固了!“What?”... 我想没几个 ...

  7. 12月中旬项目中出现的几个bug解决方法的思考

    这周做的项目遇到2个费了很多时间才解决的bug,解决之后,发现根本问题并不是什么很难的技术难点,都是因为自己在写代码的过程中,思维不够清晰.还有一个需要再提高的地方就是解决问题的思维,如何快速定位到问 ...

  8. 修改BUG心得

      修改BUG心得 分类: 项目管理/CMMI2013-01-14 22:06 845人阅读 评论(0) 收藏 举报 目录(?)[-] 一 二 三 一. 1.写第一版时就杜绝这些的发生. 2.思维要开 ...

  9. 项目bug的修正

    这几个月来,大部分业余时间,都花在阅读软件工程和编译原理方面的书籍上了.软件工程方面的书,包括软件需求.风险管理.敏捷建模,系统设计,软件项目管理,还有一些类似于的沉思录书籍等. 在这些书中,都只是讲 ...

随机推荐

  1. 【OpenCV】图像转成YUV420 I420格式

    一.YUV420 I420介绍 一种颜色编码方法,在YUV色彩空间中,Y表示亮度信号,U.V表示色度信号: 其YUV排列如下,4个Y分量(2x2)对应一个U和V, Y存放完,接着存放U,U存放完,最后 ...

  2. SQLPLUS连接oracle

    SQLPlus 在连接时通常有三种方式 1. sqlplus / as sysdba 操作系统认证,不需要数据库服务器启动listener,也不需要数据库服务器处于可用状态.比如我们想要启动数据库就可 ...

  3. android:layout_gravity和android:gravity的区别

    1.首先来看看android:layout_gravity和android:gravity的使用区别. android:gravity: 这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置 ...

  4. 百度地图秘钥ak的获取

    今天打开网站的时候出现了这个问题“百度未授权使用地图API, 可能是因为您提供的密钥不是有效的百度开放平台密钥或此密钥未对本应用的百度地图JavasoriptAPI授权.....”经过研究终于知道什么 ...

  5. ubuntu 添加启动器

    终于搞定了安卓开发环境,不知道折腾了多少次,多少个IDE,解决了一个问题,又冒出一个问题.烦死了,最后关头,都快放弃了,重启电脑,打开 android stuio 编译运行居然陈宫了,没有报错,why ...

  6. SSIS hang with unhandle exception

    如果你的packages在执行的过程中有没有被捕获到的异常,则sqldumper会跳出来获取这些异常信息输出,存在下面的目录中: C:\Program Files\Microsoft SQL Serv ...

  7. 为TFS配置跨平台的生成服务器Xplat (Ubuntu Linux)

    1. 概述 从TFS 2015开始,微软开始支持跨平台的构建代理.你可以使用TFS的Xplat代理,方便的在基于IOS, Unix和Linux的服务器上搭建生成代理,实现构建.发布等功能.本文档已Ub ...

  8. 解决客户端通过zookeeper连接到hbase时连接过多的问题

    原因:客户端程序通过zookeeper访问hbase的连接数超过设置的默认链接数(默认数是30),连接数不够用会导致后续的连接连接不上去. 解决办法:设置hbase-site.xml配置文件,添加如下 ...

  9. 深搜+DP剪枝 codevs 1047 邮票面值设计

    codevs 1047 邮票面值设计 1999年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description ...

  10. Google Map API 使用总结

    Google Map API (一):显示一个最基本的地图 1 实现一个地图:<head>中引用: <script type="text/javascript" ...