您好,欢迎访问三七文档
软件质量保证本章导读质量保证一直是CMMI和ISO9000的中心议题,是微软公司和IBM公司的重点课题,同样也是项目管理的重要内容。通常,人们将“质量标准、配置管理、测试测量”,作为质量管理的三大支柱,而将“SQA计划、SQA进度、SQA评审和审计”,作为质量管理三大要素。本章先论述软件质量保证的基本概念和多种方法,后介绍IT企业软件质量保证文档书写的参考指南。要求具体内容了解1)软件质量及其相关概念的定义2)质量管理与控制的三个层次3)传统软件工程中质量管理的弱点4)同行评审5)软件质量保证管理文档理解1)从四个方面来改进软件质量2)CMM/CMMI改进软件质量的方法3)软件组织内部的“七化原则”和“五报一例制度”关注1)CMM2的“软件质量保证SQA”过程2)《软件质量保证计划》的编写方法14.1软件质量基本概念1.软件质量及相关概念的定义【定义14-1】所谓软件质量,就是供方提供的软件产品满足用户明确和隐含需求的能力特性的总和。【定义14-2】所谓软件产品,就是供方交付给用户使用的一套计算机程序、数据以及相关文档。【定义14-3】所谓供方,就是向用户提供产品的组织。供方有时又称承包方。通过上述定义,知道了软件质量是什么,以及意味着什么。在此之前,可能不知道这么多概念,只知道好的软件的特点是功能强、性能优、易使用、易维护、可移植、可重用。什么样的软件是质量好的软件?事实上,不同的人对软件质量有不同的评价和看法:(1)用户认为,功能、性能、接口满足了需求就是好软件。(2)营销人员认为,客户群大且能卖个好价钱就是好软件。(3)管理者认为,软件开发的进度、成本、质量(功能+性能+接口)在计划的控制范围内就是好软件。(4)开发者认为,易维护、可移植、可重用就是好软件。上述众多观点不无道理,但都是从各自的利益出发的。应当说上述评价和看法的汇总,才是货真价实的好软件。2.质量管理与控制的三个层次(1)事先的预防措施:制订软件过程开发规范和软件产品质量标准,对软件开发和管理人员进行这方面知识和技能的定向培训;(规范是对行为的约束、标准是对产品的约束、规程是对操作的约束)(2)事中的跟踪监控措施:按照CMM/CMMI或ISO9000的过程管理思想,对软件过程和软件产品的质量控制提供可视性管理;(3)事后的纠错措施:对软件工作产品和软件产品加强评审和检测。评审是在宏观上框住您,在微观上挑剔您,找出不符合项。检测是为了发现Bug,改正错误。结论:软件质量保证措施,应以提前预防和实时跟踪为主,以事后测试和纠错为辅。3.传统软件工程中质量管理的弱点在传统《软件工程》中,由于没有完全吸收CMMI和ISO9000的质量管理思想,因而对软件质量的定义是较模糊的,如表14-2所示。按照这些定义,对软件阶段产品和软件最终产品的测试、评审和评价,也是较模糊的。因为它主要不是根据《用户需求报告》中,对“功能、性能、接口”的具体要求,记录并跟踪“不符合项”是否为零,而是考虑“正确性、健壮性、完整性、可用性、可理解性、可移植性、灵活性”等抽象指标,往往使测试人员和评审人员感到有点无所事从。序号质量因素质量因素的定义1正确性系统满足规格说明书和用户目标的程度。2健壮性在意外环境或错误操作下,系统做出适当响应的程度。3完整性对未经授权的人使用系统的企图,系统能够控制的程度。4可用性系统完成预定的功能时,令人满意的程度。5可理解性系统的理解和使用的容易程度。6可维修性诊断和改正发现的错误所需的工作量大小。7灵活性修改或改进系统,需要的工作量多少。8可测试性系统容易测试的程度。9可移植性移植到另一种平台中运行所需资源的多少。10可再用性软件系统的可复用程度。11互运行性与其他系统集成,所需的工作量多少。14.2软件质量保证方法1.从四个方面来改进软件质量(1)力图从编程语言上实现突破。已经从机器语言、汇编语言、面向过程的语言、面向数据的语言,发展到面向对象、面向构架的语言。(2)力图从CASE工具上实现突破。这些工具有:OracleDesigner,PowerDesigner,ERwin,Rose,SanFrancisco,北大青鸟系统,分行业的业务基础平台。(3)力图从软件过程管上实现突破。如CMMI,ISO9000,微软企业文化,IBM企业文化。(4)力图从测试与纠错上实现突破。先后出现了各种测试方法、工具和纠错手段。2.CMM改进软件质量的方法CMM认为:它的18个关键过程域,每一个都跟质量管理有关,质量管理体现在每一个KPA的验证之中。当前,针对软件质量进行保证的问题,最有效的办法还是下面五个方法的汇集:(1)面向CMM2的KPA“软件质量保证”(SQA:SoftwareQualityAssurance)方法。(2)面向CMM3的KPA“同行评审”(PR:PeerReviews)方法。(3)面向CMM4的KPA“软件质量管理”(SQM:SoftwareQualityManagement)方法。(4)面向CMM5的KPA“缺陷预防”(DP:DefectPrevention)方法。(5)软件质量保证的其他措施。3.CMM2的“软件质量保证SQA”过程(1)首先,通过监控软件的开发过程,来保证产品的质量;(2)其次,保证软件产品及软件开发过程,符合相应的标准与规程;(3)最后,保证软件产品、软件过程中存在的不符合项问题得到处理,必要时将问题反映给高级管理者。结合这三项内容,CMM2的软件质量保证手段主要有三项:“审计、评审和处理不符合项”。审计是检查做没做,做了多少,以及按什么标准和规范做的。评审是检查干得好不好,是否还存在不符合项。处理不符合项是跟踪纠错过程,直至改正为止。4.CMM3的软件质量保证手段“同行评审”俗话说,隔行如隔山,所以外行不能参与评审。同行评审是指同行进行软件产品验证的活动,其目的是为了及早和高效地从软件工作产品中识别并消除缺陷。与技术评审不同,同行评审的对象一般是部分软件工作产品,重点是发现软件工作产品中的缺陷。所谓同行,是指和开发者在被评审的软件工作产品上有相同的开发经验和知识的人员。一般来讲,不建议管理者作为同行,参与同行评审,也不应使用同行评审的结果去评价产品开发者的功过是非。有人会说:同行是“冤家”。没关系,因为同行评审是挑剔,是找缺陷,“冤家”更好。5.CMM4的软件质量保证手段“软件质量管理”CMM4的“软件质量管理”目的是:建立对项目的软件产品质量的定量了解,以便实现特定的质量目标,例如在流程、时间、功能、性能、接口、界面上的特定需求目标。为此,要对软件工作产品,实施内容丰富的特定测量计划,进行质量的定量管理。6.CMM5的软件质量保证手段“缺陷预防”CMM5的“缺陷预防”目的是:鉴别缺陷的原因,并防止它们再次发生。具体做法有:建立项目缺陷分析的工程数据库,字段有:“缺陷编号、缺陷名称、缺陷类型、缺陷部位、缺陷原因、影响范围、发生频率、发生时间、所属项目”等。将分析结果,尤其是带普遍价值的过程更改,通知组织中的其他软件项目组。7.CMMI软件质量保证的措施CMMI更关注软件质量管理与控制。在CMMI的24个过程域中,直接与质量管理有关的过程域有9个:(1)需求管理过程域,目的就是管理项目的产品和产品构件的需求,标识需求与项目计划、工作产品之间的不一致性,并解决不一致性问题。(2)度量和分析过程域,目的就是开发和维持用于支持管理信息需要的度量能力。CMMI软件质量保证的措施(续)(3)项目计划过程,包括定义度量和度量的内容。度量就是测量,分析就是统计与决策。(4)过程和产品质量保证过程域,目的就是对过程及相关工作产品进行客观评价,提供给项目成员和管理部门。强调同行评审与审计,交流和解决不一致问题。(5)验证过程域,目的就是保证所选的工作产品符合特定的需求。验证是个增量过程,它从需求验证开始,经历工作产品的验证,直到最后完整产品的验证。(6)确认过程域,目的就是证明工作产品和产品构件,当它们处于其计划的环境中时,能完成其计划的用途。CMMI软件质量保证的措施(续)(7)组织级过程性能过程域,目的就是建立和维护组织标准过程集性能的定量理解,且提供过程性能数据、基线和模型来定量地管理组织的项目。(8)项目定量管理过程域,目的就是定量地管理项目的已定义过程,从而实现项目已建立的质量和过程性能目标。(9)因果分析和解决方案过程域,目的就是识别发生缺陷和其他问题的原因,采取行动来预防其将来再次发生。结论:质量来源于过程,过程需要改进,改进需求量模型,改进是无止境的,这就是CMMI精神!CMMI精神万岁!8.软件质量保证的其他措施除了CMM/CMMI外,为了抓好软件质量管理,软件组织的高层经理和项目经理,还应该大力提倡并严格执行“七化原则”,即在软件质量管理中,管理人员要做到:行为规范化,报告制度化,报表统一化,数据标准化,信息网络化,管理可视化,措施及时化。为了执行好上述“七化原则”,在软件组织内部的各个项目中,还要建立“五报一例制度”:日报表、周报表、月报表、里程碑报表、重大事件报表和例会制度。实行“高层经理抓月报,部门经理抓周报,项目经验抓日报”的上、中、下三层的管理方法。14.3评审在质量保证中的作用从大量的软件实践中得知,正式评审工作被认为是尽早发现软件缺陷,降低软件成本的最有效手段。软件缺陷的发现时间,同缺陷修正的成本呈幂次关系。根据IBM的研究结果,假定在分析阶段发现的错误其改正成本为1个货币单位,那么在测试之前(设计编码阶段)发现一个错误的修改成本约为6.5个货币单位,在测试时(集成测试、系统测试和验收测试)发现一个错误的修改成本约为15个货币单位,而在发布之后(已经交到用户手上)发现一个错误的修改成本约为60~100个货币单位。该比例同样也适用于发现一个错误需要的时间代价。评审在质量保证中的作用01020304050607080分析阶段设计阶段编码阶段测试阶段发布阶段单位缺陷修改成本单位缺陷发现时间正式评审会议的流程1.评审会议的准备涉及的角色有:创建者、评审负责人、检查者。涉及的文档有:评审检查单。(1)创建者负责陈述评审目标;提交工作产品及其规范;与评审负责人一起选择检查者,并分配角色。(2)评审负责人负责计划、安排和组织评审活动,与创建者一起选择检查者。评审负责人应该从创建者处将评审产品的内容准备齐全,并打包发送给检查者。评审负责人还要询问每个检查者的准备时间,确定会议准备是否充分,如果不充分,应重新安排会议时间。(3)检查者:检查工作产品,发现其缺陷,提出问题,并且记录到评审检查单中。正式评审会议的流程(续)2.评审会议的召开涉及的新角色有:阅读人和记录人。创建者、评审负责人、检查者在此阶段,有新的工作任务。涉及的文档有:评审会议记录,记录评审过程中确定的软件缺陷。评审负责人:召开会议,介绍参与者,说明其角色,陈述评审的目标,指导检查者将精力集中于发现缺陷,而不是解决方法。提醒参与者评论要针对正在评审的工作产品,而不是创建者。正式评审会议的流程(续)阅读人:向评审小组展示工作产品的各部分。检查者:提出缺陷、问题、疑问、改进建议。创建者:解答问题,简短回答提出的问题,使检查者进一步了解工作产品,从而帮助发现缺陷。记录人:详细的记录到问题日志上。3.评审会议的跟踪涉及的新角色有:审核者。涉及的文档有:评审会议跟踪表,由审核者跟踪软件缺陷的修复情况,并详细记录到评审会议跟踪表中。审核者:进行跟踪,确定正式评审会议上确定的缺陷都被按照改进意见修改了,填写评审会议确信跟踪表。14.4软件质量保证文档14.4.1质量保证文档14.4.2质量保证管理文档表14-5《软件质量保证计划任务进度表》中的软件工作产品,都是软件质量保证的管理文档。但是,最重要的质量管理文档是:《不符合项跟踪表》、《软件质量保证活动度量表》。《不符合项跟踪表》,是由SQA成员根据评审记录编制的管理文档,它是为了验证被评审的工作产品的符合性(正确性),以达到跟踪其偏差率的目的:(1)当偏差率超过30%时,工作产品要重做;(2)当偏差率超过20%时,
本文标题:软件质量保证
链接地址:https://www.777doc.com/doc-3490697 .html