探讨:如何从根本上提高软件质量

发表于:2007-7-19 15:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:唐俊    来源:eNet硅谷动力

        在软件开发过程中,有几条准则是已经被无数次验证的。

  1、在项目发布后发现和修复Bug的成本是需求和设计阶段所需的一百倍!

  2、80%可避免的重复劳动源自于20%的缺陷,其中两大主要来源包括草率的需求定制和象征性的案例设计和开发。

  3、大约80%的缺陷来自20%的模块,而约半数的模块是几乎没有缺陷。

  4、90%的软件的停工期最多来自于10%的缺陷。

  上面四条原则说明了两个问题,一是错误越早发现成本越低,而且大部分的错误都是在软件开发的前面阶段引入的。二是大部分的错误都集中在少数的模块。

  测试作为最有效的“马后炮”,一直被认为最有效的保证软件质量的手段。果真那么有效果吗?首先得考虑一下这个问题:“为什么80%的缺陷会在20%的模块,而过半数的模块几乎没有缺陷呢?”。

  缺陷集中出现有两种可能,一是大量出现缺陷的模块特别复杂,以至于软件设计者和程序员没有能力保证程序没有错误。二是编写这些模块的程序员比编写其他模块的程序员水平要低,或者做事情要毛糙。第一种可能是可以避免的,如果模块太复杂就将其分解为若干更小的模块,直道划分的模块够简单为止,这也是模块划分过程中应该要做的。核心技术应该由骨干人员进行技术攻关,保证其正确无误的实现。至今也没有听说过有程序员实现不了的软件,程序员、特别是优秀的软件设计师的能力无需怀疑的。那么问题出现在编写程序的程序员的水平有高低,或者质量意识不够强。10个程序员中如果9个编写的程序都没有问题,另外1个人水平欠缺就可能导致问题都出现在他编写模块中。

  等到软件编码完成后,进行测试的时候发现了问题,这个时候再去改正,那么错误修正费用已经发生了。何不一开始就替换掉能力低下的程序员,或者干脆少了这两个程序员而延长项目开发时间来保证软件的质量呢?测试虽然能够发现问题,却不能节约成本。

  将测试引入到需求分析阶段,将需求的问题,在需求分析阶段就找出来。这样就可以节约100倍修复开销,这样的只赚不赔的事情为什么不做呢?

  软件质量靠的不仅是测试,而是软件企业对软件质量的关注程度,如果一开始就将质量放到一个比较高的位置,我想测试这种“马后炮”才能够更充分的发挥它的作用。
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • cafard-haibin
    2007-7-25 12:51:17

    我也同意您的观点,但是感觉在目前的软件行业,根据V模型来开发软件的公司还很少,说白了就是软件公司的管理制度造成的。

  • dongchanglin
    2007-7-23 16:53:56

    感觉条件设定得有点理想化。测试人员不能决定项目组成员吧,测试人员介入需求阶段很好,但还是需要有人持续跟踪设计是否偏离需求。而且提高开发人员的质量意识也很重要。

  • ∮随风而去~
    2007-7-21 16:30:18

    说的到是没错,但是就如一句话所说:有时候客户都不知道或者很难描述好他们的需求~那么这时候到底按谁的意图去开发呢~
    所以我想这也是敏捷开发方式越来越得到追捧的原因吧~
    一家之言,难免有措辞不当之处,欢迎指正~!

  • hotivy
    2007-7-20 14:50:39

    应该多学学工业上的质检,他们的产品都是步步为营,没听说哪个产品是最后做完了才检查质量的。

    测试引入需求,这对测试人员的要求就很高,测试队伍里需要有业务高人,设计高人,要不然写出来的测试用例都是错的,呵呵

  • alexander_zhu
    2007-7-20 09:45:18

    同意你观点

    但是根本要解决开发人员对高质量产品的追求。

    没有这个,依旧开发软件如同过泥滩一般

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号