项目管理与质量保证——质量保证da

上传人:x****x 文档编号:288428247 上传时间:2022-05-05 格式:PPT 页数:53 大小:1.10MB
返回 下载 相关 举报
项目管理与质量保证——质量保证da_第1页
第1页 / 共53页
项目管理与质量保证——质量保证da_第2页
第2页 / 共53页
项目管理与质量保证——质量保证da_第3页
第3页 / 共53页
项目管理与质量保证——质量保证da_第4页
第4页 / 共53页
项目管理与质量保证——质量保证da_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《项目管理与质量保证——质量保证da》由会员分享,可在线阅读,更多相关《项目管理与质量保证——质量保证da(53页珍藏版)》请在金锄头文库上搜索。

1、项目管理与质量保证软件质量保证软件质量保证(SQA) 引论n为什么要引入软件质量保证?n生产出高质量的软件n为了“在正确的时间、以正确的方式、做正确的事情” 质量管理的问题不在于人们不知质量管理的问题不在于人们不知道什么是质量,问题在于人们认为道什么是质量,问题在于人们认为他们自己对质量知道他们自己对质量知道质量(1)n什么是质量?n某一事物的特征或属性n产品或工作的优劣程度遗憾的是:遗憾的是: 样本间是有差异的样本间是有差异的!差异控制差异控制是是质量控制质量控制的的核心核心质量(2)n两种不同的质量n设计质量n符合质量 软件需求是进行软件需求是进行“质量质量”测量的基础,测量的基础,与需求

2、不符就是质量不高。与需求不符就是质量不高。 指定的标准定义了一组指导软件开发指定的标准定义了一组指导软件开发的准则。如果不能遵照这些准则,就极的准则。如果不能遵照这些准则,就极有可能导致质量不高。有可能导致质量不高。 通常有一组通常有一组“隐含需求隐含需求”是不被提及的。是不被提及的。不符合的话软件质量也很难保证。不符合的话软件质量也很难保证。什么样的软件是什么样的软件是高质量的?高质量的?设计质量设计质量+符合符合质量?质量? 用户满意度用户满意度 = 合格产品合格产品+好的质量好的质量+在预算和进度表内交付在预算和进度表内交付质量(3)n软件质量特性:n功能性n包括软件产品提供的用来满足用

3、户需要的功能n可靠性n与软件维护其性能等级的能力相关n易用性n与使用软件所要花费的工作量相关n效率n与软件执行过程中所占用的物理资源相关n可维护性n与进行软件变更所需要的工作量相关n可移植性n与把软件转换到不同环境的能力相关质量(4)n软件质量特性功能性n适合性n软件是否符合用户需要n准确性n软件是否正确地实现了功能n互操作性n软件和其他系统的交互能力n功能符合性n软件和需求的匹配程度n安全性n系统访问控制质量(5)n软件质量特性可靠性n成熟度n软件中缺陷所造成的故障的频率n容错性n可恢复性n可靠性符合性质量(6)n软件质量特性易用性n可理解性n可学习性n可操作性n吸引性n可用性符合性质量(7

4、)n软件质量特性效率n时间特性n资源利用n有效性符合性质量(8)n软件质量特性可维护性n可分析性n确定故障产生原因的容易程度n可变性n灵活性n稳定性n对软件修改的可能性n可测试性n可维护性符合性质量(9)n软件质量特性可移植性n适应性n可安装性n共存性n软件和其他软件分享资源的能力n可替代性n可移植性符合性质量(10)质量特性质量特性含义含义可回答的问题可回答的问题正确性程序满足规格说明和完成用户业务目标的程度它做了该做的事吗?可靠性程序按要求的精确度实现其预定功能的程度它总能准确地工作吗?效率程序实现其功能所需要的计算资源量能在硬件上尽力工作吗?安全性软件或数据不受未授权人控制的程度它是安全

5、的吗?使用性学习、操作程序、准备输入输出的工作量它可用吗?维护性对运行的程序找到错误并排除错误的工作量它可调整吗?测试性为保证程序执行其规定的功能所需的测试工作量它可测试吗?灵活性修改程序所需工作量它可修改吗?移植性将程序从一个环境转移到另一环境的工作量可以在其他机器上使用吗?复用性程序可被用于其他应用问题的程度可以重复使用它的某些部分吗?共运行性一系统与另一系统协同运行所需的工作量能与其他系统连接吗?质量(11)n怎么能保证质量?n质量控制n质量控制是为了保证每一件工作产品都满足对它的需求而应用于整个开发周期中的一系列审查审查审查审查、评审评审评审评审和测试测试测试测试n质量控制在创建工作产

6、品的过程中包含一个反馈反馈反馈反馈循环n质量保证n质量保证由管理层的审计管理层的审计管理层的审计管理层的审计和报告功能报告功能报告功能报告功能构成未经跟踪的工作未经跟踪的工作等于没做!等于没做!v 正确地完成一件事情比解释你为正确地完成一件事情比解释你为什么将事情做错所花的时间要少什么将事情做错所花的时间要少v 人们会忘记你做一件工作有多快,人们会忘记你做一件工作有多快,但他们总会记得你做得有多好但他们总会记得你做得有多好质量成本(1)n什么是质量成本?n所有由质量工作或者进行与质量有关的活动所导致的成本n有哪些质量成本?n预防成本n鉴定成本n故障成本n 质量计划质量计划n 正式技术评审正式技

7、术评审n 测试设备测试设备n 培训培训n 过程内和过程间审查过程内和过程间审查n 设备校准和维护设备校准和维护n 测试测试n 内部故障成本内部故障成本n 外部故障成本外部故障成本n 内部故障成本内部故障成本n 返工返工n 修复修复n 故障模式分析故障模式分析n 外部故障成本外部故障成本n 解决客户的抱怨解决客户的抱怨n 退换产品退换产品n 求助电话支持求助电话支持n 保修工作保修工作质量成本(2)n既然质量管理需要成本,那么是不是越越晚晚进行质量管理就越省钱越省钱? IBM审查审查200000行代码总共用了行代码总共用了7053个小时,结果是预防了个小时,结果是预防了3112个个潜在的缺陷。雇

8、佣一名程序员的报酬潜在的缺陷。雇佣一名程序员的报酬为为40美元美元/小时。小时。 假设交付的产品中每假设交付的产品中每1000行代码中行代码中有有1个缺陷,此时改正每个缺陷成本的个缺陷,此时改正每个缺陷成本的时间为时间为25000美元。美元。预防总成本:预防总成本:282,120美元美元平均缺陷成本:平均缺陷成本:91美元美元维护总成本:维护总成本:5,000,000美元美元平均缺陷成本:平均缺陷成本:25,000美元美元差距差距:5000000/282120 = 17.7质量成本(3)n改正一个错误的相对成本n需求分析阶段:1倍n设计阶段:36倍n编码阶段:10倍n开发测试阶段:1540倍n

9、系统测试阶段:3070倍n实际操作阶段:401000倍软件缺陷缺陷(1)n几个概念:n缺陷(defect)n故障(bug)n错误(error)n缺陷、故障:软件交付之后后发现的质量问题n错误:软件交付之前前发现的质量问题软件缺陷缺陷(2)n几个结论:n设计活动引入的错误占软件过程中出现的所有错误(和最终的缺陷)数量的50%到65%n正式技术评审在发现设计错误方面最高达到75%的有效性软件缺陷缺陷(3)n缺陷放大模型:通过的错误错误检测有效性百分比放大的错误1:x新产生的错误软件缺陷缺陷(4)n例:假设:n概要设计阶段生成10个错误n详细设计阶段生成25个错误,同时会放大1/3的继承错误,放大系

10、数为1.5n编码和单元测试阶段生成25个错误,同时会放大2/3的继承错误,放大系数为3n在测试中可以发现并改正50%的错误,同时不引入新的错误n概要设计阶段错误的改正成本为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概要设计详细设计集成测试单元测试确认测试系统测试软件评审n技术工作需要评审n评审的目的是什么?n指出个人或小组生产的产品所

11、需进行的改进n确定产品中不需要或者不希望改进的部分n得到与没有进行评审相比更加一致、或者至少更可预测的技术工作的质量,从而使得技术工作更小易于管理既然技术评审这么好,既然技术评审这么好,是不是应该大量频繁是不是应该大量频繁的进行?的进行?为什么需要评审n在去除明显的错误时,审查是非常有效的方法n鼓励开发人员产生结构更好的、不需要加以说明的软件n能促进优秀编程实践的传播n能增进团队精神正式技术评审(FTR)(1)nFTR想要达到什么目标?n在软件的任何一种表示形式中发现功能、逻辑或实现的错误n证实经过评审的软件的确满足需求n保证软件的表示符合预定义的标准n得到以一种一致的方式开发的软件n使项目更

12、易于管理正式技术评审(2)n每个评审会议约束:n评审会议通常应该在35人之间进行n应该进行提前准备,但是每人占用工作时间应该少于2小时n评审会议时间应该不超过2小时正式技术评审(3)n每个FTR步骤:n确定参加评审的人员n人员培训n评审准备n分发评审材料,评审员审读评审材料n开评审会议n生成评审报告和问题列表正式技术评审(4)n评审结论:n工作产品可以不经修改而被接受n由于严重错误而否决工作产品n暂时接受工作产品n评审总结报告内容:n评审什么n由谁评审n发现和结论是什么正式技术评审(5)n正式技术评审的指导原则:n评审产品,而不是评审生产者n制定日程并且遵守日程n限制争论和辩驳n对各个问题都发

13、表见解,但是不要试图解决所有记录的问题n做书面笔记n限制参与者人数并坚持事先做准备n为每个可能要评审的工作产品建立一个检查表n为FTR分配资源和时间n对所有评审者进行有意义的培训n评审以前所做的评审Fagan评审的基本原理n对于所有主要的交付物都要进行审查n所有类型的缺陷都要记录不仅仅是逻辑或功能缺陷n审查应该由除非常高层领导外的各级同事来执行n采用预先规定的步骤进行审查n审查会议不能超过两个小时n审查是由经过特殊技术培训的协调员来领导的n为其他参与者定义不同的角色n使用检查表来协助缺陷查找过程n检查材料的理想速度是每小时100行n维护统计数据,以便监督审查过程的有效性项目质量管理软件质量保证

14、概述(1)n什么是软件质量保证?nSoftware Quality Assurance,简称简称SQAn一种应用于整个软件过程的庇护性活动n软件质量保证的范围?n软件产品质量产品质量产品质量产品质量n软件过程质量过程质量过程质量过程质量软件质量保证概述(2)n软件质量保证包含哪些内容?n一种质量管理方法n有效的软件工程技术n在整个软件过程中采用的正式技术评审n一种多层次的测试策略n对软件文档及其修改的控制n保证软件遵从软件开发标准的规程n度量和报告机制软件质量保证概述(3)n那些人应该为软件质量负责?n软件工程师n项目管理者n客户n销售人员n nSQASQA小组成员小组成员小组成员小组成员SQ

15、A小组充当客户在公司内部的代表小组充当客户在公司内部的代表SQA小组的职责是辅助软件工程小组小组的职责是辅助软件工程小组得到高质量的最终产品得到高质量的最终产品软件质量保证SQA活动(1)1.为项目准备SQA计划n计划里应标识出什么?n需要进行的评价n需要进行的审计和评审n项目可采用的标准n错误报告和跟踪的规程n由SQA小组产生的文档n为软件项目组提供的反馈数量软件质量保证SQA活动(2)2.参与开发该项目的软件过程描述3.评审各项软件工程活动、对其是否符合定义好的软件过程进行核实4.审计制定的软件工作产品、对其是否符合定义 好的软件过程中的相应部分进行核实5.确保软件工作及工作产品中的偏差已

16、被记录 在案并根据预定规程进行处理6.记录所有不符合的部分并报告给高级管理者7.协调变更的控制和管理8.帮助收集和分析软件度量信息软件测试(1)n软件的确认(Validation)和验证(Verification),简称V&Vn什么是确认?n在软件开发过程期间(针对单元)或结束(针对系统)时,单元或系统是否满足用户特定的需求?n什么是验证?n在一个给定的开发阶段中,单元或系统是否满足在此阶段开始时确定的条件?软件测试(2)n测试种类n单元测试n集成测试n确认测试n功能测试n回归测试n测试测试n验收测试软件测试(3)n测试方法n白盒测试n黑盒测试软件测试(4)n测试类型n功能测试n性能测试n算法测试n正向测试n逆向测试n边界测试n配置测试n负载测试软件测试(5)n测试计划n测试计划n测试用例n测试报告统计软件质量保证n什么是统计软件质量保证?n是质量的量化n统计软件质量保证有哪些步骤?n收集和分类软件缺陷信息n尝试对每个缺陷的形成原因进行追溯n使用Pareto原则,将这20%(重要少数)分离出来n一旦找到重要少数原因,就可以开始纠正引起缺陷的问题80%的缺陷可以追溯到所有可能原因中的20

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号