评审可以从非正式到正式。非正式评审的特点是不遵循规定的过程,没有正式的文档化输出。正式评审的特点包括团队参与、文档化评审结果以及文档化开展评审的规程。评审过程的正式程度与下列因素有关:软件开发生命周期模型、开发过程的成熟度、被评审工作产品的复杂性、法律或监管要求以及/或审计要求。
评审的关注点依赖于评审的目标(例如:例如:发现缺陷、获得理解、培训测试人员和新的团队成员等参与者,或讨论并达成一致)。
ISO标准(ISO/IEC 20246)包含了对工作产品评审过程的更深入的描述,包括角色和评审技术。
3.2.1 工作产品评审过程
评审过程由以下主要活动组成:
计划
•定义范围,包括评审的目的、评审的文件或文件的组成部分以及应评估的质量特性
•估算工作量和时间
•识别评审特点,如基于角色、活动和检查列表的评审类型
•选择参与评审的人并分配角色
•为更正式的评审类型(例如审查)确定入口和出口准则
•检查是否符合入口准则(针对更正式的评审类型)
启动评审
•分发工作产品(实物或电子方式)和其他材料,如问题记录表、检查列表和相关工作产品
•向参与者解释范围、目标、过程、角色和工作产品
•回答与会者可能对评审提出的任何问题
个人评审(即个人准备)
•评审全部或部分工作产品
•记录潜在的缺陷、建议和问题
问题交流和分析
•交流已识别的潜在缺陷(例如在审查会议上)
•分析潜在的缺陷,并为其指定责任人和状态
•评估和文档化质量特性
•根据出口准则评估评审结果并作出评审决定(拒绝;需作出重大变更;接受,可能的话稍作变更)
修改和报告
•为需要变更的发现创建缺陷报告
•修复在被评审工作产品中发现的缺陷(通常由作者完成)
•与合适的人员或团队沟通缺陷(在与被评审的工作产品有关的工作产品中发现缺陷时)
•记录缺陷的最新状态(在正式评审中),通常需要缺陷发现者的同意
•收集度量数据(用于更正式的评审类型)
•检查是否符合出口准则(针对更正式的评审类型)
•当满足出口准则时接受工作产品
如第3.2.3节所述,工作产品的评审结果因评审类型和正式程度不同而有所不同。
3.2.2 正式评审的角色与职责
典型的正式评审包括以下角色:
作者
•创建需要被评审的工作产品
•修复在被评审工作产品中的缺陷(如有必要)
管理者
•负责计划评审
•决定评审的执行
•分配人员、预算和时间
•监视持续的成本效益
•在结果不充分的情况下执行控制决定
协调员(常称为主持人)
•确保评审会议(当举行时)的有效开展
•必要时在各种观点之间进行协调
•常常是评审成功的关键人物
评审组长
•全面负责评审
•决定谁将参与评审,以及何时何地进行评审
评审人员
•可以是专题专家、项目工作人员、对工作产品感兴趣的利益相关者和/或具有特定技术或业务背景的个人
•识别被评审工作产品中的潜在缺陷
•可以代表不同的观点(例如:测试人员、程序员、用户、操作人员、业务分析员、易用性专家等)
抄写员(或记录员)
•收集个人评审活动中发现的潜在缺陷
•记录新的潜在缺陷、未解决的问题和评审会议决定(当举行时)
•有些评审类型中,一人可以扮演多个角色,与每个角色相关的活动也会因评审类型不同而有所不同。此外,随着支持评审过程的工具的出现,特别是针对记录缺陷、未解决的问题和决策,往往不需要记录员。
此外,如ISO标准(ISO/IEC 20246)描述,还可能存在更细分的角色。更详细的角色是可能的。
3.2.3 评审类型
虽然评审可以用于各种目的,但发现缺陷是其主要目的之一。所有评审类型都可以检测缺陷,评审类型的选择应基于项目需求、可用资源、产品类型和风险、业务领域和公司文化等。
评审可以根据不同的特点进行分类。下面列出四种最常见的评论类型及其相关特点。
非正式评审(例如:例如:互相检查、结对、结对评审)
•主要目的:发现潜在的缺陷
•可能的其他目的:产生新的想法或解决办法,迅速解决小问题
•不依赖于正式的(文档化的)过程
•可能没有评审会议
•可由作者的同事(伙伴检查)或更多人执行
•结果可记录在案
•根据评审人员的不同,其有效性各不相同
•检查表的使用是可选的
•在敏捷开发中经常使用
走查
•主要目的:发现缺陷、改进软件产品、考虑替代实现、评估是否符合标准和规范
•可能的其他目的:针对技术或风格变化交换意见、培训参加者和达成共识
•评审会议之前的个人准备是可选的
•评审会议通常由工作产品的作者主持
•记录员是必需的
•检查表的使用是可选的
•可能采取情景、预演或模拟的形式
•可能生成缺陷记录和评审报告
•实践中可以从非常不正式到非常正式
技术审查
•主要目的:取得共识,发现潜在的缺陷
•可能的其他目的:评价工作产品质量和建立信心、提出新的想法、激励作者并使其能够改进未来的工作产品、考虑其他实现办法
•审评人员应当是作者的技术同行,以及同一学科或其他学科的技术专家
•评审会议之前的个人准备是必需的
•评审会议是可选的,最好由受过培训的主持人(通常不是作者)主持
•记录员是必需的,最好不是作者
•检查表的使用是可选的
•通常会生成潜在的缺陷记录和评审报告
审查
•主要目的:发现潜在的缺陷、评价工作产品质量和建立信心、通过作者学习和根本原因分析防止今后出现类似的缺陷
•可能的其他目的:激励作者并使其能够改进未来的工作产品和软件开发过程、达成共识
•基于规则和检查表,遵循有正式文档化输出的已定义过程
•使用明确定义的角色,如第3.2.2节规定的强制性角色,并可包括专门的朗读者(在评审会议期间大声朗读工作产品)
•评审会议之前的个人准备是必需的
•审评人员可以是作者的同行,或者与工作产品相关的其他学科的专家
•使用已定义的入口和出口准则
•记录员是必需的
•评审会议由受过训练的主持人(不是作者)主持
•作者不能担任评审负责人、朗读者或记录员
•生成可能的缺陷记录和评审报告
•收集和使用度量数据,以改进整个软件开发过程,包括评审过程
单个工作产品可以使用多种评审类型是多个评审类型的主题。如果使用一种以上的评审类型,其顺序可以是不同的。例如,例如:可在技术评审之前进行非正式评审,以确保工作产品已准备好进行技术评审。
上面描述的评审类型可以看做是同行评审,即由类似组织级别的同事进行。
评审中发现的缺陷类型各不相同,特别取决于被评审的工作产品。关于不同工作产品评审中可以发现的缺陷的例子,见第3.1.3节,关于正式审查的资料,参考Gilb 1993。
3.2.4 应用评审技术
个人评审(即个人准备)活动中可以应用各种评审技术以发现缺陷。这些技术可以贯穿使用于上述评审类型。技术的有效性会随着使用的评审类型不同而不同。下文列举了针对各种评审类型的不同个人评审技术的例子。
临时(Ad hoc)
临时评审过程中,评审人员很少或根本得不到关于应如何执行这项任务的指导。评审人员经常按顺序阅读工作产品,在遇到问题时对其进行识别和记录。临时评审是一种需要很少准备的常用技术。这种技术高度依赖于评审技人员的技能,并可能导致不同的评审人员报告许多重复的问题。
基于检查表
基于检查表的评审是一种系统化的技术,评审人员根据在评审开始时分发的检查表(例如由主持人)来发现问题。评审检查表由一系列基于潜在缺陷的问题组成,这些问题可以来自于经验。检查表应适合所评审的工作产品类型,并应定期予以维护,以覆盖以往评审中遗漏的问题类型。基于检查表的技术的主要优点是对典型缺陷类型的系统化覆盖。需要注意的是,在个人评审中不应简单地遵循检查表,还应注意检查表之外的缺陷。
情景和预演
基于场景的评审中,向评审人员提供了关于如何通读工作产品的结构化指南。基于场景的方法支持审评人员根据工作产品的预期使用情况对工作产品进行“预演”(如果工作产品以用例等适当格式记录)。与简单的检查表条目相比,这些场景为评审人员提供了更好的指南,有助于识别特定的缺陷类型。与基于检查表的评审一样,为了不遗漏其他缺陷类型(例如缺少功能),评审人员不应受限于文档化的场景。
基于角色
基于角色的评审是评审人员从单个利益相关者的角度来评估工作产品的一种技术。典型的角色包括特定的最终用户类型(有经验、无经验、资深、儿童等),以及组织中的特定角色(用户管理员、系统管理员、性能测试人员等)。
基于视角
基于视角的阅读与基于角色的评审类似,评审人员在个人评审过程中扮演不同利益相关者的视角。典型的利益相关者视角包括最终用户、市场人员、设计师、测试人员或操作人员。使用不同的利益相关者视角可以使个人评审更有深度,减少评审人员之间问题的重复。
此外,基于视角的阅读还要求评审人员尝试使用被评审的工作产品来生成他们将从中获得的产品。例如:如果测试人员对需求规格说明进行基于视角的阅读,以了解其中是否包含了所有必要的信息,则测试人员将试图生成初步的验收测试。此外,基于视角的阅读也建议使用检查表。
研究表明,基于视角的阅读是评审需求规格说明和技术工作产品的最有效的通用技术。根据风险适当纳入和权衡不同的利益相关者的视角是关键成功因素之一。关于基于视角的阅读的详细信息,请参见Shul 2000,关于不同评审类型的有效性,请参见Sauer 2000。
3.2.5 评审的成功因素
为了成功地进行评审,必须考虑适当的评审类型和使用的技术。此外,还有一些其他因素将影响评审的结果。
与组织相关的评审成功因素包括:
•每次评审都有明确的目标,评审计划期间定义并使用可度量的出口准则
•采用与目标相一致的评审类型,并适合软件工作产品和参与者的类型和水平
•所使用的任何评审技术,如基于检查表的或基于角色的评审,都适合在被评审工作产品中进行有效的缺陷识别
•使用的任何检查表都涉及主要风险,并与时俱进
•庞大的文件被分成小块进行编写和评审,以便通过向作者提供关于缺陷的早期和频繁的反馈来进行质量控制
•参加者有足够的时间准备
•充分重视的情况下安排评审
•管理层支持评审过程(例如在项目时间进度表中为评审活动留出足够的时间)
与人相关的评审成功因素包括:
•选择合适的人员参与评审以实现目标,例如具有不同技能或视角的人员,被评审的文档文档将作为他们工作的输入
•测试员被视为有价值的评审人员,他们为评审做出贡献,并学习工作产品,从而使他们能够更有效并更早的准备测试
•参与者投入足够的时间和精力研究细节
•评审分小块进行,以便评审人员在个人评审和/或审查会议(当举行时)期间能集中注意力
•发现的缺陷得到认可、赞赏和客观处理
•会议管理良好,与会者认为这是有价值的使用他们的时间
•评审应该在相互信任的气氛中进行;评审结果将不用于评价参与者
•参与者避免一些肢体语言和行为,这些语言和行为可能表明他们对其他参与者感到厌烦、恼怒或敌意
•提供充分的培训,特别是为审查等更正式的评审类型提供培训
•鼓励学习和过程改进文化
参考Gilb 1993、Wiegers 2002和Veenendaal 2004以获取更多关于成功评审的信息。

10-07 13:03