软件测试评审

软件测试评审,评审是静态测试技术的重要组成部分,是在动态测试之前对软件产品(包括代码)进行测试的一种方式。评审通常是通过深入阅读和理解被检查文档的方式完成的。

评审包括管理评审、审查、技术评审、走查和非正式评审等不同评审技术,根据IEEE Std 1028-2008的定义,评审的通用过程由如下6个阶段组成。
(1)计划阶段:选择评审员并分配角色、为正式的评审类型(如审查)规定评审的入口和出口准则,以及选择需要评审的文档或文档章节等。
(2)预备会阶段:分发文档,向评审参与者解释本次评审的目标、过程和文档,以及核对入口准则(针对正式的评审类型)。
(3)个人准备阶段:在评审会议之前每位评审参与者准备各自的评审工作,标注评审对象中可能的缺陷、问题和建议等。
(4)评审会议阶段:讨论评审员提交的问题列表,并形成会议纪要(针对正式的评审类型)。会议参与者可以标识缺陷并提出处理建议。
(5)返工阶段:修复评审过程中发现的缺陷,通常由作者完成。
(6)跟踪结果阶段:检查缺陷是否已经解决,收集度量数据并评估出口准则(针对正式的评审类型)。

评审过程中需要不同角色人员的参与,他们在评审过程中的职责和作用不同。评审中涉及的主要角色包括经理、主持人或组长、作者、评审员和记录员,其他可能涉及包括决策者或者其他利益相关者,如用户代表;另外一个可选的角色有时会出现在审查中,即宣读员,在评审会议中宣读产品的某些部分。

针对某个软件产品,可以采用多种评审类型。例如,首先进行技术评审,决定在接下来的迭代开发中实现哪些功能;而对于其中所包含的具体功能,也许需要针对规格说明进行审查。

在软件开发生命周期早期,通过评审发现软件产品中的缺陷,其修复缺陷的成本会比在动态测试中发现此类缺陷修复成本低得多(如由于需求不正确引起的缺陷)。评审的优点主要体现在以下几个方面。

(1)提高质量。评审和动态测试都有共同的目标:发现缺陷,但它们在发现缺陷的方式和手段上有各自不同的优缺点。因此,在实际的测试过程中,需要将这两种手段结合起来,进行优势互补,从而更加有效的提高产品的质量。
评审相对可以比较容易实现较高的覆盖率。根据笔者在实际项目中的经验,评审可以发现产品中70%-80%的缺陷;动态测试则很难达到50%。下图所示为一个评审和动态测试在发现缺陷有效性方面的例子。在该例中,原来只进行单元测试和系统测试(图的左边),而现在在单元测试和系统测试之前引入了文档评审和代码评审(图的右边)。图中的数据说明评审和动态测试相结合之后(假设评审和动态测试发现缺陷的有效性都是50%)可以提高产品质量,即通过引入评审,可以提高缺陷发现率,从而提高产品质量。
软件测试评审

从图中可以看出,评审的引入可以大大提高产品质量,即整个测试过程的缺陷发现率从原来的75%(150/200 = 75%)提高到93.5%(187/200 = 93.5%)。但是引入评审提高产品的质量是以增加项目成本和时间作为代价的。因此在实际的项目测试过程中,需要平衡产品质量、进度和成本之间的关系,以实现项目的总体目标。
(2)提高有效性。测试人员尽早介入项目是有效测试的基本原则之一,这样可以尽早参与发现软件产品中的缺陷,从而节省时间和降低成本,因为在项目的早期发现缺陷可以大大减少缺陷修复的时间和成本。
评审可以降低测试和开发的成本,因为在项目的早期发现和修复缺陷的成本比在动态测试执行阶段发现和修复缺陷的成本小得多;同时有效的评审可以减少动态测试执行的时间。表所示为统计得到的在不同阶段修复缺陷的成本。
软件测试评审

(3)可预测性。动态测试是整个测试过程中最难预测和最难管理的活动之一,其原因主要表现为如下方面。

  • 缺陷数目、缺陷修复时间及缺陷相关信息的随机性和不确定性导致计划和分配测试资源非常困难。
  • 动态测试过程中发现的缺陷数目越多,测试就越难于管理。因此动态测试活动发现缺陷数目的减少可以减轻测试的不可预测性,从而提高整体项目的预测性。
    早期开展的评审活动一方面可以尽早发现和修复软件产品中的缺陷,减少遗留到后续阶段的缺陷数目;另一方面也可以根据评审活动中发现的缺陷数目和类型分布等数据评估测试对象的质量和缺陷分布,从而减轻动态测试活动的不可控性和不可预测性。
    (4)培训目的。通过有效的评审,评审团队成员之间,包括作者和评审人员之间都相当于参加了一次培训,有助于在将来的项目中产生更好质量的文档。有效的文档评审过程也是一次相互学习的过程,因为评审过程、规则和实践等在评审团队成员之间进行了共享;同时通过评审成员之间的分析和讨论,项目技术相关的知识和技能也可以在团队之中传播。
    (5)缺陷预防。评审的重要目的之一是尽早发现软件产品中的缺陷,为将来的项目改进提供数据和经验,不断地改进开发过程、测试过程和评审过程等,在将来的项目中达到缺陷预防的目的。例如,通过评审过程中学习到的知识技能和经验可以改进评审相关的检查表。

酷客教程相关文章:

赞(0)

评论 抢沙发

评论前必须登录!