这篇文章,不是讨论怎么提升程序员的能力避免BUG,因为程序员的能力不足造成的BUG,短期是无法避免的。这里主要探讨的是因为程序员疏忽大意和不良的开发习惯,产生的低级BUG,对项目成本影响。 首先了解下软件测试流程,mantis是跟踪BUG的一种工具,具体流程如下图:

  根据流程图可以发现,测试组发现的BUG和程序员自己发现并修改BUG(绿色),会多出6个节点(紫色)。每个节点对工作量的影响有多少呢?或许有人会说,这些紫色部分消耗时间很少,1到2分钟最多5分钟能完成,理论上是这样。在从事高脑力劳动的工作时,每一项工作在开始之前都会有工作切换的时间损耗,2分钟的工作,你的切换和思考进入另一种工作流的时间同样也需要2分钟(阅读《人件》,关于时间碎片和工作流的介绍),那么每个流程节点至少需要5分钟。也就是说经测试组发现的BUG比程序员自己发现BUG,要多消耗30(5x6)分钟的公司人力成本。

  你是否有了解你所在的公司,2个程序员3个月开发周期的小项目,有多少个BUG呢?以CMMI3的标准,每千行代码可以有2.39个BUG,则BUG数是50个左右。实际上你所在的公司BUG数不会少于70个,可能在70-100甚至更多(本人曾遇到过刚工作一年的程序员,这种规模的BUG数达到150个)。按统计规律这些个BUG中,有1/3个应该是比较低级的,程序员自测就可以发现的,比如界面错误等等。这些低级别的BUG将消耗600(30X20)到1500(30X50)分钟,相当于2-4人天的项目人力成本。刚才说的是3个月开发周期,那1整年下来,额外项目成本就是8-16人天。如果公司有5个开发小组,10来个人,则1年 的额外项目总成本将达到是40-80人天。因为程序员的小小疏忽或不良开发习惯,放大到整个公司,1年将多消耗2-4人月的人力成本,如果是一个中型的软件公司,成本将非常庞大,注意这个成本是可以避免的,但却最容易被管理层忽视。

  显而易见,BUG越少,公司的项目成本越低。程序员在平时的开发过程中,做好白盒测试,杜绝低级错误,在交付前投入一定的时间测试并修复,不要把测试工作全部依赖测试组,更不要把测试组作为你的专职测试。项目经理在这个阶段可以把好最后一关,同时进行适当的测试,清除显而易见的BUG后,再交付给测试组,由测试组进行更深入的测试,将大幅减少整个公司的项目成本。

最新文章

  1. C#中一些常用的加密和哈希处理
  2. .Net程序员学习Linux最简单的方法
  3. 关于oracle ORA-28001的解决方法
  4. Centos搭建Linux测试环境,几个基本的设置项
  5. javascript学习-原生javascript的小特效(多物体运动效果)
  6. 王家卫i
  7. Dubbo 应用容器
  8. unity3d Hair real time rendering 真实头发实时渲染(转)
  9. MySQL存储过程详解 mysql 存储过程
  10. 使用Unity创建塔防游戏(Part1)
  11. bootstrap开始咯
  12. 【学习】ie-css3.htc---让ie8以下支持css3
  13. [LeetCode] Max Area of Island 岛的最大面积
  14. ArcGIS Server注册数据库——以oracle为例
  15. @EnableWebMvc,WebMvcConfigurationSupport,WebMvcConfigurer和WebMvcConfigurationAdapter区别
  16. C#完美任意设置webBrowser框架默认的IE内核版本
  17. 发现一sonar-runner bug
  18. [整理]C 内核源代码-学习资料
  19. Hive desc
  20. 在QtCreater中配置Artistic Style格式化Qt程序源代码!!

热门文章

  1. 【win10激活问题】 从【win10专业工作站版】转为 数字许可证的【win10专业版】
  2. pow()函数的精度问题
  3. 在MongoDB中修改数据类型
  4. Hashtable源码剖析
  5. 第一个PyQuery小demo
  6. ACM-ICPC2018徐州网络赛 BE, GE or NE(对抗搜索+博弈+记忆化)
  7. HDU - 1869 六度分离 Floyd多源最短路
  8. iOS三方支付--微信支付/支付宝支付
  9. GridView 中RowDataBound 获取绑定后的各个字段的值
  10. 洛谷P3608 [USACO17JAN]Balanced Photo平衡的照片