题记
你越了解你的对手——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的水平。
除开特殊类型的软件系统,一般情况下,开发高质量的软件,比开发低质量软件然后修正的成本要低。
不再调试上花时间?——这是一个很有价值,并值得努力的目标
发表评论
-
一个简单的随机数字串函数,欢迎拍砖改进
2006-02-22 14:41 634static public string GenRandom ... -
一个简单的e-mail校验函数,欢迎拍砖改进
2006-02-22 15:13 727/// <summary> /// 校验是否 ... -
一个简单的取用户真实IP函数[B/S],欢迎拍砖改进
2006-02-22 15:28 714可以取的真实IP的哦public static string ... -
一个高效判断字符串是否全数字的函数,请大家指正拍砖
2006-02-22 18:50 904看到很多人都采用正则表达式或者一些其它五花八门的算法。经过简单 ... -
多语言Web系统布局的几个小帖士
2006-02-28 14:50 916基于窗体的整体大小使用级联样式表表达式调整元素的大小 ... -
VS2003中自定义控件的智能提示解决方案备忘
2006-02-28 21:26 956这个问题困饶了很久了。一直没有妥善解决。最近从nhiberna ... -
Oracle中隐式游标和显式游标的教训[同事的经历]
2006-02-28 21:34 809一直以为以下这种语句(执行一)就是隐式游标,跟显式定义游标(执 ... -
一个简单的UrlRewrite示例[演示用,写给同事看的,VS2003环境]
2006-03-20 13:07 891UrlDemo.rar下载比较简单。关键点如下:一.Versi ... -
[笔记]1.软件的质量特性characteristics of software quality
2006-05-17 13:14 731外在特性:该软件产品用户所能感受到的部分。包括:正确性可用性效 ... -
[笔记]2.软件质量的一些统计数据
2006-05-17 13:43 1060一个关键事实:提高开发效率和改善质量的最佳途径——减少代码返工 ... -
[笔记]4.软件规模和开发的关系
2006-05-18 13:47 526前言: 对非软件领域的其他领域[比如化工、船舶等等] ... -
[SQL使用经验]选用 IN 还是 EXISTS,哪个性能更好
2006-09-12 10:08 1308一、EXISTS 并非总比IN 快,究竟应该选用 IN 还是 ... -
两个读取数据库VIew的定义的SQL语句的写法[Oracle /SQL SERVER]
2006-12-01 18:05 1070例如想读取的VIEW名称 MYVIEW在ORACLE中:SEL ... -
部署Excel相关的应用程序过程中遇到“检索COM类工厂中CLSID...”的两个错误的解决方法
2007-01-29 10:52 2007最近用.net写了一个相关Excel的B/S的程序,部署到20 ... -
VS2005无法调试,绑定句柄无效问题的解决方法
2007-02-02 13:04 1941今天我的VS2005调试时遇到以下两个错误: 1.无法连接到名 ... -
[转]数据库存储过程中利用extproc调用共享程序库/动态链接库,间接可以实现调用操作系统命令
2007-02-09 14:49 12041 数据库程序库主要介绍使用ORACLE数据库的LIBRARY ... -
powerdesigner中生成数据库脚本时出现长度限制问题的解决方法
2007-02-09 16:23 897今天有同事问这个问题,错误显示如下:事实上相关设计的脚本可以在 ... -
[转载整理]一本java书的序言——开发历程思绪随笔
2007-11-26 13:16 722以下文字是一本java书的 ...
相关推荐
了解双指针技巧在数组问题中如何应用;学习算法代码的编写方法。 阅读建议:仔细理解题目要求,分析清楚算法思路才开始编程;可以边学习参考代码,边自己实现对应算法。对比输出结果,分析差异找到bug。逐题逐步深入,重复...
33.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。 答:解1: select top 10 * from A where id not in (select top 30 id from A) 解2: select top 10 * ...
能学到什么:掌握双指针技巧在数组和滑动窗口问题中的应用;了解区间设置的技巧,学会处理奇偶等边界条件;学习算法代码的编写方法。 阅读建议:仔细理解题目要求,分析清楚算法思路才开始编程;可以边学习参考代码,边...
2012-06-12 11:43 3,861 C++矩阵加法和乘法运算(可运行但未排除BUG).txt 2012-06-12 11:52 2,753 C++词法分析器.txt 2012-06-12 12:44 2,035,571 Clock.rar 2012-06-12 12:44 1,915,984 CZG.rar 2012-06-12 12:22 ...
本仓库为学习orb-slam2时收集的部分资料,包含参考论文(上面有当时学习时的笔记),注意...希望你能把自己学习代码过程中遇到未解决的问题记录到问题集解决的其他典型问题记录到问题已解决,学习过程中积累的一些的
内部包含记录笔记、翻译、输入doi文献下载,工作安排,日历,查看路径,打开cmd,打开浏览器,打开其他文件,markdown语法等。 使用python编写,欢迎大家提意见,如果下载的人多,后续会上传源代码提供大家学习。 ...
SideNotes使您的笔记记录过程变得无忧无虑。您的笔记始终在您的指尖。立即显示和隐藏它们-单击“打开栏”,按键盘快捷键,滑动手势或将光标移到显示器的侧面(选项)。您的笔记将始终停留在其他窗口的上方-仅在需要...
Sc-3.0.0.81-2019.2.3 更新日志: 1、[更新]优化关闭笔记本小键盘算法; 2、[更新]加强防流氓机制代码; 3、[修复]未勾选跳过OOBE遇注册名称或单位是中文的情况下导致封装失败(反馈者:八戒); 4、[修复]修复Win10...
这是一个个人用于复现、公开一些感兴趣、或者影响稍大的漏洞的项目,没有多少技术含量,权当个人技术笔记。 fastjson 该模块主要记录一些fastjson的利用gadget,不过很多gadget并没有记录在案。 RCE相关 package:...
[2009.03.09 v0.2.3.328] 1,增强进程保护(保护线程),省得老毛子麻烦 2,修复一个导入表分析的错误 3,修复处理重定位表的BUG 4,修复attach notepad.exe的BUG 5,修复处理导出表的bug 6,修复处理tls的BUG [2009....
如何解决ACCESS中SELECT TOP语句竟然返回多条记录的问题? Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息 用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using...
易函123日常bug笔记 记录日常遇见的bug, 以防再次遇见不知如何处理; 也有日常的笔记记录, 记录知识盲区,加深印象; 如果发现我有写错误的,欢迎随时帮我改正,或者增加新的观点,谢谢! 如果GitHub不方便看,...
按时完成老师布置的练习,记录练习中遇到的BUG和解决方案,根据自己的理解总结学到的知识点。 初学者 应该抓住重点,不要钻牛角尖 遇到问题了,优先自己尝试解决,其次谷歌百度,最后再问老师。 如果时间允许,可以...
由于时间有限,笔记与代码都位于.py文件中,以注释和代码形式存在,对学习过程中会出现的错误以及难点进行分析 由于作者能力有限且爬虫技术迭代速度快,代码可能会存在bug,如有此情况,欢迎联系我更正或者pull ...
05、修正在没有记录时,输入一些数据后点删除会出错 06、添加软件记忆功能,开启后显示最后访问的类别 07、文章排序方式改为pr值排序,数值越大排名越靠前 2011.05.26 【v2.5】 01、修正文章页面...
这份代码隐藏了很多的bug,希望拿到这份代码的同学可以多去修改,如果能将改进的成果继续发布在源码爱好者,我将感激不荆我设计这一软件的理念和大家共勉:我记录的一切,对你来说也许毫无新意,但对我来说,就是...
在这个信息爆炸的时代,难道你不希望有一个能够轻松解决你多端、多浏览器的收藏和笔记同步问题的神奇工具吗?别再纠结了!Mtab书签已经为你准备好了 Mtab书签是一款集基础导航、记事本、在线小工具和多端同步于一身...
博客中的东西就稍微杂乱一些了,包含了很多开发中遇到的问题 js日志和笔记 JavaScript部分 学而不思则罔,思而不学则怠,学的越多越深刻感受到这句话的重要性,这里记录日常开发中遇到的坑,时不时会打开看看 关于算法...
一个跨平台的笔记记录和目标跟踪应用程序,用于基于ElectronJS的渗透测试人员。 下载 内容 报告 报告错误 报告一个安全漏洞 即将来临 当前目标 如何贡献? 学分 检查清单 我们的目标是在v0.3版本中发布许多清单。...
自述文件 树莓派应该算术是目前的开源硬件里学习嵌入式Linux系统最好的工具,里面的设计思路和一些工具是很值得替换的,这里主要使用Raspberry Pi ...如何定义开源社区代码,厂家代码,产品代码bug问题 0197 git中文文