这篇文章,不是讨论怎么提升程序员的能力避免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. python3中,pycharm中怎么连接数据库

    因为python3现在还不能直接连接数据库,所有如果想连接,就只能通过以下方法: 在APP中的,__init__.py中,添加以下代码就可以: import pymysql pymysql.insta ...

  2. stm32之入门知识

    一.stm32最小系统 stm32最小系统组成如下(除了stm32芯片外): 1.电源模块,3.3V电源,需要用稳压器件,有时要用感容网络产生stm32所使用的模拟电源. 2.时钟模块,有源或者无源晶 ...

  3. AD 学习

    http://blog.csdn.net/lingpaoershiyishiji/article/details/9139527

  4. day10servlet编程

    Servlet学习的大纲:  . servlet概念及相关接口简介  . servet 执行过程  . servlet路径映射  . 缺省servlet --应用  . servlet生命周 ...

  5. UVa 11100 The Trip, 2007 (题意+贪心)

    题意:有n个包,其中小包可以装到大的包里,包的大小用数字进行表示,求最小的装包数量. 析:这个题的题意不太好理解,主要是有一句话难懂,意思是让每个最大包里的小包数量的最大值尽量小,所以我们就不能随便输 ...

  6. 牛客多校3 A-PACM Team(状压降维+路径背包)

    PACM Team 链接:https://www.nowcoder.com/acm/contest/141/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144 ...

  7. iOS内购流程二(添加产品、沙盒账号以及上架流程)

    注意:使用了IAP的App必须先配置好协议.税务和银行业务 一.创建一个App应用 1.登录iTunes Store,点击我的App 2.新建一个App(如果App已经创建,直接点击App进入就行了) ...

  8. GridView 中RowDataBound 获取绑定后的各个字段的值

    protected void GridView_dept_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType ...

  9. Codeforces Round #299 (Div. 2)【A,B,C】

    codeforces 535A-水题: #include <bits/stdc++.h> using namespace std; typedef long long LL; char s ...

  10. BZOJ2388:旅行规划(travel)——分块凸包

    题目 OIVillage 是一个风景秀美的乡村,为了更好的利用当地的旅游资源,吸引游客,推动经济发展,xkszltl 决定修建了一条铁路将当地 $n$ 个最著名的经典连接起来,让游客可以通过火车从铁路 ...