
Lect02-软件质量与质量保证.ppt
52页软件质量与质量保证不存在完美的软件; 软件质量保证需要成本; 措施:工程技术方法、管理措施、质量控制主要内容Ø质量与软件质量 Ø软件质量困境 ØWebApp设计质量 Ø实现软件质量 Ø软件质量保证 Ø软件可靠性 ØISO 9000质量标准质量与软件质量Ø 不同角度的质量观点 Ø 用户:产品体现用户目标; Ø 制造商:符合原始规格定义; Ø 产品:产品的固有属性(功能、性能); Ø 价值:能卖多少钱 Ø 质量:是产品的一组固有特性满足需求的程度 Ø 设计质量-设计满足需求模型的功能和特性的程度 Ø 符合(符合设计)质量-实现遵从设计的程度以及所得 到的系统满足需求和性能目标的程度 Ø 用户满意度=合格的产品+好的质量+按预算和进度安排 交付 (Robert Glass)软件质量Ø定义:在一定程度上应用有效的软件过 程创造有用的产品,为生产者和使用者 提供明显的价值 Ø软件过程是基础; Ø用户满意:满足产品各特征、特性; Ø生产者和使用者受益 Ø软件产品满足规定的显式或隐式的与需 求有关的全部特征和特性的程度Garvin的质量维度Ø性能质量:符合需求的内容、功能、特性; Ø特性质量:用户满意的特性; Ø可靠性:在给定时间段内成功运行的可能性; Ø符合性:遵循相关标准的程度; Ø耐久性:可维护性; Ø适用行:可服务性; Ø审美:美感; Ø感知:感知质量。
维度主观判断McCall的质量因素ØMcCall等提出来 McCall质量模型 Ø产品操作运行特性; Ø产品修改特性; Ø产品的适应特性 Ø很难直接度量,仅能 间接地测量产品运行产品修改产品转移可维护性灵活性可测试性可移植性可复用性互操作性正确性 易用性 可靠性效率 完整性ISO 9126质量因素Ø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计划ØIEEE SQA计划内容: Ø计划的目的和范围; ØSQA关于软件产品的描述; ØSQA活动与软件过程活动的对应; ØSQA活动和任务以及安排; Ø支持SQA活动和任务的工具、方法; Ø软件配置管理的规程; Ø收集、维护所有SQA相关记录的方法; Ø与产品质量相关的组织角色和责任。
质量信息量化统计Ø步骤: Ø收集软件的错误和缺陷信息,并分类; Ø追溯错误、缺陷形成的原因; Ø使用Parto原则(80%的缺陷可能追溯到所有 可能原因中的20%),分离这20%原因; Ø一旦找出20%原因,就开始纠正引起错误和 缺陷的问题例:错误主要原因Ø 不完整或错误的规格说明 (IES) Ø 与客户交流中产生的误解 (MCC) Ø 故意违背规格说明(IDS) Ø 违反程序设计标准(VPS) Ø 数据表示错误(EDR) Ø 构件接口不一致(ICI)Ø 设计逻辑的错误(EDL) Ø 不完整或错误的测试(IET) Ø 不准确或不完整的文档(IID Ø 将设计转化为代码的错误( PLT) Ø 不清晰或不一致的人机界面( HCI) Ø 其他(MIS)错 误总计严重中等微小 数量百分比数量百分比数量百分比数量百分比 IES205223427681810324 MC C1561712968187617IDS48511246235 VPS25300154102 EDR1301426206818368 ICI58697185317 EDL4551411123194 IET95101293594811 IID36422205143 PLT6061512195266 HCI2833217482 MIS56600154419 总 计942100128100379100435100SQA量化统计Ø确定重要的少数原因; Ø改正软件开发工作(改变方式、工具) ØIES-改变需求分析方法、建模 ØMCC-改进需求收集技术,加强客户交流 ØEDR-利用工具进行数据建模,加强评审 ØIET-改进测试设计技术六西格玛-Six SigmaØ6Sigma是广泛应用的基于统计的质量保 证策略,运用数学和统计分析,通过识 别和消除制造及服务过程中的缺陷来测 量和改进企业的运转状况。
Ø起源于6个标准偏差,每百万个操作发生 3.4个错误意味着非常高的质量标准6Sigma核心步骤Ø 定义:定义。
