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