要提高软件缺陷去除效率,就必须要重视审查技术

很多项目团队的去除软件缺陷的手段,都是依赖于软件测试,都是在软件开发完成之后,将程序交由专业的测试人员进行测试。这样的操作常常会由于前期遗留太多的bug,使得测试周期被拉长,测试的代价非常高昂。

实际上测试并不是去除软件缺陷的唯一手段。在《软件工程最佳实践》中,给出了不同缺陷的最佳发现方法:

  • 需求缺陷:正规的需求审查

  • 设计缺陷:正规的设计审查

  • 代码缺陷:静态分析、代码审查、测试

  • 文档缺陷:文档编辑、文档审查

  • 不良缺陷:修复后的重新审查、修复后的静态分析、回归测试

  • 测试用例缺陷:测试用例审查

通常我们所说的软件缺陷并不只是单纯的代码缺陷。前期的需求缺陷和设计缺陷,最终都会反映到代码缺陷中。这些缺陷如果能够在早期发现修复的代价很小,只需要需修改技术文档,再通过联合评审就可以完成;而如果这些缺陷直到后期测试的时候才发现,就需要进行需求跟踪,修改技术文档,制定修复方案,修改代码调整测试计划和测试用例,进行回归测试,变更控制等诸多操作才可以完成,代价会变得非常之高。有数据表明后期发现缺陷的修复成本是早期的十倍!

当前对发现需求缺陷和设计缺陷的最有效的方法是审查技术。

审查就是由一些专家组成的审查组,对技术文档在逐页进行审查,对代码逐行进行审查,以使代码和文档满足相应的技术准则和规范,并且与用户需求保持一致。

当然对于代码来说,在进行审查之前,最好应先进行静态分析,由此可以先行消除一些语法错误以及在边界条件、调用和链接方面的问题。静态分析可以发现87%的常规编码缺陷。这样就会使得代码审查的内容更多地集中到工具不能完美取代的、必须由人来完成的逻辑问题的发现上。

审查所以有效,是因为人的大脑具有分析和处理归纳逻辑和演绎逻辑的能力。正因为如此,审查技术可以适用于任何软件构件的缺陷去除上面。所以我们应当在整个软件开发生命周期中,都应该使用审查技术。这样才有可能使交付软件的缺陷去除效率能够达到90%以上。

最后,经验数据表明在软件缺陷去除效率的方法上,多数测试方法的效率低于35%,而审查的效率可以超过65%(当审查的范围介于50%到80%),大约是多数测试方法的两倍。

大多数组织都是能够以评审的方式进行需求和设计规范的审查,但有些代码的审查常常会由于资源的关系而没有执行。鉴于审查技术具有超高的缺陷去除效率,所以我们应当注重需求和设计的评审绩效,重视代码审查工作,以追求更高的软件缺陷去除效率。

要提高软件缺陷去除效率,就必须要重视审查技术》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.hashtobe.com/3337.html