《软件质量测试第七章软件质量和质量保证.pptx》由会员分享,可在线阅读,更多相关《软件质量测试第七章软件质量和质量保证.pptx(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第七章软件质量和质量保证沈阳师范大学软件学院1软件工程系孟磊本章内容7.1软件质量7.2软件度量7.3软件能力成熟度模型 7.4软件质量保证沈阳师范大学软件学院2本节内容7.1软件质量7.1.1软件质量的含义7.1.2软件质量模型沈阳师范大学软件学院37.1.1软件质量的含义7.1.1软件质量的含义首先来看一些关于质量的定义。n1990年,Juran和Gryna把质量定义为“适于使用”。n1999年,Crosby将质量定义为“符合需求”。n在GB/T 6583-ISO 8404(1994版)中,将质量定义为“反映实体满足明确和隐含需要的能力的特性的总和”,这里的实体是“可以单独描述和研究的事
2、物”,如产品、活动、过程、组织的体系等。n在ISO 9000:2000中,将质量定义为“一组固有特性满足要求的程度”。至于软件质量,很容易从上述质量的定义中作扩展。IEEE对软件质量的定义如下。软件质量是:n系统、部件或过程满足顾客或者用户需要或期望的程度。n系统、部件或过程满足规定需求的程度。 沈阳师范大学软件学院47.1.2软件质量模型7.1.2软件质量模型为了避免软件质量评价的盲目性,需要制定软件质量模型,从多方面、客观地、定量地对软件质量进行度量和评价。比较常见的三个软件质量模型是McCall模型、Boehm模型和ISO9126。沈阳师范大学软件学院57.1.2软件质量模型7.1.2软
3、件质量模型McCall模型是McCall和他同事在1999年提出的,如图所示。沈阳师范大学软件学院6McCall质量模型将软件质量分为3个重要的方面:l操作特性(产品运行)l承受可改变能力(产品修订)l新环境适应能力(产品变迁) 图 McCall质量模型7.1.2软件质量模型7.1.2软件质量模型沈阳师范大学软件学院7Boehm模型是Boehm和他的同事在1778年提出的,如图10-2所示。Boehm质量模型是一个分层的模型,除了包含用户的期望和需要,它还包含了McCall模型所没有的硬件质量特性。Boehm质量模型关注不同类型的用户需要。第一类用户是初始用户,第二类用户是要将软件移植到其他软
4、硬件系统中使用的用户,第三类用户是系统维护人员。也可以说,Boehm质量模型反映了不同类型的用户对软件质量的理解。 图 Boehm质量模型 7.1.2软件质量模型7.1.2软件质量模型沈阳师范大学软件学院81991年,ISO颁布了ISO 9126-1991标准软件产品评价质量特性及其使用指南。我国也于1996年颁布了同样的软件产品质量评价标准GB/T 16260-1996。ISO 9126模型如图10-3所示。ISO 9126模型定义了6个影响软件质量的质量特性,而每个质量特性又可通过若干子特性来测量,每个子特性在评价时要进行定义并实施若干度量。ISO 9126质量模型使得软件最大限度地满足用
5、户的明确的和潜在的需求,且从用户、开发人员、管理者等各类人员的角度全方位地考虑软件质量。 图 ISO 7126质量模型本节内容7.2软件度量7.2.1软件度量概述7.2.2软件度量的目标7.2.3软件度量的三个方面沈阳师范大学软件学院97.2.1软件度量概述7.2.1.1软件度量的含义n度量是指在现实的世界中把数字或符号指定给实体的某一属性,以便以这种方式来根据已明确的规则来描述它们。 n度量关注的是获取关于实体属性的信息。n那么什么是软件度量呢?软件度量(Software Measurement)是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性量化过程,目的在于对项目质量、过
6、程质量及产品质量进行理解、预测、评估、控制和改善。 沈阳师范大学软件学院107.2.1软件度量概述7.2.1.2软件度量的意义n在软件开发中,软件度量的根本目的是为了软件管理的需要,利用度量来改进软件过程,以提高软件开发效率和软件质量。n通过软件度量,使人们能够可预测、可重复、准确地控制软件开发过程和软件产品。n度量使得对软件质量的评价从定性走向了定量,避免了软件质量评价的模糊性。沈阳师范大学软件学院117.2.1软件度量概述7.2.1.3软件度量的现状 在软件界,软件度量目前的情况并不尽如人意,如下一些现象是时常存在的。n设计和开发软件产品的时候,并未制定出度量的目标。n未能对构成软件项目实
7、际费用的各个不同部分进行有效的度量。n由于缺乏清晰的度量目标,使得开发人员不能使开发的产品质量的各方面特性都合格,因此不能使用术语向潜在的用户说明软件产品具有很高的质量。n由于缺乏对软件的度量,看不到清晰的实效,因而人们对所使用的软件开发技术没有足够的信心。 沈阳师范大学软件学院127.2.3软件度量的三个方面7.2.3.1软件度量的三个方面 软件度量贯穿于软件开发的整个生命周期。软件度量包括3个方面:n项目度量n产品度量n过程度量沈阳师范大学软件学院137.2.3软件度量的三个方面7.2.3.1具体情况如表所示 沈阳师范大学软件学院14实训一:软件质量保证计划沈阳师范大学软件学院15本节内容
8、7.3软件能力成熟度模型7.3.1软件能力成熟度模型概述7.3.2软件能力成熟度模型的建立和评估沈阳师范大学软件学院167.3.1软件能力成熟度模型概述7.3.1.1起源 卡内基 梅隆大学软件工程研究所CMU/SEI(Carnegie Mellon University/ Software Engineering Institute )于1989年研究发布了软件过程成熟度框架,并提供了软件过程评估和软件能力评价两种评估方法和软件成熟度模型。4年之后,SEI将软件过程成熟度框架进化为软件能力成熟度模型(the Capability Maturity Model For Software,简称SW
9、-CMM),并发布了最早的SW-CMM 1.0版。经过两年的试用,1993年SEI正式发布了SW-CMM1.1SW-CMM1.1版,这是目前使用最为广泛的版本。沈阳师范大学软件学院177.3.1软件能力成熟度模型概述7.3.1.2软件能力成熟度模型中的重要概念n过程过程(Process):CMM中引用了IEEE对过程的定义,即过程是“为达到目的而执行的所有步骤的系列”。n软件过程软件过程(Software Process):人们用于开发和维护软件及其相关产品的一系列活动、方法、实践和革新。软件和其相关产品是指项目计划、需求文档、设计文档、代码、测试用例、用户手册等。n软件过程能力软件过程能力(
10、Software Process Capability):在遵循一个软件过程后能得到的预期结果的范围。它可用来预测一个机构在承接一个软件项目后,所能得到的最可能的结果。n软件过程性能软件过程性能(Software Process Performance):在遵循一个软件过程后所得到的实际结果。n软件过程成熟度软件过程成熟度(Software Process Maturity):一个具体的软件过程被明确定义、管理、评价、控制和产生实效的程度。所谓成熟度,包含着能力的一种增长潜力,同时也表明了软件机构实施软件过程的实际水平。沈阳师范大学软件学院187.3.1软件能力成熟度模型概述7.3.1.3软件
11、能力成熟度模型的作用企业实施CMM模型可为企业带来如下好处:n指导软件机构提高软件开发管理能力。n降低软件承包商和采购者的风险。n评估软件承包商的软件开发管理能力。n帮助软件企业识别开发和维护软件的有效过程和关键实践。n帮助软件企业识别为达到CMM更高成熟等级所必须的关键实践。n增加软件企业的国际竞争能力。沈阳师范大学软件学院197.3.1软件能力成熟度模型概述7.3.1.4软件能力成熟度模型的5个等级CMM将软件过程的成熟度分为5个等级,如图所示沈阳师范大学软件学院207.3.1软件能力成熟度模型概述7.3.1.4软件能力成熟度模型的5个等级 在 CMM中,等级越高,软件开发生产精度则越高,
12、每单位工程的生产周期也越短。 在CMM的5个等级中,除了初始级,其他4个等级均有若干个指导软件机构改进软件过程的要点,称为关键过程域关键过程域(Key Process Area,简称KPA)。 所谓关键过程域是指一系列相互关联的操作活动,这些活动反映了一个软件机构改进过程时必须集中精力改进的几个方面。只有一个软件机构的所有项目都达到某个关键过程域的目标,该软件机构的以该关键过程域为特征的过程能力才是规范化了的。 沈阳师范大学软件学院217.3.1软件能力成熟度模型概述7.3.1.4软件能力成熟度模型的5个等级在 CMM 中一共有 18 个关键过程域,分布在 25 级中。任何一个成熟度级别的关键
13、过程域集都是本级描述的关键过程域集和所有下级的关键过程域集的并集。如第3级的关键过程域就应有13个不同的域,其中7个是第3级自己包含的,6个属于第2级,而第4级应有15个域。沈阳师范大学软件学院227.3.1软件能力成熟度模型概述7.3.1.5关键实践和共同特征为达到某个成熟度级别的关键过程域的目标,必须实施若干关键实践。关键实践关键实践(Key Practice)是指对关键过程域起重要作用的方针、规程、措施、活动以及相关基础设施的建立。关键实践涉及5个方面,分别为执行约定、执行能力、执行的活动、测量和分析、验证实施,被称作5个共同特征共同特征(Common Features)。每个关键过程域
14、所包含的关键实践均按这5个共同特征进行组织。沈阳师范大学软件学院237.3.1软件能力成熟度模型概述7.3.1.6可用图来概括CMM的逻辑结构沈阳师范大学软件学院247.3.2软件能力成熟度模型的建立和评估7.3.2.1 CMM的实施步骤企业实施CMM,可从如下几个步骤进行:n 提高思想认识,了解必要性和迫切性;n 确定合理的目标;n 进行CMM培训和咨询工作;n 成立工作组;n 制定和完善软件过程;n 内部评审;n 初期评估;n 正式评估;n 根据评估的结果改进软件过程。 沈阳师范大学软件学院257.3.2软件能力成熟度模型的建立和评估7.3.2.2 CMM的评估方法 CMM的评估方法为CB
15、ACBAIPIIPI (CMM-Based Appraisal for Internal Process Improvement,基于CMM的内部过程改进评估)。CMM评估包括5个等级,共计18个关键过程域,52个目标,300多个关键实践。每一个CMM等级评估周期约需12-30个月。每一级别的评估由CMU/SEI授权的主任评估师领导一个评审小组进行。评估过程包括员工培训、问卷填写和统计、文档审查、数据分析、与企业的高层领导讨论和撰写评估报告等。沈阳师范大学软件学院267.3.2软件能力成熟度模型的建立和评估7.3.2.3实施CMM应把握的原则n任何软件开发单位在提升自己的CMM等级时,只能由所
16、处的层次向紧邻的上一层次进化,不可越级。n通过CMM某个等级的评估并不是软件企业最终的目的,显然,最终目的应是通过CMM评估来改进企业的软件过程,提升软件开发的能力。沈阳师范大学软件学院27本节内容7.4软件质量保证7.4.1软件质量保证概述7.4.2软件质量保证的工作内容7.4.3软件质量保证的实施沈阳师范大学软件学院287.4.1软件质量保证概述7.4.1.1 软件质量保证 软件质量保证,即SQASQA(Software Quality Assurance),是CMM第2级中的一个关键过程域,它是贯穿整个软件过程的第三方独立审查活动,出现在大多数关键过程域的检查与验证的公共特性中。沈阳师范
17、大学软件学院297.4.1软件质量保证概述7.4.1.1软件质量保证的目的 SQA的目的是向管理者提供对软件过程进行全面监控的手段,包括评审和审计软件产品和活动,验证它们是否符合相应的规程和标准,同时给项目管理者提供这些评审和审计的结果,以反映产品和过程质量,提高项目透明度。沈阳师范大学软件学院307.4.1软件质量保证概述7.4.1.2 SQA组织的主要工作包括以下两方面:n监控软件的开发过程,保证软件开发过程符合相应的标准与规程。n保证软件产品、软件过程中存在的不符合问题得到处理,必要时将问题反映给高级管理者。 软件工程过程小组SEPG的职责是提供软件过程的指导,帮助项目组制定项目过程,实
18、施过程改进。如果项目组和SQA对过程的理解不一致,SEPG作为最终仲裁者。可用立法者和执法者形容可用立法者和执法者形容SEPGSEPG和和SQASQA之间的关系之间的关系。 沈阳师范大学软件学院317.4.1软件质量保证概述7.4.1.2 SQA组织的主要工作 SQA的主要作用是给管理者提供实现软件过程的保证,因此SQA组织要保证如下几点:n选定的开发方法被采用。n选定的标准和规程得到采用和遵循。n进行独立的审查。n偏离标准和规程的问题得到及时地反映和处理。n项目定义的每个软件任务得到实际的执行。沈阳师范大学软件学院327.4.2软件质量保证的工作内容7.4.2.1软件质量保证的工作内容1计划
19、2. 审计/证实3处理不符合问题沈阳师范大学软件学院337.4.3 软件质量保证的实施7.4.3.1 软件质量保证的实施软件质量保证的实施过程中需要注意如下几方面的问题。n企业的高级管理者必须重视软件质量保证活动。n要考虑SQA人员的素质。n某项目的SQA人员不能是该项目组的开发人员、配置管理人员或测试人员.nSQA人员在工作过程中一定要抓住问题的重点与本质,不要陷入对细节的争论之中。nSQA人员要客观、有责任心。nSQA人员要能应对繁杂的工作。沈阳师范大学软件学院347.4.3软件质量保证与测试的区别7.4.3.1软件质量保证与测试的区别在阐述两者区别之前,先来看QA和QC的概念。n QA(
20、Quality Assurance,质量保证):监控公司质量保证体系的运行状况,审计项目的实际执行情况和公司规范之间的差异,并出具改进建议和统计分析报告,对公司的质量保证体系的质量负责。nQC(Quality Control,质量控制): 对每一个阶段或者关键点的产出物(工件)进行检测,评估产出物是否符合预计的质量要求,对产出物的质量负责。QC有时也被称为质量检验或质量检查。 QA在软件企业中实际上就是SQA,即软件质量保证;而QC在软件企业中实际上就是SQC,即软件质量控制。沈阳师范大学软件学院357.4.3软件质量保证与测试的区别7.4.3.1软件质量保证与测试的区别如果将软件的生产比喻成
21、一条产品加工生产线的话,那么SQA只负责生产线本身的质量,而不管生产线中单个产品的实际质量情况。SQA在软件企业内对应的角色为软件质量保证人员。而SQC则不管生产线本身的质量,而只关注按现有生产线生产的阶段性产品的质量是否符合预期的要求。即SQC只负责检查软件开发过程中各个阶段产出的工件的质量。SQC在软件企业内对应的角色为软件测试人员。沈阳师范大学软件学院367.4.3软件质量保证与测试的区别7.4.3.1软件质量保证与测试的区别SQA和SQC对于企业软件质量的保证是缺一不可的,这两类人员常需进行配合。SQA和SQC的共同点在于它们的最终目标一致,都是提高软件的质量。而它们的区别在于:n任务不同:SQA是审计软件过程的质量,而SQC则是检验每个阶段产品的质量。n层次不同:SQA是站在比SQC更高的层次上保证软件质量,SQC关注的内容是局部的,而SQA关注的则是整个软件过程。因此,SQC人员(软件测试人员)的工作是受SQA人员的监督的,即SQA可保证测试工作是按照定义好的流程执行的。沈阳师范大学软件学院37实训二:编写SQA报告沈阳师范大学软件学院38
限制150内