这篇文章,不是讨论怎么提升程序员的能力避免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后,再交付给测试组,由测试组进行更深入的测试,将大幅减少整个公司的项目成本。

BUG数量和项目成本的更多相关文章

  1. bug数量问题研究

    最近感觉很扯蛋的事情就是测试人员提bug的问题.先说下前提,公司测试会以提bug数量来做为一部分员工绩效的成份.再说一下公司从需求到开发 到测试,先是需求出一个文档,开发根据文档做功能的开发,然后测试 ...

  2. 在Java编码中,如何减少bug数量

    众所周知,Java编程语言在IT行业是企业中不可缺少的.不管,从Web应用到Android应用,这款语言已经被广泛用于开发各类应用及代码中的复杂功能.但在编写代码时,bug永远是困扰每一位从业者的头号 ...

  3. Oracle EBS-SQL (CST-4):检查组织间项目成本.sql

    select       i1.segment1                                                                           项 ...

  4. 从壹开始 [ Nuxt.js ] 之一 || 为开源收录Bug之 TiBug项目 开篇讲

    缘起 哈喽大家周二好呀,刚刚经历过了几天火车抢票,整个人都不好了,不知道小伙伴对今年的春节是否还一如既往的期待呢,眼看都要春节了,本来也想写篇2018总结篇,但是怕不免会出现鸡汤文的窠臼嫌疑,想想还是 ...

  5. UCP规模估算方法介绍 基于UCP方法的软件项目成本估计及其应用方法,软件,项目,UCP方法,应用,项目估算及软件及应用,软件估算,项目成本,软件项目

    基于UCP方法的软件项目成本估计及其应用 UCP说明: UCP = 交易的UCP数 + Actor的UCP数,1.交易/Actor在估算时按复杂度分为简单.普通.复杂.主观类别,权重分别对应1.2.3 ...

  6. [bug] IDEA springboot项目 访问静态资源 html页面 报404

    原因 复制的静态资源目录没有编译 解决 检查target目录中,是否有static目录,若没有,重新右键项目install即可 若还不能解决,尝试浏览器缓存和IDEA编译设置,详见参考链接 参考 ht ...

  7. [bug] IDEA Maven 项目 Module 不加粗,无法编译

    参考 https://blog.csdn.net/qq_42479920/article/details/102859244

  8. 什么是需求Bug、设计Bug、功能bug?

    首先什么是需求Bug.设计Bug.功能bug? 需求Bug,指由于客户需求描述不清晰或错误.需求收集人员自身原因及需求本身模糊难于分析.获取等原因,导致客户需求获取不准确,后期产品不能满足客户.用户的 ...

  9. 软件测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug?

    问题描述: 测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug? 精彩答案: 会员 土土的豆豆: 本期问题其实主要是针对不同方面或纬度上对于bug的一个归类和定位. 个人认为,从软 ...

随机推荐

  1. 再学IHanlder 类----------------关于Asp.net与iis原理网上看博客收获写一个验证码用一般处理程序记的好长时间前就写过不过现在再看有点不一样的感觉

    建一个web网站 新建一般处理程序直接贴代码: using System;using System.Collections.Generic;using System.Linq;using System ...

  2. 一步步实现 Prism + MEF(二)--- 绑定命令

    Prism程序集为我们提供了DelegateCommand命令,使用该命令可实现窗口直接绑定.第一步:在ViewModel中定义一个DelegateCommand属性. public Delegate ...

  3. opencvsharp BitmapSource图片截取问题

    private BitmapSource GetUiImage(FrameworkElement ui) { RenderTargetBitmap bmp=new RenderTargetBitmap ...

  4. 第3章 编写ROS程序-1

    1.创建工作区和功能包 在我们写任何程序之前,第一步是创建一个容纳我们的功能包的工作区,然后再创建功能包本身. 创建工作区  使用标准的mkdir命令行去创建一个目录,我们将把这个新的目录称作工作区目 ...

  5. C# 测试代码#if DEBUG使用

    代码示例: #if DEBUG      Console.WriteLine("DEBUG:11111111111"); #else       Console.WriteLine ...

  6. Tcp编程demo之三部曲

    下面的demo的目的是通过代码来快速的了解tcp编程的步骤 1首先呢,对InetAddress类简单了解其作用 public static void main(String[] args) throw ...

  7. selenium+Python搭建

    安装环境:windows 7 64位   1.安装python,版本为python2.7 1)下载安装包. 在python官方网站选择下载python2版本的windows安装包:python-2.7 ...

  8. jsp网站访问次数统计

    JSP 点击量统计 有时候我们需要知道某个页面被访问的次数,这时我们就需要在页面上添加页面统计器,页面访问的统计一般在用户第一次载入时累加该页面的访问数上. 要实现一个计数器,您可以利用应用程序隐式对 ...

  9. CSS揭秘—打字动效(四)

    前言:     所有实例均来自<CSS揭秘>,该书以平时遇到的疑难杂症为引,提供解决方法,只能说秒极了,再一次刷新了我对CSS的认知 该书只提供了关键CSS代码,虽然有在线示例代码链接,但 ...

  10. 关于spring mvc的配置文件

    1. Web.xml <!--配置页面控制器--> <servlet> <servlet-name>spring</servlet-name> < ...