Lect02-软件质量与质量保证

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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

1 / 52
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功