BUG数量和项目成本
这篇文章,不是讨论怎么提升程序员的能力避免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数量和项目成本的更多相关文章
- bug数量问题研究
最近感觉很扯蛋的事情就是测试人员提bug的问题.先说下前提,公司测试会以提bug数量来做为一部分员工绩效的成份.再说一下公司从需求到开发 到测试,先是需求出一个文档,开发根据文档做功能的开发,然后测试 ...
- 在Java编码中,如何减少bug数量
众所周知,Java编程语言在IT行业是企业中不可缺少的.不管,从Web应用到Android应用,这款语言已经被广泛用于开发各类应用及代码中的复杂功能.但在编写代码时,bug永远是困扰每一位从业者的头号 ...
- Oracle EBS-SQL (CST-4):检查组织间项目成本.sql
select i1.segment1 项 ...
- 从壹开始 [ Nuxt.js ] 之一 || 为开源收录Bug之 TiBug项目 开篇讲
缘起 哈喽大家周二好呀,刚刚经历过了几天火车抢票,整个人都不好了,不知道小伙伴对今年的春节是否还一如既往的期待呢,眼看都要春节了,本来也想写篇2018总结篇,但是怕不免会出现鸡汤文的窠臼嫌疑,想想还是 ...
- UCP规模估算方法介绍 基于UCP方法的软件项目成本估计及其应用方法,软件,项目,UCP方法,应用,项目估算及软件及应用,软件估算,项目成本,软件项目
基于UCP方法的软件项目成本估计及其应用 UCP说明: UCP = 交易的UCP数 + Actor的UCP数,1.交易/Actor在估算时按复杂度分为简单.普通.复杂.主观类别,权重分别对应1.2.3 ...
- [bug] IDEA springboot项目 访问静态资源 html页面 报404
原因 复制的静态资源目录没有编译 解决 检查target目录中,是否有static目录,若没有,重新右键项目install即可 若还不能解决,尝试浏览器缓存和IDEA编译设置,详见参考链接 参考 ht ...
- [bug] IDEA Maven 项目 Module 不加粗,无法编译
参考 https://blog.csdn.net/qq_42479920/article/details/102859244
- 什么是需求Bug、设计Bug、功能bug?
首先什么是需求Bug.设计Bug.功能bug? 需求Bug,指由于客户需求描述不清晰或错误.需求收集人员自身原因及需求本身模糊难于分析.获取等原因,导致客户需求获取不准确,后期产品不能满足客户.用户的 ...
- 软件测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug?
问题描述: 测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug? 精彩答案: 会员 土土的豆豆: 本期问题其实主要是针对不同方面或纬度上对于bug的一个归类和定位. 个人认为,从软 ...
随机推荐
- Java中的IO流(1)
字节流: //一个字节一个字节的读写 FileInputStream in=new FileInputStream("源文件"); FileOutputStream out=new ...
- Windows平台Python编程必会模块之pywin32
在Windows平台上,从原来使用C/C++编写原生EXE程序,到使用Python编写一些常用脚本程序,成熟的模块的使用使得编程效率大大提高了. 不过,python模块虽多,也不可能满足开发者的所有需 ...
- mvvm 模板中事件没有执行的解决方案
今天在wpf设计的过程中,用到了listview,数据绑定在模板中进行,其中有个按钮的click事件,一直不执行,很奇怪,找了很久才找到解决办法,原因还是暂时不清除: <ListView x:N ...
- PHP判断用户是手机端?还是浏览器端访问?
function isMobile(){ $useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ' ...
- 懒人模式开启Android模块自动化Api之旅
推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) 在将业务进行模块化时,避免不了模块页面路由和模块通信, 大多数我 ...
- 安装coreseek 编译错误
Ubuntu下 编译csft 报错fatal error python.h no such file or directory 执行apt-get install python-dev即可
- Guid.NewGuid().ToString()的几种格式 (转)
1.Guid.NewGuid().ToString("N") 结果为: 38bddf48f43c48588e0d78761eaa1ce6 2.Guid.NewGuid() ...
- 搭建 Keras
首先安装ipython ipython安装完成以后出现如下界面 然后安装theano 中途安装因为网络不好,造成超时而停止安装或者停滞不前,则按下Ctrl+C,停止此操作,或者关掉Anaconda P ...
- Node-SASS安装
鉴于国内的环境,node-sass实在是太难安装了,可以直接通过淘宝的npm镜像来安装. 1.安装cnpm(https://npm.taobao.org/) npm install -g cnpm - ...
- 洛谷P4099 [HEOI2013]SAO(树形dp)
传送门 HEOI的题好珂怕啊(各种意义上) 然后考虑树形dp,以大于为例 设$f[i][j]$表示$i$这个节点在子树中排名第$j$位时的总方案数(因为实际只与相对大小有关,与实际数值无关) 我们考虑 ...