资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,#,/36,单击此处编辑母版标题样式,Version 1.0,测试计划与软件缺陷,串讲,2,/36,什么是软件,关于程序和软件的定义,软件(,software,)是计算机系统中与硬件(,hardware,)相互依存的另一部分,它是包括程序(,program,)、文档(,document,)的完整集合,3,/36,软件测试的定义,软件测试的概念,是为了发现错误而执行程序的过程。,应关心程序的效率和鲁棒性等因素。,检验软件是否满足规定的需求。,弄清预期与实际结果之间的差别。,备注:所谓,“,鲁棒性,”,,是英文,“,robust,”,的译音,指强壮、健壮的意思。软件的,“,鲁棒性,”,,是指系统在一定条件下维持某些性能的特性,简单地说,就是适应各种各样的变化的能力。鲁棒性越强,系统精确度就愈高,性能越好。,4,/36,软件测试的定义,定义,使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。,软件测试活动一般包含,制订测试计划,设计测试,实施测试,提交缺陷报告,测试总结(或者称测试评估),5,/36,软件测试的目的,确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明,确保产品满足性能和效率的要求,包括可用性,确保产品是健壮的和适应用户环境的,6,/36,测试和调试的区别,测 试,调 试,发现软件的错误(测试人员不负责修改错误),确定程序中错误的确切位置,对程序(设计,编码)进行修改,排除错误。,贯穿整个软件生命周期,主要在开发阶段,测试人员和程序员参与,程序员参与,7,/36,缺陷的识别,什么是缺陷,不符合设计要求,不满足用户确定需求,8,/36,缺陷的识别,判断缺陷的方法,通过参考文档(规格需求说明书、概要设计、详细设计等)来确认缺陷,通过了解软件产品的行业背景和行业相关软件来发现缺陷,通过沟通(与设计开发人员、需求分析人员、项目管理人员等)来确认和识别缺陷,9,/36,再现与优化缺陷,再现与优化缺陷的必要性,为什么要再现与优化缺陷,(,方法,P13-P14),关于软件中的,“,随机,”,出现的缺陷,如何处理,10,/36,怎样有效记录缺陷,保证重现缺陷,分析故障,使用最少步骤复现故障,包含所有重现缺陷的必要步骤,方便阅读,尽量简单,一个缺陷一个报告,注意自己的语气,值得注意的经验,(P17),11,/36,缺陷报告的用途,缺陷报告的用途是什么?,为什么要尽早的报告缺陷?,是不是所有的缺陷都会被修复?,用途,记录缺陷,缺陷分类,缺陷跟踪,12,/36,缺陷的分类,从哪些角度给缺陷分类?,按问题引出不同,按功能模块,按缺陷的严重程度(可由公司自己定义),影响进度的问题,死机,功能问题,界面问题,建议,按修复缺陷的优先级(可由公司自己定义),应立即修复的问题,在产品发布之前必须修复的问题,如果时间允许应该修复的问题,可以在发布版本中存在的问题,13,/36,缺陷报告的处理流程,14,/36,缺陷报告的处理流程,缺陷报告的分类,按处理状态分类,待确认的,新提交的,已分配的,问题未解决的,待返测的,待归档的,已归档的,按处理意见分类,已修改的,不是问题,无法修改,以后版本解决,保留,重复,无法重现,15,/36,使用,Bugzilla,缺陷跟踪系统,缺陷报告状态转换,(P32),16,/36,使用,Bugzilla,缺陷跟踪系统,使用介绍,平台,版本,报告优先级,Bug,状态,报告人,指定处理人,概述,邮件抄送列表,从属关系,附加描述,Bug,报告检索,17,/36,软件测试流程概述,什么是软件生命周期,软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析,软件设计,编码,测试,软件发布维护的过程,18,/36,软件测试流程概述,软件生命周期的瀑布模型,19,/36,软件测试流程概述,软件生命周期的螺旋模型,20,/36,软件测试流程概述,软件测试的生命周期,(P47),21,/36,软件测试流程,软件测试流程图,(需求阶段),22,/36,软件测试流程,软件测试流程图(设计编码阶段),23,/36,软件测试流程,软件测试流程图(集成、系统、验收),24,/36,软件测试流程,软件测试过程,(P73,确认测试阶段,),25,/36,软件测试的分类,-,按策略,黑盒测试与白盒测试,静态测试与动态测试,手工测试与自动测试,冒烟测试,回归测试,26,/36,软件测试的分类,-,常见测试方法,功能测试,性能测试,压力测试,负载测试,易用性测试,安装测试,界面测试,配置测试,文档测试,兼容性测试,安全性测试,恢复测试,27,/36,软件测试的原则,软件测试应尽早执行,并贯穿于整个软件生命周期,软件测试应追溯需求,测试应由第三方来构造,穷举测试是不可能的,要遵循,Good-enough,原则,必须确定预期输出(或结果),必须彻底检查每个测试结果,充分注意测试中的群集现象,其他值得注意的规律和经验,(P88),28,/36,关于评审,什么是评审,在正式的会议上将软件项目的成果(包括各阶段的文档、产生的代码等)提交给用户、客户或有关部门人员对软件产品进行评审和批准。其目的是找出可能影响软件产品质量、开发过程、维护工作的适用性和环境方面的设计缺陷,并采取补救措施,以及找出在性能、安全性和经济方面的可能的改进。,29,/36,软件测试与软件质量,软件测试与软件质量,软件系统的开发包括一系列生产活动,其中由人带来的错误因素非常多。错误可能出现在程序的最初,,其实目标可能是错误的或描述不完整,也可能在后期的设计和开发阶段,,因为人们不能完好无缺地工作和交流,软件开发过程中必须伴有质量保证活动。,软件测试是软件质量保证的重要手段,是规约、设计和编码的最终检查,30,/36,正确认识软件测试,软件测试不是软件开发过程中的一个阶段,31,/36,测试流程回顾,软件测试的生命周期(图例),32,/36,软件测试计划的基本结构,测试计划的简介,测试项目说明,需要测试的项目清单,测试手段和策略,项目通过或失败的标准,暂停和重新启动测试的标准,测试的可交付性,测试任务,环境的需求,职责,人员和培训需求,进度表,风险及偶然事故的预测,33,/36,软件的分类,按软件的技术特点划分,业务(,Business,)软件,管理信息系统(,MIS,),企业资源规划系统(,ERP,),决策支持系统(,DSS,),商业智能系统(,BI,),科技计算软件(图形计算),嵌入式(,Embedded,)软件,首先在宿主机(,HOST,)上用某种语言开发,经交叉编译后成为单片机的机器码程序,,“,烧入,”,单片机,称为嵌入式。,实时(,Real-time,)软件(火灾自动报警系统),个人计算机软件,人工智能软件,34,/36,关于单元测试,单元测试多采用白盒测试技术,首先要静态审查代码,对于动态单元测试的测试驱动,采用对话框方式获取、输出数据,采用文件(数据库)获取、输出数据,35,/36,桩模块和驱动模块,36,/36,关于集成测试,非增式集成方法,增式集成方法,自顶向下测试,自底向上测试,37,/36,软件质量评估,评估的方法,覆盖评测,基于需求的测试覆盖,测试覆盖(已执行的),Tx/RfT,成功的测试覆盖(已执行的),Ts/RfT,基于代码的测试覆盖,测试覆盖,Tc/Tiic,38,/36,软件质量评估,评估的方法,质量评测,缺陷报告,缺陷分布(密度)报告,缺陷状态与优先级,缺陷状态与严重性,缺陷龄期报告,缺陷趋势报告,39,/36,软件质量评估,评估的方法,质量评测,性能评测,动态监测,响应时间,/,吞吐量,百分位报告,比较报告,追踪报告,动态监测例子,响应时间,/,吞吐量的例子,40,/36,课堂提问,画出软件生产过程图(瀑布模型),画出软件测试,V,模型图,画出软件测试过程图,画出缺陷记录单模板,画出缺陷跟踪记录单模板,列出软件测试计划模板主要内容,41,/36,课堂提问,什么是冒烟测试,什么是回归测试,自动测试与手工测试有什么区别,画出软件测试生命周期流程图,画出集成、系统、验收测试阶段的测试工作流程图,测试的主要评测方法包括什么,对测试文档进行管理和维护应注意什么,
展开阅读全文