接下来,人们发现调试具有线性收敛,或者更糟糕的是,人们在某种程度上期望到达终点的二次方法.所以测试拖拽,最后的困难错误比第一次花费更多的时间.
从"神话人月,第1章焦油坑".
这里线性收敛的含义是什么,你能给我一个流行的例子或图形吗?
弗雷德布鲁克斯的意思是,管理层对发现,修复,测试和关闭错误的速度的预期会以某种方式以二次方式增长,这是不现实的.布鲁克斯断言,关闭错误的速度最好是时间线性的,事实上可能会比这更糟糕.
在图片中,假设一个完全零错误和缺陷的乌托邦目标,这里是"二次闭合"(绿色),线性闭合(橙色)和更坏情况下衰减指数(红色).
我同意Brooks - 管理层的期望是基于这样的假设:随着开发人员完成编码,越来越多的开发团队将被分配到调试,这将增加错误修复的速度.
然而,实际上,很容易发现并修复了容易出错的错误,但更难以发现更多隐藏的缺陷,因此在项目错误关闭时经常会遇到长尾.
还有另一个原因,即错误计数不会以线性速率或更好的速度燃烧 - 即使在大多数现代化的专业软件开发公司中,在开发周期后期比在早期阶段更多的测试资源分配给项目,当然随着更多代码的开发,引入的bug越多,测试人员越多,发现的bug就越多.这意味着最初的错误计数无可救药地被低估,并且在项目的长期内,总错误数量实际上会增加.
更有用的指标是缺陷关闭的净率.在这里,团队通常会寻找关闭率与报告的新缺陷率相交的点 - 这被视为表明隧道尽头即将到来的良好信号.
归档时间: |
|
查看次数: |
303 次 |
最近记录: |