您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 项目管理与质量保证——质量保证da
项目管理与质量保证软件质量保证软件质量保证(SQA)——引论为什么要引入软件质量保证?生产出高质量的软件为了“在正确的时间、以正确的方式、做正确的事情”质量管理的问题不在于人们不知道什么是质量,问题在于人们认为他们自己对质量知道…质量(1)什么是质量?某一事物的特征或属性产品或工作的优劣程度遗憾的是:样本间是有差异的!!差异控制是质量控制的核心质量(2)两种不同的质量设计质量符合质量软件需求是进行“质量”测量的基础,与需求不符就是质量不高。指定的标准定义了一组指导软件开发的准则。如果不能遵照这些准则,就极有可能导致质量不高。通常有一组“隐含需求”是不被提及的。不符合的话软件质量也很难保证。什么样的软件是高质量的?设计质量+符合质量?用户满意度=合格产品+好的质量+在预算和进度表内交付质量(3)软件质量特性:功能性包括软件产品提供的用来满足用户需要的功能可靠性与软件维护其性能等级的能力相关易用性与使用软件所要花费的工作量相关效率与软件执行过程中所占用的物理资源相关可维护性与进行软件变更所需要的工作量相关可移植性与把软件转换到不同环境的能力相关质量(4)软件质量特性——功能性适合性软件是否符合用户需要准确性软件是否正确地实现了功能互操作性软件和其他系统的交互能力功能符合性软件和需求的匹配程度安全性系统访问控制质量(5)软件质量特性——可靠性成熟度软件中缺陷所造成的故障的频率容错性可恢复性可靠性符合性质量(6)软件质量特性——易用性可理解性可学习性可操作性吸引性可用性符合性质量(7)软件质量特性——效率时间特性资源利用有效性符合性质量(8)软件质量特性——可维护性可分析性确定故障产生原因的容易程度可变性灵活性稳定性对软件修改的可能性可测试性可维护性符合性质量(9)软件质量特性——可移植性适应性可安装性共存性软件和其他软件分享资源的能力可替代性可移植性符合性质量(10)质量特性含义可回答的问题正确性程序满足规格说明和完成用户业务目标的程度它做了该做的事吗?可靠性程序按要求的精确度实现其预定功能的程度它总能准确地工作吗?效率程序实现其功能所需要的计算资源量能在硬件上尽力工作吗?安全性软件或数据不受未授权人控制的程度它是安全的吗?使用性学习、操作程序、准备输入输出的工作量它可用吗?维护性对运行的程序找到错误并排除错误的工作量它可调整吗?测试性为保证程序执行其规定的功能所需的测试工作量它可测试吗?灵活性修改程序所需工作量它可修改吗?移植性将程序从一个环境转移到另一环境的工作量可以在其他机器上使用吗?复用性程序可被用于其他应用问题的程度可以重复使用它的某些部分吗?共运行性一系统与另一系统协同运行所需的工作量能与其他系统连接吗?质量(11)怎么能保证质量?质量控制质量控制是为了保证每一件工作产品都满足对它的需求而应用于整个开发周期中的一系列审查、评审和测试质量控制在创建工作产品的过程中包含一个反馈循环质量保证质量保证由管理层的审计和报告功能构成未经跟踪的工作等于没做!!!正确地完成一件事情比解释你为什么将事情做错所花的时间要少人们会忘记你做一件工作有多快,但他们总会记得你做得有多好质量成本(1)什么是质量成本?所有由质量工作或者进行与质量有关的活动所导致的成本有哪些质量成本?预防成本鉴定成本故障成本质量计划正式技术评审测试设备培训过程内和过程间审查设备校准和维护测试内部故障成本外部故障成本内部故障成本返工修复故障模式分析外部故障成本解决客户的抱怨退换产品求助电话支持保修工作质量成本(2)既然质量管理需要成本,那么是不是越晚进行质量管理就越省钱?IBM审查200000行代码总共用了7053个小时,结果是预防了3112个潜在的缺陷。雇佣一名程序员的报酬为40美元/小时。假设交付的产品中每1000行代码中有1个缺陷,此时改正每个缺陷成本的时间为25000美元。预防总成本:282,120美元平均缺陷成本:91美元维护总成本:5,000,000美元平均缺陷成本:25,000美元差距:5000000/282120=17.7质量成本(3)改正一个错误的相对成本需求分析阶段:1倍设计阶段:3~6倍编码阶段:10倍开发测试阶段:15~40倍系统测试阶段:30~70倍实际操作阶段:40~1000倍软件缺陷(1)几个概念:缺陷(defect)故障(bug)错误(error)缺陷、故障:软件交付之后发现的质量问题错误:软件交付之前发现的质量问题软件缺陷(2)几个结论:设计活动引入的错误占软件过程中出现的所有错误(和最终的缺陷)数量的50%到65%正式技术评审在发现设计错误方面最高达到75%的有效性软件缺陷(3)缺陷放大模型:通过的错误错误检测有效性百分比放大的错误1:x新产生的错误软件缺陷(4)例:假设:概要设计阶段生成10个错误详细设计阶段生成25个错误,同时会放大1/3的继承错误,放大系数为1.5编码和单元测试阶段生成25个错误,同时会放大2/3的继承错误,放大系数为3在测试中可以发现并改正50%的错误,同时不引入新的错误概要设计阶段错误的改正成本为1,详细设计时为1.5,测试前是6.5,测试中是15,发布后是6700%01060%4*1.5251020%27*3259450%004750%002450%00概要设计详细设计集成测试单元测试确认测试系统测试070%010250%1*1.525560%10*3252450%001250%00650%00概要设计详细设计集成测试单元测试确认测试系统测试软件评审技术工作需要评审评审的目的是什么?指出个人或小组生产的产品所需进行的改进确定产品中不需要或者不希望改进的部分得到与没有进行评审相比更加一致、或者至少更可预测的技术工作的质量,从而使得技术工作更小易于管理既然技术评审这么好,是不是应该大量频繁的进行?为什么需要评审在去除明显的错误时,审查是非常有效的方法鼓励开发人员产生结构更好的、不需要加以说明的软件能促进优秀编程实践的传播能增进团队精神正式技术评审(FTR)(1)FTR想要达到什么目标?在软件的任何一种表示形式中发现功能、逻辑或实现的错误证实经过评审的软件的确满足需求保证软件的表示符合预定义的标准得到以一种一致的方式开发的软件使项目更易于管理正式技术评审(2)每个评审会议约束:评审会议通常应该在3~5人之间进行应该进行提前准备,但是每人占用工作时间应该少于2小时评审会议时间应该不超过2小时正式技术评审(3)每个FTR步骤:确定参加评审的人员人员培训评审准备分发评审材料,评审员审读评审材料开评审会议生成评审报告和问题列表正式技术评审(4)评审结论:工作产品可以不经修改而被接受由于严重错误而否决工作产品暂时接受工作产品评审总结报告内容:评审什么由谁评审发现和结论是什么正式技术评审(5)正式技术评审的指导原则:评审产品,而不是评审生产者制定日程并且遵守日程限制争论和辩驳对各个问题都发表见解,但是不要试图解决所有记录的问题做书面笔记限制参与者人数并坚持事先做准备为每个可能要评审的工作产品建立一个检查表为FTR分配资源和时间对所有评审者进行有意义的培训评审以前所做的评审Fagan评审的基本原理对于所有主要的交付物都要进行审查所有类型的缺陷都要记录——不仅仅是逻辑或功能缺陷审查应该由除非常高层领导外的各级同事来执行采用预先规定的步骤进行审查审查会议不能超过两个小时审查是由经过特殊技术培训的协调员来领导的为其他参与者定义不同的角色使用检查表来协助缺陷查找过程检查材料的理想速度是每小时100行维护统计数据,以便监督审查过程的有效性项目质量管理分类项目质量计划编制质量保证质量控制质量方针质量管理计划工作结果范围说明质量控制测量结果质量管理计划产品描述操作定义操作定义标准和规则检查表其它过程输出收益/成本分析质量计划编制方法和技术检查检验基准法质量审计控制图流程图帕累托图试验分析设计统计抽样流程图趋势分析质量管理计划质量提高质量提高操作定义验收决定检查表返工其它过程输入完成检查表过程调整输入(依据)方法和技术输出结果项目质量管理过程软件质量保证——概述(1)什么是软件质量保证?SoftwareQualityAssurance,简称SQA一种应用于整个软件过程的庇护性活动软件质量保证的范围?软件产品质量软件过程质量软件质量保证——概述(2)软件质量保证包含哪些内容?一种质量管理方法有效的软件工程技术在整个软件过程中采用的正式技术评审一种多层次的测试策略对软件文档及其修改的控制保证软件遵从软件开发标准的规程度量和报告机制软件质量保证——概述(3)那些人应该为软件质量负责?软件工程师项目管理者客户销售人员SQA小组成员SQA小组充当客户在公司内部的代表SQA小组的职责是辅助软件工程小组得到高质量的最终产品软件质量保证——SQA活动(1)1.为项目准备SQA计划计划里应标识出什么?需要进行的评价需要进行的审计和评审项目可采用的标准错误报告和跟踪的规程由SQA小组产生的文档为软件项目组提供的反馈数量软件质量保证——SQA活动(2)2.参与开发该项目的软件过程描述3.评审各项软件工程活动、对其是否符合定义好的软件过程进行核实4.审计制定的软件工作产品、对其是否符合定义好的软件过程中的相应部分进行核实5.确保软件工作及工作产品中的偏差已被记录在案并根据预定规程进行处理6.记录所有不符合的部分并报告给高级管理者7.协调变更的控制和管理8.帮助收集和分析软件度量信息软件测试(1)软件的确认(Validation)和验证(Verification),简称V&V什么是确认?在软件开发过程期间(针对单元)或结束(针对系统)时,单元或系统是否满足用户特定的需求?什么是验证?在一个给定的开发阶段中,单元或系统是否满足在此阶段开始时确定的条件?软件测试(2)测试种类单元测试集成测试确认测试功能测试回归测试α测试β测试验收测试软件测试(3)测试方法白盒测试黑盒测试软件测试(4)测试类型功能测试性能测试算法测试正向测试逆向测试边界测试配置测试负载测试软件测试(5)测试计划测试计划测试用例测试报告统计软件质量保证什么是统计软件质量保证?是质量的量化统计软件质量保证有哪些步骤?收集和分类软件缺陷信息尝试对每个缺陷的形成原因进行追溯使用Pareto原则,将这20%(重要少数)分离出来一旦找到重要少数原因,就可以开始纠正引起缺陷的问题80%的缺陷可以追溯到所有可能原因中的20%可能的错误原因规约不完整或规约错误(IES)与客户通信中所产生的误解(MCC)故意与规约偏离(IDS)违反编程标准(VPS)数据表示有错(EDR)构件接口不一致(ICI)设计逻辑有错(EDL)不完整或错误的测试(IET)不准确或不完整的文档(IID)将设计翻译成程序设计语言中的错误(PLT)不清晰或不一致的人机界面(HCI)杂项(MIS)例错误总计严重一般微小数量百分比数量百分比数量百分比数量百分比IES205223427681810324MCC1561712968187617IDS48511246235VPS25300154102EDR1301426206818368ICI58697185317EDL4551411123194IET95101293594811IID36422205143PLT6061512195266HCI2833217482MIS56600154419总计942100128100379100435100利用错误指标(ErrorIndex,EI)找到影响质量的主要原因Ei
本文标题:项目管理与质量保证——质量保证da
链接地址:https://www.777doc.com/doc-812664 .html