软件质量保证与测试工程硕士.ppt
《软件质量保证与测试工程硕士.ppt》由会员分享,可在线阅读,更多相关《软件质量保证与测试工程硕士.ppt(462页珍藏版)》请在三一办公上搜索。
1、1,软件测试,内容,前言第一章 软件质量保证第二章 软件测试概述第三章 测试人员的数学知识第四章 软件测试技术第五章 软件测试过程第六章 软件测试管理体系,前言-内容,课程的由来软件危机软件工程软件质量保证软件测试课程的介绍目标内容形式和要求参考书目,前言-课程由来,软件危机(1960s)根源:硬件越来越复杂,功能越来越强大(摩尔定律)对软件在应用领域和规模上的期望越来越高软件的发展速度落后于硬件的发展速度真实世界与计算机世界的映射靠人来生产多人开发,前言-课程由来,软件危机(1960s)表现:软件质量不高、超出预算、项目延迟根源:软件系统复杂性提高、多人合作解决:软件工程与软件相关的人员项目
2、组用户和股东计算机系统设计技术控制复杂:人的思维极限抽象/建模分解重用:质量和效率语言与开发包OO,前言-课程由来,软件工程目标:解决沟通和集成问题策略:控制错误错误缺陷/Bug/Defect/Error狭义:软件定义、设计、实现、打包/部署、使用过程中出现的与明确的需求不一致:不能正确完成任务、完成多余的任务广义:还包括:改善产品的建议;与用户隐含的需求不一致,前言-课程由来,软件工程方法:预防错误:规范化流程、职责、角色、模式:RUP(Rational Unified Process)、CMM/CMMI、Pattern表达方式:UML、Pattern文档化迭代与体系结构纠正错误:测试调试减
3、少错误损失培训,前言-课程由来,SQA:软件质量保证过程改进:预防错误规范化:流程文档化软件测试:发现错误错误发现的越早,解决的代价越小,前言-课程由来,SQA涉及的工作岗位过程改进工程师过程改进测试工程师软件测试开发工程师软件测试软件调试测试经理测试流程管理测试度量,前言-内容,课程的由来软件危机软件工程软件质量保证软件测试课程的介绍目标内容形式和要求参考书目,前言-课程介绍,目标学习质量保证的基本概念和理论学习软件测试的基本概念和理论掌握白盒测试/黑盒测试技术掌握单元测试/集成测试/系统测试技术掌握测试流程管理和测试度量技术掌握测试工具和测试流程管理工具了解测试相关工作的岗位要求和职业素质
4、要求了解测试行业的现状和技术发展趋势,前言-课程介绍,内容软件质量保证方法和软件测试概念开发工程师需要掌握的静态测试/白盒测试/黑盒测试技术、单元测试/集成测试要求测试度量方法测试工具职业素质要求,前言-课程介绍,内容测试工程师需要掌握的黑盒测试技术、集成测试/系统测试要求攻击式软件测试测试度量方法测试工具职业素质要求测试经理需要掌握的测试流程管理测试团队组织和测试度量测试流程管理工具和缺陷跟踪工具职业素质要求,前言-课程介绍,形式和要求学习前的要求:掌握软件工程基本概念掌握软件开发方法、高级程序设计语言和数据库相关知识了解Windows平台开发学习方式:课堂讲解上机实践(浪潮通软ERP或者自
5、己开发计算器程序)课堂讨论或者课堂练习 成绩评定方法:期末笔试占总成绩的60%实践和课堂讨论(课堂练习)占总成绩的40%,前言-课程介绍,参考书目软件测试基础Paul Ammann,Jeff Offutt,2010,机械工业出版社软件测试案例教程吕云翔,王洋等,2011,机械工业出版社实用软件测试指南马良荔,2003,电子工业出版社,前言-其他事宜,请班长留联系方式请留班级公共邮箱,17,第一章 软件质量保证,第一章 内容,1.1 软件质量1.2 软件质量保证:SQA1.2.1 SQA目标1.2.2 SQA模型1.2.2.1 ISO90011.2.2.2 CMMI1.3 SQA支持工具,1.1
6、 软件质量,什么是软件质量ANSI/IEEE Std 729-1983定义软件质量为“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。M.J.Fisher 定义软件质量为“所有描述计算机软件优秀程度的特性的组合”。,1.1 软件质量,高质量的软件,能够按照预期的时间和成本提交给用户,并能够按照预期要求正确工作的软件ScopeTimeCost,1.1 软件质量,为什么提出软件质量软件质量不高是导致软件危机的根本原因进度延误、预算超支项目失败、项目终止软件质量高可以降低总成本软件维护成本高质量的软件可以降低维护成本,并延长软件的生命期,从而降低总成本软件失效成本高质量的软件可以降低
7、软件失效导致的成本损失,从而降低总成本,怎样提高软件质量目标优化软件开发过程减少软件中的bug方法防止在软件中引入错误 通过检测找出软件中的错误,并解决这种错误,1.1 软件质量,1.2 软件质量保证:SQA,什么是SQASoftware Quality Assurance是软件工程领域中的一部分为了确保软件开发过程和结果符合预期的要求,而建立的一系列规程和计划,以及依照规程和计划采取的一系列活动及其结果评价软件开发过程是按照计划和规范实施的软件开发结果包括完整的软件和文档,并且符合可预期的目标和检验标准,1.2.1 SQA目标,SQA总目标减少并纠正实际的软件开发过程和软件开发结果与预期的软
8、件开发过程和软件开发结果的不符合情况SQA方法通过在软件开发周期中尽可能早地预期或检测到不符合情况(错误),来防止错误的发生,并减少错误纠正的成本错误发现得越早,造成的损失越小,修改的代价也越小,1.2.1 SQA目标,软件开发不同阶段:需求分析:Requirements Analysis 规格定义:Software Specifications设计:Design编码:Coding测试:Testing维护:Maintenance,1.2.1 SQA目标,需求分析:Requirements Analysis 确保客户提出的要求是可行的确保客户了解自己提出的需求的含义,并且这个需求能够真正达到他们
9、的目标确保开发人员和客户对于需求没有误解或者误会确保按照需求实现的软件系统能够满足客户提出的要求,1.2.1 SQA目标,规格定义:Software Specifications:确保规格定义能够完全符合、支持和覆盖前面描述的系统需求可以采用建立需求跟踪文档和需求实现矩阵的方式确保规格定义满足系统需求的性能、可维护性、灵活性的要求确保规格定义是可以测试的,并且建立了测试策略确保建立了可行的、包含评审活动的开发进度表确保建立了正式的变更控制流程,1.2.1 SQA目标,设计:Design:确保建立了设计的描述标准,并且按照该标准进行设计确保设计变更被正确的跟踪、控制、文档化确保按照计划进行设计评
10、审确保设计按照评审准则评审通过并被正式批准之前,没有开始正式编码,1.2.1 SQA目标,编码:Coding:确保建立了编码规范、文档格式标准,并且按照该标准进行编码确保代码被正确地测试和集成,代码的修改符合变更控制和版本控制流程确保按照计划的进度编写代码确保按照进化的进度进行代码评审,1.2.1 SQA目标,测试:Testing:确保建立了测试计划,并按照测试计划进行测试确保测试计划覆盖了所有的系统规格定义和系统需求确保经过测试和调试,软件仍旧符合系统规格和需求定义,1.2.1 SQA目标,维护:Maintenance:确保代码和文档同步更新,保持一致确保建立了变更控制流程和版本控制流程,并
11、按照这些流程管理维护过程中的产品变化确保代码的更改仍旧符合编码规范、通过代码评审,并且不会造成垃圾代码或冗余代码,1.2.2 SQA模型,质量管理历史质量就是产品、过程、系统符合标准要求的能力质量是生产出来的,不是检测出来的质量存在于全部直接/间接相关的环节中Deming(美国质量管理专家戴明博士),日本的全面质量管理TQM预防为主第一次就把事情做好是最经济的质量管理的灵魂在于持续改进PDCA,1.2.2 SQA模型,软件质量管理相关标准和技术标准ISO9000族标准国际标准,ISO/TC176制订,适用于所有行业,其中9000-3针对软件开发行业SW-CMM/CMMI标准CMM:行业标准,C
12、MU-SEI制订和管理,针对软件开发行业CMMI:集成的CMMISO15504标准国际标准,试图结合ISO9000、CMM与软件工程概念项目管理技术项目:目标、起止时间、相关活动定义、计划、实施,1.2.2.1 ISO9001,ISO9000族标准一系列关于质量管理/质量保证/质量审核方面的国际标准,1983/1994/20009001/9002/9003/9004/9000-3是管理思想的精华,管理工作的指导原则,也是做事方式文档管理:写你要做的,做你所写的,记你所做的过程控制:PDCA-计划性及持续改进相关标准:QS9000等,1.2.2.1 ISO9001,原则原则1:以顾客为中心组织依
13、存于顾客。因此,组织应理解顾客当前和未来的需求,满足顾客要求并争取超越顾客期望原则2:领导作用领导将本组织的宗旨、方向和内部环境统一起来,并创造使员工能够充分参与实现组织目标的环境,1.2.2.1 ISO9001,原则原则3:全员参与各级人员是组织之本。只有他们的充分参与,才能使他们的才干为组织带来最大的收益原则4:过程方法将相关的资源和活动作为过程进行管理,重视输入和输出,可以更高效地得到期望的结果,1.2.2.1 ISO9001,原则原则5:管理的系统方法针对设定的目标,识别、理解并管理一个由相互关联的过程所组成的系统,有助于提高组织的有效性和效率原则6:持续改进持续改进是组织的一个永恒目
14、标,1.2.2.1 ISO9001,原则原则7:基于事实的决策方法对数据和信息的逻辑分析或直觉判断是有效决策的基础原则8:互利的供方关系通过互利的关系,增强组织及其供方创造价值的能力,1.2.2.1 ISO9001,在软件企业的实施案例原则:运用项目管理技术重视质量策划重视培训和工具支持框架:质量手册、规程文件、作业指导书开发管理、体系支持,1.2.2.1 ISO9001,在软件企业的实施案例角色分工,1.2.2.1 ISO9001,在软件企业的实施案例产品开发规程,1.2.2.1 ISO9001,在软件企业的实施案例定制项目开发规程,1.2.2.1 ISO9001,在软件企业的实施案例,体系
15、支持规程管理评审规程 质量体系文件控制规程 内部质量体系审核规程 纠正措施规程 预防措施规程配置管理规程 质量记录控制规程,产品度量规程过程度量规程采购规程配套软件产品控制规程 培训规程档案管理规定合同评审规程软件质量保证规程产品开发规程,1.2.2.1 ISO9001,在软件企业的实施案例,ISO9001是品质保证标准,对过程管理提出最低要求质量保证体系根据软件工程原理自行设计和维持,满足ISO9001要求质量策划根据项目自身特点,对质量体系进行剪裁和补充,1.2.2.2 CMMI,CMMI:Capability Maturity Model Integration,即能力成熟度模型集成 来
16、源于:美国卡内基梅隆大学的软件工程研究所(SEI)创立的CMM(Capability Maturity Model 软件能力成熟度模型),1.2.2.2 CMMI,目标为提高组织过程和管理产品开发、发布和维护能力提供保障。帮助组织客观评价自身能力成熟度和过程域能力,为过程改进建立优先级以及执行过程改进。,1.3 SQA支持工具,SQA实施要素规范规程、模板、指南文档、记录人员分工、接口、培训、检查技术知识管理、工具,1.3 SQA支持工具,支持工具自行开发厂商提供IBM Rational,49,第二章 软件测试概述,内容,2.1 软件测试定义及术语2.2 错误与缺陷的分类2.3 软件测试的目标
17、2.4 软件测试的特征2.5测试用例及管理工具,2.1 什么是软件测试,软件测试是为了发现错误而执行一个程序或系统的过程,2.1 软件测试的发展历史,20世纪50年代之前,没有系统的软件测试20世纪50年代-60年代,测试的重点是高级语言编写的系统,软件测试发展缓慢20世纪70年代以后,软件测试发展迅速,同时面临着危机现在,软件测试是一个基于软件开发整个生命周期的质量控制活动,2.1 国内软件行业的现状,处于起步阶段软件评测中心的出现,2.1 软件的生命周期,2.1 相关术语,软件故障:软件中的静态缺陷软件错误:不正确的内部状态,该状态是某个故障的表现软件失败:与需求或者其他期望行为的描述有关
18、的、外部的、不正确的行为,2.1相关术语,以看病为例解释上述术语:病人带着一些失败(症状)进入医生办公室,医生必须发现故障(症状的根源)。为了帮助诊断,医生制定一些测试来寻找异常的内部条件,比如高血压、心律不齐等,这些异常的内部条件相当于错误。,2.1相关术语,软件测试与医生诊疗有质的不同:软件中的故障是设计错误医疗问题与计算机硬件故障一样,经常是物理退化的结果,2.1相关术语,Public static int numZero(int x)/效果:统计x中0出现的次数 int count=0;for(int i=1;i x.length;i+)if(xi=0)count+;return co
19、unt;,考虑输入为2.7.0和0.7.2时,上述程序的表现,虽然有软件故障,但是第一个输入,软件并没有失败,2.1相关术语,上一页的例子说明,对于一个给定的故障,不是所有的输入都会“触发”故障来创建不正确的输出(失败)。要发现一个失败需要考虑下面3个条件:程序中包含故障的位置必须找到执行该位置后,程序的状态必须是不正确的受到影响的状态必须传播出来,引起改程序的某个输出是不正确的,2.1软件故障产生的原因,2.2 软件测试的目的,2.2软件测试的目的,软件测试是一个为了寻找缺陷而运行程序的过程一个好的测试用例是很可能找到至今为止尚未发现的缺陷的测试用例一个成功的测试是揭示了至今为止尚未发现缺陷
20、的测试软件测试的目标是设计这样的测试:既能系统的揭示不同类型的缺陷而且耗费最少的时间和最少的工作量,2.2软件测试的原则,测试能提高软件的质量,但是提高质量不能依赖测试确定预定的输出避免测试自己的程序彻底检查每一个测试结果对非法、非预期性输入的测试检查程序是否做了它不该做的事程序中存在错误的概率与已发现的错误数成正比保留测试用例,2.2软件测试中的误区,调试和测试是一样的测试组应该为保证质量负责过分依赖Beta测试把测试作为新员工的一个过渡工作把不合格的开发人员安排作测试关注测试的执行,忽略测试的设计,2.2软件测试中的误区(续),测试自动化是万能的测试时可以穷尽的测试是为了证明软件的正确性测
21、试是枯燥乏味,缺乏创造力的工作,2.2软件测试人员应具备的素质,探索精神故障排除能力不懈努力创造性追求完美判断准确老练稳重说服力,2.3 软件缺陷,软件未达到产品描述标明的功能/非功能要求软件出现了产品描述指明不会出现的错误软件功能超出了产品描述指明的功能软件未达到产品描述虽未指明但应达到的目标测试人员或者最终用户认为软件难以理解、不易使用、运行速度缓慢,2.3 缺陷分类,轻微 词语拼写错误中等 误导或重复信息使人不悦 被截断的名称影响使用 有些交易没有处理严重 丢失交易,2.3 缺陷分类(续),非常严重 不正确的交易处理极为严重 经常出现“非常严重”错误无法忍受 数据库破坏灾难性 系统停机容
22、易传染 扩展到其他系统停机,2.4 软件测试的特征,软件测试具有一定的风险软件缺陷的寄生虫性软件测试的杀虫剂现象软件测试的不修复原则Pareto原则,2.4完全测试程序是不可能的,输入量太大输出结果太多软件实现途径太多软件说明书没有客观标准,2.4软件测试是有风险的行为,2.4软件缺陷的寄生虫性,找到的缺陷越多,说明软件存在的缺陷越多原因:程序员的疲倦 程序员往往犯同样的错误 某些软件缺陷可能是大灾难的征兆,2.4软件测试的杀虫剂现象,软件测试越多,其免疫力越强方案:编写新的测试用例 对程序的不同部分进行测试,2.4软件测试的不修复原则,并非所有的软件缺陷都需要修复原因:没有足够的时间,项目进
23、度决定不算真正的缺陷,是一项功能修复风险太大,可能导致其它bug不值得修复,不常用的功能,不常出现的bug,可以躲过的,2.4 Pareto原则,2.5 什么是测试用例?,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。,2.5系统测试用例的好处(一),要使最终用户对软件感到满意,最有力的举措就是对最终用户的期望加以明确阐述,以便对这些期望进行核实并确认其有效性。测试用例反映了要核实的需求。,2.5系统测试用例的好处(二),对测试过程可以进行进行有效的监督,可以准确、有效的评估测试的工作量,2.5系统测试用例的好处(三),可以
24、对测试结果进行评估,并且对测试是否完成产生一个量化的结果,2.5系统测试用例的好处(四),可以在回归测试的过程中准确、快速的进行正确的回归,2.5系统测试用例的好处(五),测试用例的使用令软件测试的实施重点突出、目的明确,2.5系统测试用例的好处(六),在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。,2.5系统测试用例的好处(七),在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度、缩短项目周期,2.5系统测试用例的范围,用户的需求,包括用户提出的功能性需求、非功能性需求等系统测试用例需要考虑的问题:功能、易用性、性能、安全等,2.5测试用例的局限性,我
25、们不可能进行穷举测试,为了节省时间和资源、提高测试效率,必须要从数量极大的可用测试数据中精心挑选出具有代表性或特殊性的测试数据来进行测试。,2.5测试用例设计人员,测试用例应由测试设计员或专职测试工程师来制定,而不是普通的测试执行人员;应该让最有能力的人员来完成用例的设计,2.5测试用例要素,编号:唯一编号前置条件:说明测试路径重要级别:对后期的测试用例执行的考核提供一个标准输入:输入的条件期望输出:期望输出的结果实际输出:实际输出的结果是否正确:是/否执行人:测试用例执行人标志执行时间:测试用例执行的时间备注:其他说明文字,2.5 练习一,有两个有故障的程序,每个包含了一个以失败为结果的测试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 质量保证 测试 工程硕士

链接地址:https://www.31ppt.com/p-5637089.html