《软件质量保证与测试PPT课件第2章 软件质量工程体系》由会员分享,可在线阅读,更多相关《软件质量保证与测试PPT课件第2章 软件质量工程体系(25页珍藏版)》请在金锄头文库上搜索。
1、软件质量保证与测试软件质量保证与测试1第2章 软件质量工程体系 2内容提要软件质量控制的基本方法2.1.1 软件质量控制基本概念2.1.2 软件质量控制的基本方法2.2 软件质量控制模型和技术2.2.1 软件质量控制模型2.2.2 软件质量控制模型参数2.2.3 软件质量控制的实施过程2.2.3 软件质量控制技术软件质量保证体系能力成熟度模型(CCM)软件质量保证SQA41小结3软件质量控制的基本方法2.1.1 软件质量控制的基本概念从软件质量控制本身的技术意义上说,我们对软件质量控制作如下定义:软件质量控制是一组由开发组织使用的程序和方法,使用它可在规定的资金投入和时间限制的条件下,提供满足
2、客户质量要求的软件产品并持续不断地改善开发过程和开发组织本身,以提高将来生产高质量软件产品的能力。根据这个定义,我们可以看到:软件质量控制是开发组织执行的一系列过程。软件质量控制的目标是以最低的代价获得客户满意的软件产品。对于开发组织本身来说 软件质量控制的另一个目标是从每一次开发过程中学习 以便使软件质量控制一次比一次更好。4软件质量控制和质量管理 质量管理技术开发质量控制配置管理客户变更需求客户变更需求客户需求客户需求管理指令管理指令汇报和报告汇报和报告错误错误/问题报告问题报告需求变更需求变更被拒绝的产品被拒绝的产品标准和程序标准和程序状态状态/进展报告进展报告阶段产品阶段产品52.1.
3、2 软件质量控制的基本方法目标问题度量法对一个项目的各个方面(产品、过程和资源)规定具体的目标,这些目标的表达应非常明确。这样做一方面是为了能更好地理解在开发期间发生了什么;另一方面,是为了更容易地评估已经做好了哪些方面,还有哪些方面需要改进。对每一个目标,要引出一系列能反映出这个目标是否达到要求的问题,并要求对这些问题进行回答。这些问题的答案将有助于使目标定量化。将回答这些问题的答案映射到对软件质量等级的度量上,根据这种度量得出软件目标是否达到的结论,或确认哪些做好了,哪些仍需改善。收集数据。要为收集和分析数据做出计划。所收集的数据不仅在分析和度量质量目标时是必不可少的,而且应当保存起来长期
4、使用,以便使目标得到长期、持续的改善。6目标问题度量法示例图 在这个例子中的实际做法是:目标:改善现场使用中的软件产品的质量(可维护性)。问题:可维护性开发过程在预防和阻止缺陷发生方面有效吗?正在发生哪些缺陷?产生缺陷的原因是什么?度量:产品的缺陷密度;按缺陷类别划分的产品缺陷的发生频率;缺陷产生的频率分布以及缺陷发生所在阶段的频率分布。运行维护进行可维护性开发进行开发准备开发7风险管理法 根据经验识别项目要素的有关风险;评估风险发生的概率和发生的代价;按发生概率和代价划分风险等级并排序;在项目限定条件下选择控制风险的技术并制定计划;执行计划并监视进程;持续评估风险状态并采取正确的措施。8SE
5、I风险管理模型 跟踪跟踪识识别别分析分析计计划划控控制制在在风风险险转转化化为为问问题题前前发发现现对对风风险险的的影影响响、发发生生概概率率等等进进行分析行分析基于分析的决策基于分析的决策弱弱化化、转转移移、控制风险控制风险监监督督风风险险,检检查查对对策策的适应性的适应性9软件项目各阶段的风险 阶段阶段可能面临的风险问题可能面临的风险问题计划目标不清范围不清缺少沟通业务不清缺乏可行性分析设计缺乏经验没有变更控制计划项目计划仓促(进度风险)设计疏漏实施缺乏环境设计错误开发能力项目范围变更进度变更人员变更内部沟通不畅备选方案无效测试计划不充分或缺少经验发布质量差客户不满意设备未按时到货资金不能
6、及时回收10风险严重程度等级 影响影响程度程度标准标准等级等级危险严重影响项目,可能导致项目取消或直接失败109高影响进度,导致延期,客户抱怨严重87中影响预算或软件性能差,客户不满意65低影响进程但很快解决,客户有些不满43小影响较小,客户未察觉或认可2011风险控制方法在控制阶段主要用到的风险控制方法有风险避免、风险弱化、风险承担和风险转移等,分别叙述如下:风险避免,通过变更计划消除风险的触发条件,如采用成熟技术、增加资源、减少软件范围等。风险弱化,降低风险发生的概率,如简化流程、更多测试、开发原型系统等。风险承担,制定应急方案,随机应变。风险转移,将风险发生的结果连同应对权利转移给有承受
7、能力的第三方。122.2 软件质量控制模型和技术2.2.1 软件质量控制模型 确定质量目标提高质量开发质量评估质量质量控制参数产品、过程、资源定义改善估计度量计划Plan改进Action实施Do检查Check132.2.2 软件质量控制模型参数产品过程资源过程1过程2过程n输出1输入2输出2输入n输入1输出n反馈及纠错142.2.3 软件质量控制的实施过程计划计划实施实施检查检查改进改进计划计划实施实施检查检查改进改进计划计划实施实施检查检查改进改进计划计划实施实施检查检查改进改进预开发预开发开发开发维护维护预开发阶段开发阶段维护阶段152.2.3 软件质量控制技术软件质量控制技术的特征 质量
8、控制质量控制技术技术预防性特征预防性特征检测性特征检测性特征因果分析分析原因,提出改进建议,预防出错 配置管理控制软件配置,防止引入新的错误 独立的确认与验证IV&V 及时发现和纠正需求、设计、编码的错误检查在测试之前检查并纠正设计和编码的缺陷检查和纠正设计、编码缺陷管理度量检查早期问题并调整质量控制参数 性能工程提供某种方法避免潜在的性能问题度量实际性能,确认是否满足需求初样对早期需求和问题的确认,用户界面设计确认 可靠性建模 度量软件的可靠性,并预测附加测试软件审计识别关键风险并提出规避方法检测超时、超支和质量缺陷SEI软件能力评估评估组织的开发过程,确定成熟度等级 16部分软件质量控制技
9、术对质量参数的影响 质量控制技术质量控制技术受影响的质量控制参数受影响的质量控制参数产品产品过程过程资源资源因果分析 需求分析、开发与测试人力、设备、进度配置管理需求、接口、编码及文档配置管理、软件质量保障 独立的确认与验证需求、设计、编码及测试文档需求分析、开发与测试设备检查设计、编码及文档 管理度量需求、设计、编码需求分析、开发与测试、开发工具、软件状态计算机资源、人力、资金、进度性能工程设计、编码、定时分配、规模估计测试 初样需求、客户界面开发与测试设备可靠性建模设计、编码 为测试、评估确定进度计划软件审计需求、接口、定时分配和规模估计需求分析、开发与测试、初样工程、配置管理、SQA人力
10、、管理、开发和测试设备17软件质量控制问题与质量控制技术 最终产品的质量需求是什么?选择什么样的开发组织?为预防软件质量缺陷应该做点儿什么?怎样检查软件质量?在检查点应该获得哪些信息?18软件质量控制技术的选择 选择控制技术需考虑的因素:有些技术是任何时候都要考虑的,尽管它们的使用等级可以变化。要考虑所选技术的效益并使需求、风险和限制得到平衡。有些技术是冗余的或是矛盾的,只需或只能选择其一。有些技术是互补的,同时使用可能提高效益。控制技术的选用不能与约定相矛盾。有些技术只能用于特定的开发阶段或特定的开发活动中。检测性技术宜尽早使用,以防早期缺陷的产生和传播。对于高风险的设计和程序,质量控制活动
11、和检查点的安排时间上不要隔太久19软件质量保证体系 软件质量保证(Software Quality Assure,SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。SQA(软件质量保证)是CMM(软件能力成熟度)2级中的一个重要关键过程区域,它是贯穿于整个软件过程的第三方独立审查活动,在CMM的过程中充当重要角色。SQA的目的
12、是向管理者提供对软件过程进行全面监控的手段,包括评审和审计软件产品和活动,验证它们是否符合相应的规程和标准,同时给项目管理者提供这些评审和审计的结果。因此,满足SQA是达到CMM2级要求的重要步骤之一。 20能力成熟度模型(CCM) 能力成熟度模型的历史和发展1987年,美国卡内基梅隆大学软件研究所(Software Engineering Institute,SEI)受美国国防部的委托,率先在软件行业从软件过程能力的角度提出了软件过程成熟度模型(Capability Maturity Model,CMM),随后在全世界推广实施的一种软件评估标准,用于评价软件承包能力并帮助其改善软件质量的方法
13、。它主要用于软件开发过程和软件开发能力的评价和改进。它侧重于软件开发过程的管理及工程能力的提高与评估。CMM自1987年开始实施认证,现已成为软件业最权威的评估认证体系。CMM包括5个等级,共计18个过程域,52个目标,300多个关键实践。21能力成熟度模型的基本概念 能力成熟度模型(Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM)CMM是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。它是在美国国防部的指导下,由软件开发团体和软件工程学院(SEI)及Carnegie Mellon大学共同开发的。
14、CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。 22CMM的基本思想 CMM的基本思想是基于已有60多年历史的产品质量原理。休哈特(Walter Shewart)在30年代发表了统计质量控制原理,戴明(W. Edwards)和朱兰(Joseph Juran)的关于质量的著作又进一步发展和论证了该原理。实际上,将质量原理变为成熟度框架的思想是克劳斯比(Philip Crosby),他在著作质量免费(Quality is Free)中首先提出,他的质量管理成熟度网络描绘了采用质量实践时的5个进化阶段,
15、而该框架后来又由IBM的拉迪斯(Rom Radice)和他的同事们在汉弗莱(Watts Humphrey)指导下进一步改进以适应软件过程的需要。1986年,汉弗莱将此成熟框架带到了SEI并增加了成熟度等级的概念,将这些原理应用于软件开发,发展成为软件过程成熟度框架,形成了当前软件产业界正在使用的框架。 23实施CMM的必要性 实施CMM是改进软件质量的有效方法:控制软件生产过程、提高软件生产者组织性和软件生产者个人能力的有效合理的方法软件工程和很多研究领域及实际问题有关,主要相关领域和因素有:需求工程(Requirements Engineering)。理论上,需求工程是应用已被证明的原理、技
16、术和工具,帮助系统分析人员理解问题或描述产品的外在行为。软件复用(Software Reuse),定义为利用工程知识或方法,由一已存在的系统,来建造一新系统。这种技术,可改进软件产品质量和生产率。还有软件检查、软件计量、软件可靠性、软件可维修性、软件工具评估和选择等。24软件质量保证SQASQA背景SQA目标SQA任务SQA在软件开发不同阶段的目标SQA活动SQA的实施25小结 软件质量控制是一组由开发组织使用的程序和方法,使用它可在规定的资金投入和时间限制的条件下,提供满足客户质量要求的软件产品并持续不断地改善开发过程和开发组织本身,以提高将来生产高质量软件产品的能力。用于软件控制的一般性方法有三种: 目标问题度量法;风险管理法;PDCA质量控制法。其中在我国最常用的是模型是基于PDCA的全面服务质量管理(TSQC)模型。软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。在提高软件质量方面卓有成效。