《Lect02-软件质量与质量保证.ppt》由会员分享,可在线阅读,更多相关《Lect02-软件质量与质量保证.ppt(52页珍藏版)》请在三一办公上搜索。
1、软件质量与质量保证,不存在完美的软件;软件质量保证需要成本;措施:工程技术方法、管理措施、质量控制,主要内容,质量与软件质量软件质量困境WebApp设计质量实现软件质量软件质量保证软件可靠性ISO 9000质量标准,质量与软件质量,不同角度的质量观点用户:产品体现用户目标;制造商:符合原始规格定义;产品:产品的固有属性(功能、性能);价值:能卖多少钱质量:是产品的一组固有特性满足需求的程度设计质量-设计满足需求模型的功能和特性的程度符合(符合设计)质量-实现遵从设计的程度以及所得到的系统满足需求和性能目标的程度用户满意度=合格的产品+好的质量+按预算和进度安排交付(Robert Glass),
2、软件质量,定义:在一定程度上应用有效的软件过程创造有用的产品,为生产者和使用者提供明显的价值。软件过程是基础;用户满意:满足产品各特征、特性;生产者和使用者受益软件产品满足规定的显式或隐式的与需求有关的全部特征和特性的程度。,Garvin的质量维度,性能质量:符合需求的内容、功能、特性;特性质量:用户满意的特性;可靠性:在给定时间段内成功运行的可能性;符合性:遵循相关标准的程度;耐久性:可维护性;适用行:可服务性;审美:美感;感知:感知质量。,维度主观判断,McCall的质量因素,McCall等提出来McCall质量模型产品操作运行特性;产品修改特性;产品的适应特性很难直接度量,仅能间接地测量
3、。,产品运行,产品修改,产品转移,可维护性灵活性可测试性,可移植性可复用性互操作性,正确性 易用性 可靠性效率 完整性,ISO 9126质量因素,ISO9126定义了一个三层次的质量模型:质量特性(6个)质量子特性(27个)度量指标ISO9126定义的6个质量特性:功能性 可靠性 易用性效率 可维护性 可移植性,定向质量因素,除软件质量整体度量因素之外,还可以在某一时期考虑局部因素。例如:考察界面直觉效率健壮性丰富性,定量度量,定性度量:主观性、不精确性定量度量:力求建立度量模型,追求尽可能客观、精确定量度量随方法、模型的改进,精度不断提高,关于软件质量,同一项目:不同角色的人有不同的要求不同
4、项目:质量属性的重要程度不同,软件质量困境,软件质量必须足够好:存在价值软件产品无法完美:需要消耗过多的资源、时间、成本软件开发需要在两个极端之间进行平衡:软件足够好的同时又不完美。,足够好的软件,因时、因应用领域不同而有所不同,要保证:产品价值成本不要太高不能存在较大的功能、性能缺陷产品缺陷不应造成事故、重大损失,从而影响用户方的声誉,质量成本,质量对于软件来说非常重要,但是,高质量也意味着开发时的时间、成本;而低质量意味着维护等的成本。质量成本包括:追求质量过程相关活动引起的成本与质量不佳引起的下游成本。关注哪些重要的成本?,高质量成本,预防成本计划和协调所有质量控制和质量保证所需管理活动
5、的成本;为开发完整的需求、设计模型所增加的技术活动成本;测试计划成本;与这些活动有关的培训成本;评估/鉴定成本软件产品的技术评审成本;数据收集和度量估算成本;测试调试成本;,低质量成本,失效成本:如果软件没有错误就不存在的成本内部失效成本(交付之前)为纠错而返工的成本;返工时无意中产生的副作用引起的成本;为评估失效而收集模型数据引起的成本;外部成本(交付之后)投诉、退货、更换引起的成本;售后支持、维护相关的成本;不良声誉引起的损失;,质量成本,低质量引起的风险,低劣质量的软件可能引起很严重的后果医疗事故;交通事故。军事、航空航天、金融、工业控制,一般实时系统可能引起事故,疏忽和责任,主要在大型
6、、开发周期比较长项目中,最后出现问题时双方相互推诿:客户方:开发方技术、能力、水平不行,不负责任;开发方:客户要求一变再变。,质量与安全,低质量的软件容易受到攻击,增加了安全风险。必须从一开始在软件过程中就注重安全相关的质量要求:安全性、可靠性、可行性等。已经对错误有了足够的重视,却对设计缺陷重视不够。,管理活动对质量的影响,估算决策:不根据项目实际情况而要求提前交付,软件质量受到损害;进度安排决策:不合理的进度安排也可能导致软件质量低下,如某个关键模块没有经过充分测试;风险管理:缺乏好的风险管理。,软件质量困境,多花些时间一次将事情做好可能是较为节省的方式。,WebApp设计质量,WebAp
7、p应用的属性:(P36-37)网络密集型应用;并发性;大负载量;性能;高可靠性、高可用性;安全性-内容敏感;,WebApp应用系统:项目范围更大质量要求更高低质量影响更大,WebApp质量需求树,全球站点可用性,在线反馈和帮助特性,界面和美学特性,特殊特性,查找和检索能力,导航和浏览特性,与应用领域相关的特性,正确的链接处理,错误恢复,用户输入正确和恢复,相应时间性能,网页生成速度,图形生成速度,易于修改,适应性,可扩展性,可用性,功能性,可靠性,效率,可维护性,WebAPP质量,安全性(权限)可用性(7X24)可伸缩性投放市场时间,WebApp内容评价,WebAPP评价:内容、功能、导航;内
8、容与带宽问题;图文结合(多媒体)内容组织;总体设计;,内容评价:易于判断内容的范围、深度;识别内容作者、背景内容的通用性;内容、位置的稳定性,实现软件质量,实现软件质量的方法:软件工程方法;项目管理技术;质量控制(各工作产品符合质量目标);质量保证(审查、测试、跟踪质量指标)。,软件工程方法,软件过程;软件开发方法建模;工具;标准、规范,需求分析、软件设计、实现、软件维护等各项活动都关注质量、尽可能符合“足够好”软件的要求。,项目管理技术,项目规划;进度监控-及时发现问题;风险管理;变更管理;配置管理等。,规划合理、涉及细节、管理到位,质量控制,对于每一软件活动对应产品质量目标;活动评审-评审
9、完整、一致;需求评审;设计评审;代码评审;软件测试。,实时监督软件活动的质量数据,并加以管理,质量控制、质量保证和质量管理,软件质量控制其实是基本方法,通过一系列的技术来科学地测量过程的状态。如缺陷率、测试覆盖率等。软件质量保证则是过程的参考、指南的集合,如ISO9000、CMM/CMMI等,着重内部的检查,确保已获取认可的标准和步骤都已经遵循。软件质量管理则是实际操作的思想,质量管理控制和协调组织的质量活动,包括质量控制、质量保证和质量改进。,软件质量保证(SQA),定义:是建立一套有计划、有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目
10、的是使软件过程对于管理人员来说是可见的、而且是符合质量要求的。,SQA,为进行软件质量保证,需要收集、评估、发布有关软件过程的数据。软件质量模型软件质量内部度量模型(技术);软件质量外部度量模型(质量属性);软件产品质量模型;数据质量模型;软件使用质量模型等。,SQA,质量保证就是将质量保证的管理规则和设计规范映射到对应的软件项目管理和技术空间上,以保证软件产品的质量。,SQA过程;具体质量保证和质量控制任务;有效的方法和工具;,变更控制;符合软件开发标准;测量和报告机制。,SQA要素,标准:IEEE、ISO,确保遵循标准;评审和审核:软件工程师执行评审、SQA人员执行审核;测试:确保测试计划
11、适当并有效实施;错误的收集和分析:SQA掌握错误是如何引入的,以便进一步改进;变更管理:变更评审、变更;培训:灌输质量管理的重要性、技术等;供应商管理、安全管理(数据安全)、安全(错误影响)、风险管理。,提高质量,技术人员方法/技术技术评审软件测试提高质量,SQA小组为帮助软件团队实现高质量的软件产品而执行质量保证活动,SQA的任务,编制项目质量保证计划;参与软件过程裁剪;评审软件活动是否符合规定的软件过程评审软件产品是否符合规范和质量要求文档在开发过程、成果方面的偏差;跟踪报告各不符合项。,质量目标、质量属性和度量,目标:需求质量:需求模型的正确、完整、一致;设计质量:设计模型体现出高设计质
12、量;代码质量:符合编码规范、易于理解;质量控制的有效性:SQA在评审、测试的资源分配、评估质量控制是否有效。,SQA计划,IEEE SQA计划内容:计划的目的和范围;SQA关于软件产品的描述;SQA活动与软件过程活动的对应;SQA活动和任务以及安排;支持SQA活动和任务的工具、方法;软件配置管理的规程;收集、维护所有SQA相关记录的方法;与产品质量相关的组织角色和责任。,质量信息量化统计,步骤:收集软件的错误和缺陷信息,并分类;追溯错误、缺陷形成的原因;使用Parto原则(80%的缺陷可能追溯到所有可能原因中的20%),分离这20%原因;一旦找出20%原因,就开始纠正引起错误和缺陷的问题。,例
13、:错误主要原因,不完整或错误的规格说明(IES)与客户交流中产生的误解(MCC)故意违背规格说明(IDS)违反程序设计标准(VPS)数据表示错误(EDR)构件接口不一致(ICI),设计逻辑的错误(EDL)不完整或错误的测试(IET)不准确或不完整的文档(IID将设计转化为代码的错误(PLT)不清晰或不一致的人机界面(HCI)其他(MIS),SQA量化统计,确定重要的少数原因;改正软件开发工作(改变方式、工具)IES-改变需求分析方法、建模MCC-改进需求收集技术,加强客户交流EDR-利用工具进行数据建模,加强评审IET-改进测试设计技术,六西格玛-Six Sigma,6Sigma是广泛应用的基
14、于统计的质量保证策略,运用数学和统计分析,通过识别和消除制造及服务过程中的缺陷来测量和改进企业的运转状况。起源于6个标准偏差,每百万个操作发生3.4个错误意味着非常高的质量标准。,6Sigma核心步骤,定义:定义客户需求、可交付产品与项目目标;测量:测量现有过程及产品,确定当前质量状况;分析:分析度量信息,找到少数原因;改进:消除缺陷根本原因;控制:控制过程以保证以后的工作不会引入缺陷原因。,软件可靠性,定义:在特定环境和特定时间内,软件正常运行的概率。不能正常运行为失效,依据造成后果、改正难易程度,分为:一般严重灾难,可靠性与可用性的测量,可靠性的简单测量:平均失效间隔时间(MTBFMTBF
15、=MTTF(平均无故障时间)+MTTR(平均修复时间)可用性:某个时间点成功运行的概率:可用性=MTTF/(MTTF+MTTR)X 100%,软件安全,定义:一种软件质量保证活动,他主要用来识别和评估可能对软件产生负面影响并促使整个系统失效的潜在灾难。主要在建模、分析过程中使用,如汽车:产生失去控制的加速,不能停止;踩下刹车踏板后没有反应;开关打开后不能启动;加速、减速缓慢。,软件安全分析,分析方法:失效树分析、实对逻辑、Petri-Net模型等;安全需求规格说明(事件清单、系统响应);注意区别:软件可靠性与软件安全性安全性分析与风险分析,ISO 9000质量标准,质量保证体系:用于实现质量管理的组织结构、责任、规程、过程和资源。,ISO9001-2000,小结,软件质量及质量要素(McCall等);软件质量的两难困境(满足要求、质量成本);WebApp的质量(特殊性);软件质量的实现(软件工程、管理、质量控制);软件质量保证(SQA);重要质量指标:软件可靠性、可用性、软件安全;ISO 9000.,
链接地址:https://www.31ppt.com/p-6510820.html