【摘要】软件质量保证是软件开发的重要内容。软件质量保证复审则是软件质量保证的重要组成。本文就软件质量保证复审系统性和应用性做些探讨。
【关键词】软件质量保证体系;系统性
一、软件质量
软件质量是“与软件产品满足规定和隐含需求的能力有关的全体特征(或特性)”。为满足软件的各项规定的或隐含的功能、性能需求,符合文档化开发标准,就 需要相应地设计出一些质量特性及其组合,质量目标,作为在软件开发与维护中的重要考虑因素。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产 品的质量就是高的。这些被定义出来的特性及其组合就称之为软件“质量目标”。软件质量是各种特性的复杂组合,它随着应用的不同而不同,随着用户提出的量要 求不同而不同。承担保证软件质量的任。包括软件工程师、项目管理者、客户、销售人员和SQA(Software Quality Assurance)小组的人员。
二、软件复审
(1)软件复审:软件复审是软件工程过程中滤除缺陷的“过滤器”。在软件项目开发过程中的多个不同点上,软件复审活动能够起到及早发现错误进而引发排错活动的作用。软件复审目的是尽可能多地发现被复审对象中的缺陷,起到“净化”工作产品作用。由于发现别人生产工作产品中的缺陷比发现自己的缺陷要易,所以复审应在不同的工程师之间进行。任何一次复审都是借助人的差异性达到目标活动,目标包括:①指出一个人或一个小组生产的产品所需进行的改进。②确定被审核产品中不需要或者不希望改进的部分。
(2)软件缺陷对成本的影响:在软件工程活动中,“缺陷”是指在软件交付给最终用户后发现的质量问题;而“错误”描述在软件交付前由软件工程师发现的质 量问题。很明显,缺陷带来的危害远大于“错误”带来的影响。因此,正式技术复审的主要目标就是在复审过程中发现错误,以便潜在的缺陷在交付之前变成“错 误”并得到纠正。正式技术复审的明显优点就是能够较早发现错误,防止错误传播到软件过程的后继阶段。“尽早”发现错误是我们的追求,因为同样的错误对成本 和工期产生的影响与发现错误、改正错误的时间是密切相关的。
(3)缺陷的放大和消除:可以用“缺陷放大模型”来说明及时的复审在软件工 程中的作用。复审过程可能没有完全发现来自此步骤之前的和新发生的所有错误。从而可能在本阶段“继承”了一些错误,并将一部分错误引入下一阶段。其中,一 部分来自前一阶段的错误可能会误导本阶段的工作,导致在错误的基础上产生更多的错误,形成错误的“放大”效应。
三、正式的技术复审
正式技术复审(FTR)是一种由技术工程师进行的软件质量保证活动。FTR的目标是:①在软件的任何一种表示形式中发现功能、逻辑或实现上的错误。②证 实经过复审的软件的确满足需求。③保证软件的表示符合预定义的标准。④得到一种以一致的方式开发的软件。FTR是一类复审方式,包括“走查”、“审查”、 “轮查”以及其他软件小组的技术评估。每次FTR都以会议形式进行,经过适当地计划、控制和相关人员参与,FTR才能获得成功。
(1)复审会议的组织:从保证会议效果出发,不论进行什么形式的FTR活动,会议的规模都不宜过大,控制在3~5人较好;每个参会人员都要提前进行准备,但是复审准备工作占用的工作时间应当少于两小时;会议的时间不宜长,控制在两个小时之内。
FTR的焦点是某个工作产品,比如一部分需求规约,一个模块的详细设计,一个模块的源代码清单等等。负责生产这个产品的人通知“复审责任人”产品已经完 成,需要复审。复审责任人对工作产品的完成情况进行评估,当确认已经具备复审条件后,准备产品副本,发放给预定要参加复审的复审者。当发现错误和问题时, 记录员将逐一进行记录。在复审结束时,必须做出复审结论。结论只能是下列三种之一:①工作产品可以不经修改地被接收。②由于存在严重错误,产品被否决。③ 暂时接收工作产品(发现了轻微错误需要改正,但改正后无需再次评审)。
(2)复审报告和记录保存:在FTR期间,一名复审者(记录员) 主动记录所有被提出来的问题。在会议结束时对这些问题进行小结,并形成一份“复审问题列表”。此外还要形成一份简单的“复审总结报告”。复审总结报告中将 阐明如下问题:复审对象是什么;有哪些人参与复审;发现了什么,结论是什么。复审报告是项目历史记录的一部分,可以分发给项目负责人和其他感兴趣的复审参 与方。复审问题列表有两个作用,首先是标识产品中的问题区域,其次将被用作指导生产者对产品进行改进的“行动条目”。 在复审总结报告中,复审问题列表应当作为附件。
(3)复审指南:不受控制的错误的复审,比没有复审更加糟糕。所以在进行正式的复审之前 必须制定复审指南并分发给所有的复审参加者,得到大家的认可后,才能依照指南进行复审。正式技术复审指南的最小集合如下:①复审对象是产品,而不是产品生 产者。复审会议的气氛应当是轻松的和建设性的,不要试图贬低或者羞辱别人。通常,有管理职权的成员不宜作为复审者参加会议。②制订并严格遵守议程。FTR 会议必须保证按照计划进行,不要离题。③鼓励复审者提出问题,但限制争论和辩驳。有争议的问题记录在案,事后解决。④复审是以“发现问题”为宗旨的。问题 的解决通常由生产者自己或者在别人的帮助下解决。所以不要试图在FTR会议上解决所有问题。
复审是贯穿于整个软件工程始终的保护性活 动。目的是通过对工作过程和阶段工作产品的审查与审核,尽量地预防错误,及早地发现和纠正错误,防患于未然。对生产过程的审核将及时发现和纠正违背已定义 的工程过程规范和组织标准的行为,防止因过程的偏离导致产品中出现错误。复审活动还包括对各类工作产品的复审与检查,以便及早发现和纠正已经发生的错误, 避免错误放大效应的发生。历史缺陷数据的积累、统计和分析有助于开展基于统计规律的SQA任务,能够帮助我们集中力量去解决导致发生错误和缺陷的最重要的 问题,取得事半功倍的效果。通过复审,我们能够基于统计规律,在度量基线的支持下,定量地评述软件的可靠性指标,从而满足用户提出的量化的可靠性性能需 求。