缺陷管理方法

转载 2006年06月22日 14:17:00

        缺陷管理方法从管理时机的角度可以分为缺陷预防和缺陷排除。缺陷预防通过使用形式化方法、复用、模式或者良好的编程方法等来达到缺陷管理的目的。而对既有缺陷的管理则主要采用下面两组方法来进行:直接缺陷标识方法和失效检测及根本原因分析方法。

1、缺陷标识方法
        这类缺陷管理方法通常可以称为静态验证、同级评审或者软件分析。这些方法是以对产品(例如源代码)的直接的、静态的、详细的研究为基础而不是对软件性能进行研究以期望标识失效(如测试)。静态验证可以应用到所有软件过程产品中,这使得我们可以在早期检测和排除缺陷(如设计审查)。

        一般来说,缺陷标识方法中的术语很容易让人产生混淆,这是因为方法的名字通常不能正确或充分地描述给定的方法、同样的术语可以指多种不同的方法、同样的方法可能有多个不同的名字。为此,这里讨论IEEE标准1028~1988提出的定义,在该定义中,对缺陷管理方法的分类是根据每种方法的意图或主要目标而进行的。这种分类方法的主要目标是:评估、培训及可选项的检查和缺陷标识。这种分类方法不仅可以为交流奠定基础,同时也有助于比较这种分类中的不同方法。

1)        评估

         许多静态方法的主要目的是评估项目进展、资源分配、技术充分性以及是否与规约一致。这种方法称为评审(review)。在这种分类中IEEE 1028描述的方法包括技术评审和管理评审。技术评审的目的是评估规约与项目计划的一致性,以确保变更过程的完整性。管理评审并不是将检测和排除缺陷作为主要目标,而是为了确定项目进展在项目级别上引入纠正措施以及确保资源的适当分配。因为没有明确规定评审小组的成员数目,也没有精确定义过程、过程目标及其交付的产品,因此很难测量评审技术的功效。

2)        培训以及可选方案选择

        走查就属于这种类型。走查(walk-through)是产品创造者领导的、由人数不多的统计小组对产品进行的一种半形式化评审。这种评审试图满足不同的目标,包括参与者培训、可选方案选择、可阅读性及模块问题检查、缺陷标识。走查被认为是一种有效的方法,这是因为:能够在相对短的时间内对大量的产品进行评估;走查小组成员不需要经过太多的特定的培训;假如走查小组不需要消耗很多时间和精力;此外,需要满足的目标多种多样、通常缺乏形式化的过程模型、数据收集需求的缺乏或者变更合作也使得走查成为一种有用的方法。但是相对于审查来说,有效性欠佳。

3)        缺陷标识

        许多方法将缺陷标识作为其主要目标。这些方法被称为审查(inspection)。关于审查方法有很多的介绍,基本都是Fagan1976年首先提出来的审查过程的变形。由于缺陷管理中的审查具有相当的重要性,在这里建议采用的是Strauss和Ebenau风格的审查,即过程内审查。过程内审查的基本原理与Fagan最初提出的原理相同,但是角度有所改进,因为过程内审查是用来提升更广范围内的诸如硬件、文档、课件等产品的质量的。这种方法强调如下几个方面:开发过程中审查的早期应用、应用到更广范围的产品上、能够定制以满足特定项目环境和特定产品类型。

    应用到软件中的审查是目前仅次于单元测试的最流行的缺陷管理方法,是静态缺陷标识的主要方法。所有关于审查的经验都是正面的。使用审查方法的一些最重要的、间接的好处在于获得了缺陷管理以及质量数据,增加了在最终期限之前完成任务的可能性,组织改进了,人员的士气也得到了提升。

2、面向失效检测的缺陷排除
        失效检测是一种运用软件环境的活动,旨在标识失效、指出结果与预期的偏离。这种方法可分解为三种不同的活动:失效检测、根本原因分析和根本原因缺陷排除。

        失效检测从缺陷排除的意义上来说,是一种与传统测试最接近的活动。尽管有一定的差异,但是这两种术语之间的差别不大,有时可以进行互换。

        根本原因分析是一种利用失效检测或其他常用方法,对环境中显现出来的缺陷或者一系列缺陷(失效)进行跟踪以检测到导致这些失效的源代码中的缺陷的活动。这是一项非常耗时的任务。

        根本原因缺陷排除是通过前面两种活动改正源代码中已经标识的缺陷的活动。后面两种活动合起来通常称为调试(debugging)。

3、审查与测试的比较
        审查和测试并不是可相互替代的方法,这两种方法都有其长处,是管理特定种类的缺陷的最好选择,如格式上的缺陷可以通过审查来发现,集成故障则最好通过测试来定位。同时,测试用例及测试文档可能是带有缺陷的,通过审查可以改善这种情况。

        审查可以在早期进行应用,可以应用到生命周期早期的制品中,而测试只能在执行完整的代码时应用。这使得审查比测试具有更大的功效。这是因为,从根本上说,用一种方法发现的所有缺陷的比例以及能够使用这种方法的阶段是这种方法功效的决定因素。另外,从发现的缺陷百分率以及标识和排除缺陷所需要的时间这样的度量来看,审查总是优于测试的。可以说,至少在通常情况下,审查方法与测试相比,是一种非常有效的缺陷管理方法。尽管如此,也很难从单位时间内能够排除的缺陷的情况来获得确定的审查功效的预测模型。

相关文章推荐

软件开发缺陷管理方法

  • 2014-10-02 11:40
  • 50KB
  • 下载

信息时代的阅读管理方法

在前文的基础上,本文我将和大家分享信息时代一种可行的阅读管理方法,分析阅读与个人心智成长的关系,也欢迎大家在左岸读书黄楠文集专栏交流探讨和分享自己的阅读管理方式。 一、心智的成长与阅读 个人的心智...

Spring声明式事务配置管理方法

Spring声明式事务配置管理方法

Spring声明式事务配置管理方法

转自:http://blog.csdn.net/wwww1988600/article/details/7236841 事务配置 首先在/WEB-INF/applicationCont...

通用管理方法

  • 2012-09-20 17:08
  • 620KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)