惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
B
Blog RSS Feed
Microsoft Security Blog
Microsoft Security Blog
Y
Y Combinator Blog
N
Netflix TechBlog - Medium
M
MIT News - Artificial intelligence
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Check Point Blog
The GitHub Blog
The GitHub Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
P
Proofpoint News Feed
Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
GbyAI
GbyAI
博客园_首页
A
About on SuperTechFans
Blog — PlanetScale
Blog — PlanetScale
人人都是产品经理
人人都是产品经理
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
T
The Blog of Author Tim Ferriss
The Cloudflare Blog

博客园 - 雪山之巅

[原创][代码]类似IE设置代理服务器那样的数据快速批量操作业务的实现 [原创]Tree控件的异步加载方案的选择建议(C#,ASP.NET 2.0) [原创]大量数据导出为Excel文件的问题解决(C#,ASP.NET) [转载整理]一本java书的序言——开发历程思绪随笔 在.NET中发送邮件,使用回执功能中遇到问题的解决方法[在NOTES服务器上,C#,.NET2.0环境] powerdesigner中生成数据库脚本时出现长度限制问题的解决方法 - 雪山之巅 - 博客园 [转]数据库存储过程中利用extproc调用共享程序库/动态链接库,间接可以实现调用操作系统命令 VS2005无法调试,绑定句柄无效问题的解决方法 部署Excel相关的应用程序过程中遇到“检索COM类工厂中CLSID...”的两个错误的解决方法 [原创][开源]整合梅花雨日历控件,推出.NET版本 [原创]Oracle数据库性能优化的方案[有删节] 两个读取数据库VIew的定义的SQL语句的写法[Oracle /SQL SERVER] [SQL使用经验]选用 IN 还是 EXISTS,哪个性能更好 [笔记]4.软件规模和开发的关系 [笔记]2.软件质量的一些统计数据 [笔记]1.软件的质量特性characteristics of software quality 一个简单的UrlRewrite示例[演示用,写给同事看的,VS2003环境] Oracle中隐式游标和显式游标的教训[同事的经历] VS2003中自定义控件的智能提示解决方案备忘
[笔记]3.软件代码中的BUG问题的一些记录
雪山之巅 · 2006-05-18 · via 博客园 - 雪山之巅

题记

你越了解你的对手——BUG,你的测试就越做的更好,软件质量就越可靠。

虽然很难将其他组织的经验数据应用到自己所在的组织,甚至有些数据和直觉相反,但你需要行动起来,借助一些方法,评估自己的情况,去改进。

BUG不是均匀分布

如果没有经过分析,自然的想法是BUG的分布会比较分散的,等概率的存在于整个系统。事实上经典的2-8原则这里依然有效:

20%的类/子程序中存在80%的BUG,换言之,20%的类/子程序占用了80%的开发成本;甚至有人统计出50%的BUG存在于5%的类中;

有资料说IBM对自己的OS/360操作系统的分析发现,只占少数的容易出问题的子程序每千行代码BUG高达50个,修复的代价是开发整个系统的成本的10倍(这个成本包括了客户支持和现场维护)

 因为复杂造成BUG集中的类/子程序,则需要设计时考虑降低复杂度,已经开发的应该考虑重构方案。

大多数BUG的影响范围是有限的

研究发现,85%的BUG可以在修改不超过一个类/子程序的范围内被修正。

大部分BUG都很容易修正

大约85的BUG可以在几个小时内修正;大约15%的BUG需要几个小时到几天;只有不到15的BUG需要更长的时间;

程序员错误理解设计引起的BUG的情况

有研究表明16%的BUG是这个原因造成的,另一个研究结果该原因带来了19%的BUG。因此花点时间彻底了解设计是很值得的。

软件设计编码之外最常见的三种BUG源头:

缺乏应用领域的知识;

频繁变动或者矛盾的需求;

沟通和协调的失效;

软件设计构件期的BUG源头分布情况是:

95%的BUG是程序开发人员造成的,系统软件造成的为2%,硬件原因为1%,其他软件为2%;

特别的,拼写错误是一个很常见的BUG源

不同类型的软件系统,拼写带来的BUG情况差别是比较大,从4%到36%不等。

想一想人类有史以来三个最昂贵的软件BUG——分别价值16亿、9亿和2.45亿美元,都是因为一个不正确的字符造成的。

我自己曾经因为把user拼写为uesr带来很大麻烦,昨天下午检查数据库数据时又无意中发现一个把organization拼写为organiztion的BUG。

业界经验,在已经发行的大多数软件中平均千行代码中有1-25个BUG。

微软的数据是内部测试千行代码有10-20个缺陷,已经发布的产品则下降为0.5。

国防和航天类系统则能达到每50万行0个BUG的水平。

有报告宣称使用TSP方式的开发小组,可以达到千行代码0.06个BUG的水平。

除开特殊类型的软件系统,一般情况下,开发高质量的软件,比开发低质量软件然后修正的成本要低。

不再调试上花时间?——这是一个很有价值,并值得努力的目标