第16章 技术评审技术评审(Technical Review,TR)的目的是尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品的质量技术评审的过程是SPP模型的重要组成局部本标准阐述了技术评审过程域的3个主要规程:☆制定技术评审方案[SPP-PRO-TR-PLANNING]☆正式技术评审[SPP-PROC-TR-FTR]☆非正式技术评审[SPP-PROC-TRITR]上述每个规程的“目标〞、“角色与职责〞、“启动准那么〞、“输入〞、“主要步骤〞、“输出〞、“完成准那么〞和“度量〞均已定义本标准适用于国内IT企业的软件研发工程建议拥护根据自身情况〔如商业目标、研发实力等〕适当地修改本标准,然后推广使用16.1 介 绍技术评审最初是由IBM公司为了提高软件质量和提高程序员生产率而倡导的技术评审方法已经被业界广泛采用并收到了很好的效果,它被普遍认为是软件开放的最正确实践之一技术评审能够在任何开发阶段执行,它可以比测试更早地发现并消除工作成果中的缺陷技术评审的主要好处有:☆ 通过消除工作成果的缺陷而提高产品的质量☆ 越早消除缺陷就越能降低开发本钱☆ 开发人员能够及时地得到同行专家的帮助和指导,无疑会加深对工作成果的理解,更好地预防缺陷,在一定程度上提高了开发生产率。
可见技术评审有助于“提高质量、提高生产率、降低本钱〞,符合软件过程改良的根本目的技术评审有两种类型:☆ 正式技术评审〔FTR〕FTR比拟严格,需要举行评审会议,参加评审会议的人员比拟多☆ 非正式技术评审〔ITR〕ITR的形式比拟灵活,通常在同伴之间展开,不必举行评审会议,评审人员比拟少理论上讲,为了确保产品的质量,产品的所有工作成果都应当接受技术评审现实中,为了节约时间,允许人们有选择地对工作成果进行技术评审技术评审方式也视工作成果的重要性和复杂性而定技术评审过程域有3个主要规程:“制定技术评审方案〞、“正式技术评审〞和“非正式技术评审〞正式技术评审确定技术评审方案非正式技术评审 图16-1:技术评审过程域示意图技术评审的考前须知:☆ 评审人员的职责是发现工作成果中的缺陷,并帮助开发人员给出消除缺陷的方法,而不是替开发人员消除缺陷☆ 技术评审应当“就事论事〞,不要打击有失误的开发人员的工作积极性,更不准搞人身攻击〔如挖苦、挖苦等〕☆ 在会议评审期间要限制过多的争论,以免浪费他人的时间技术评审过程域产生的主要文档有:☆ 整个工程的?技术评审方案?,模板见[SPP-TEMP-TP-PLAN]。
☆ ?技术评审同通知?,模板见[SPP-TEMP-TR-NOTES]☆ ?技术评审报告?,模板见[SPP-TEMP-TR-REPORT]☆ 常用的?技术评审检查表?见[SPP-TEMP-TR-CHECKLIST]16.2 制定技术评审方案16.2.1 目的l 确定需要评审的工作成果、评审方式,预定评审时间、地点以及相关人员16.2.2 角色与职责l 工程的技术负责人〔或技术骨干〕制定?技术评审方案?l 工程经理审批?技术评审方案?16.2.3 启动准那么l ?工程方案?已经制定16.2.4 输入l ?工程方案?16.2.5主要步骤[STEP1]确定需要评审的工作成果l 如果工程的时间充足,为了确保产品的质量,应当对产品的所有工作成果都进行技术评审如果工程的时间不充足,为了节约时间,可以选择一些重要的工作成果进行技术评审[STEP2]确定技术评审方式l 根据工作成果的重要性和复杂性确定技术评审方式将重要性、复杂性各分“高、中、低〞3个等级重要-发杂性组合与技术评审方式的对应关系如表所示表16-1:重要性-复杂性组合与技术评审方式的对应关系重要性-复杂性组合技术评审方式〔FTR,ITR〕高 高FTR高 中FTR高 低FTR 或者ITR均可中 中FTR 或者ITR均可中 低ITR低 低ITR[STEP3]预定评审时间、地点以及相关人员l 根据?工程方案?中的进度表,预定评审时间和地点。
l 根据工作成果的特征预定评审主持人和其他评审员[STEP4]审批方案l 工程经理根据?工程方案?以及现实情况〔如可以支配的人力资源〕,审批?技术评审方案?l 工程的技术负责人〔或技术骨干〕应根据工程经理的批示修正?技术评审方案?16.2.6 输出l ?技术评审方案?16.2.7 结束准那么l ?技术评审方案?已经制定并被工程经理批准16.2.8 度量l 技术负责人〔或技术骨干〕统计工作量和上述文档的规模,汇报给工程经理16.3 正式技术评审16.3.1 目的l 对工作成果进行正式技术评审,尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷16.3.2 角色与职责l 是指待评审的工作成果的开发者,可能是一个人也可能是一个小组作者答复评审员的问题,并与评审员共同查找缺陷、商讨缺陷解决方案评审结束后,作者应当及时消除工作成果中的缺陷l 评审小组☆ 评审主持人应当具备比拟高的技术水平和比拟丰富的评审经验,能够控制评审会议的进程评审主持人可以是工程内的技术骨干,也可以是工程外的技术专家评审主持人本身是一名评审员,评审结论必须有评审主持人的签字才能生效☆ 评审员主要来源于工程内和工程外的技术人员,必要时还应当要求客户和质量保证人员担任评审员。
工作成果的作者不能担任评审员评审员的人选以及分工都由评审主持人来确定评审员应当根据“检查表〞认真地查找工作成果中的缺陷,并和作者共同商讨缺陷解决方案☆ 评审小组的总人数一般在3~7人之间l 记录员:由评审主持人指定一位评审员来担任记录员记录员如实地将评审过程记录在指定的文档中16.3.3 启动准那么l 作者已经按照指定的格式〔如模板〕完成了工作成果,对工作成果进行了内部检查,消除了拼写、排版等初级错误l 根据?技术评审方案?,该工作成果进行非正式技术评审的时间已到16.3.4 输入l 待评审的工作成果l 与该工作成果评审相关的一些材料,如检查表16.3.5 主要步骤正式技术评审的流程如图16-2所示Step3.3审核工作成果Step2. 举行评审会议2.1 主持人宣讲2.2 作者介绍工作成果2.3 识别缺陷和辩论2.4 讨论缺陷解决方案2.5 会议结束决议Step1. 准备评审Step3. 修整跟踪审核Step3.2 递交审核Step3.1 修正与跟踪图16-2:正式技术评审的流程图[Step1]准备评审l 评审主持人首先确定评审会议的时间、地点、设备和参加会议的人员名单〔包括评审员、记录员、作者、旁听者等〕,然后起草?技术评审通知?,并告知所以相关人员。
l 评审主持人把工作成果及相关材料、技术评审议程、检查表等发给评审员l 评审员阅读〔了解〕工作成果及相关材料[Step2]举行评审会议l [Step2.1]主持人宣讲☆ 主持人宣讲本次评审会议的议程、重点、原那么、时间限制等l [Step2.2]作者介绍工作成果☆ 作者扼要地介绍工作成果l [Step2.3]识别缺陷和辩论☆ 评审员根据“检查表〞认真查找工作成果的缺陷☆ 作者答复评审员的问题,双方要对每个缺陷达成共识〔防止误解〕l [Step2.4]讨论缺陷解决方案☆ 作者和评审员共同讨论缺陷的解决方案☆ 对于当场难以解决的问题,由主持人决定“是否有必要继续讨论〞或者“另定时间再讨论〞l [Step2.5]会议结束决议◇ 评审小组给出评审和意见,主持人签字后,本次会议结束评审结论有3种:☆ 工作成果合格,“无须修改〞或者“需要轻微修改但不必再审核〞☆ 工作成果根本合格,需要做少量的修改,之后通过审核即可☆ 工作成果不合格,需要做比拟大的修改,之后必须重新对其审核[Step3]修正跟踪与审核l [Step3.1]修正与跟踪☆ 作者修正工作成果,消除已发现的缺陷☆ 评审主持人〔或者指定审核员〕跟踪每个缺陷的状态。
l [Step3.2]提交审核☆作者消除所以已发现的缺陷后,再将修改后的工作成果递交给评审主持人〔或者指定审核员—〕审核l [Step3.3]审核工作成果◇评审主持人〔或者指定审核员〕审核修正后的工作成果审核结论有两种:☆ 修改后的工作成果合格☆ 修正后的工作成果仍然不合格,需重新修改,重复[Step3]16.3.6 输出l 该工作成果的?技术评审报告?l 根据评审报告修改后的工作成果16.3.7 结束准那么l 工作成果中所有已识别的缺陷都已经被消除16.3.8 度量l 评审主持人统计工作量和上述文档的规模,汇报给工程经理16.4 非正式技术评审16.4.1 目的l 对工作成果进行快速、灵活地评审,及早地识别和消除工作成果中存在的缺陷16.4.2 角色与职责l 是指待评审的工作成果的开发者,可能是一个人也可能是一个小组作者答复评审员的问题,并与评审员共同查找缺陷、商讨缺陷解决方案评审结束后,作者应当及时消除工作成果中的缺陷l 评审员:由作者的同伴或者同行专家担任评审员,通常一两个人即可评审员应当根据“检查表〞认真地查找工作成果中的缺陷,并和作者共同商讨缺陷解决方案由于参加非正式评审的人员比拟少,由评审员兼做记录员即可。
16.4.3 启动准那么l 作者已经按照指定的格式〔如模板〕完成了工作成果,对工作成果进行了内部检查,消除了拼写、排版等初级错误l 根据?技术评审方案?,该工作成果进行非正式技术评审的时间已到16.4.4 输入l 待评审的工作成果l 与该工作成果评审相关的一些材料,如检查表16.4.5 主要步骤[Step1]准备审核l 评审员与作者共同确定评审的时间、地点、设备、人员等起草并将?技术评审通知?发布给相关人员l 评审员阅读〔了解〕工作成果及相关材料、评审规程、检查表等[Step2]评审l [Step2.1]介绍◇ 评审员介绍本次评审的议程、重点、原那么、时间限制等◇ 作者扼要地介绍工作成果l [Step2.2]识别缺陷和问答◇ 审核员根据“检查表〞认真查找工作成果的缺陷◇ 作者答复评审员的问题,双方要对每个缺陷达成共识〔防止误解〕l [Step2.3]讨论缺陷解决方案◇ 作者和评审员共同讨论缺陷的解决方案◇ 对于当场难以解决的问题,由双方商定“是否有必要继续讨论〞或者“另定时间再讨论〞l [Step2.4]给出评审结论◇ 评审员给出评审结论和意见评审结论有3种:☆ 工作成果合格,“无须修改〞或者“需要轻微修改但不必再审核〞。
☆ 工作成果根本合格,需要做少量的修改,之后通过审核即可☆ 工作成果不合格,需要做比拟大的修改,之后必须重新对其审核[Step3]修正、跟踪与审核l 。