测试过程课件.ppt
测试过程,赵建华,软件测试的分类,按照测试过程或测试策略,软件测试可以分为:单元测试: 白盒测试集成测试: 灰盒测试确认测试: 系统测试: 黑盒测试,软件测试的策略方法,一个软件测试策略包括低层测试:验证源代码的正确性.高层测试:证实主要系统功能满足用户需求.,验证与确认(1)Verification and Validation,当前软件企业的问题:测试活动集中在开发的后期阶段.前期介入不够,且没有规范化,系统化的测试过程。测试设计和测试操作没有进行分离。缺乏质量保证活动。工作产品评估,可跟踪性分析,接口分析,关键性分析,,验证与确认(2)Verification and Validation,验证:Are we building the product right?指保证软件正确地实现了特定功能的一系列活动确认:Are we building the right product?指保证所生产的软件可以追溯到用户需求的一系列活动。,验证与确认(3)Verification and Validation,V&V任务分类可跟踪性分析评估接口分析关键性分析测试危害性分析风险分析其它,验证与确认(4)Verification and Validation,测试过程V模型,项目计划 SVVP(软件V&V计划),软件设计 集成测试设计 集成测试执行,软件编码和单元测试,需求分析 验收/系统测试设计 验收/系统测试执行,W模型,W模型是V模型的发展测试伴随整个软件的开发周期测试的对象包括程序,需求,功能和设计只要相应的对象开发完成,测试就可以进行。,需求,需求测试,功能,功能测试,设计,设计测试,编码,编码测试,构建,集成测试,集成,系统测试,安装,验收测试,测试过程规范(1),软件需求分析阶段(SDP优化),软件项目计划优化指定和确认系统测试计划,系统需求SVVP SDP,SVVP(优化)测试计划(系统),产品计划(软件计划),制定和确认SVVP,软件子系统需求SDP,SVVP任务报告阶段报告,概要设计,编写系统测试方案指定和确认集成测试计划,需求规格说明书系统测试计划,集成测试计划系统测试方案,测试过程规范(2),详细设计,需求规格说明书概要设计说明书系统测试计划,方案集成测试计划,单元测试计划集成测试方案系统测试用例系统测试规程,实现和单元测试阶段,需求规格说明书概要设计说明书详细设计说明书系统测试计划方案,用例和规程,集成测试计划和单元测试计划,单元测试方案单元测试报告集成测试用例与规程系统测试用例与规程,测试过程规范(3),集成测试阶段,单元测试报告集成测试计划集成测试方案集成测试用例与规程,集成测试报告,系统测试阶段,集成测试报告系统测试计划系统测试方案系统测试项系统测试用例与规程,系统预测试报告系统测试报告,制定SVVP(1),标准:参照IEEE Std 1012-1986标准目标:描述软件V&V工作的目的,目标和范围,必须指明该V&V工作所覆盖到的软件项目,具体的软件过程以及产品。,制定SVVP(2),概要:对V&V执行过程中涉及到的组织,进度,软件集成级别分类,资源,职责,工具,技术和方法进行概括性的描述。组织指软件V&V执行过程中的组织结构及结构间的关系,以及所需要的组织独立程度。同时指出V&V过程和其他过程之间的关系。,制定SVVP(3),主计划描述项目周期,里程碑和目标以及对所有V&V任务的规划软件完整性级别描述已经达成一致的软件完整性级别分类标准,以及按照这个标准制定的相应类别和模块间的对应关系。,制定SVVP(4),资源汇总描述人力,设备,工具,资金和特殊的过程需求。职责将V&V分配到组织,并明确其职责工具,技术和方法描述在文档,硬件和软件V&V中使用的工具,技术,方法,以及操作和测试环境。,V&V过程,V&V过程由多个活动组成。每个阶段的活动又由多个任务组成。在SVVP中,每个任务从以下几个方面进行刻画任务;方法和标准;输入/输出;时间安排;资源;风险和假设;角色和职责。,V&V过程-管理过程,管理过程的活动是指进行V&V管理,包括下面的任务指定SVVP基线变更评估V&V的管理评审管理的技术评审支持与组织或支撑过程的接口,V&V过程-获取过程,获取过程的活动是获取V&V支持规划V&V工作范围计划V&V工作与供应商的接口系统需求评审,V&V过程-供应过程,供应过程的活动是计划V&V计划V&V工作与供应商的接口合同验证,V&V过程-开发过程(1),开发过程的活动包括(1,2)概念V&V活动,任务包括:概念文档评估,关键性分析,软件/硬件/用户需求分配分析,可跟踪性分析,危害性分析,风险分析。需求V&V活动,任务包括:可跟踪性分析,软件需求评估,接口分析,关键性分析,系统V&V测试计划的生成/验证,配置评估管理,危害性分析和风险分析。,V&V过程-开发过程(2),开发过程的活动包括(3,4)设计V&V活动,任务包括:可跟踪性分析,软件设计评估,接口分析,关键性分析,集成V&V测试计划的生成/验证,单元V&V测试计划的生成/验证,V&V测试方案的生成与验证,危害性分析,风险分析。实现V&V活动,任务包括:可跟踪性分析,源代码和源代码文档评估,接口分析,关键性分析,V&V测试用例生成,V&V测试规程生成/验证,单元测试执行/验证,危害性分析,风险分析。,V&V过程-开发过程(3),开发过程的活动包括(5,6)测试V&V活动,任务包括:可跟踪性分析,验收V&V测试规程生成/验证,集成V&V测试执行/验证,系统V&V测试执行/验证,验收V&V测试执行/验证,危害性分析,风险分析。安装和检验V&V活动,任务包括:安装配置审计,安装检验,危害性分析,风险分析,V&V最终报告生成。,V&V过程-操作过程,维护过程,操作过程包括如下任务:新约束评估,更改建议评估,操作过程评估,危害性分析,风险分析。维护过程包括如下任务:SVVP修订,更改建议评估,异常评估,关键性分析,移植评估,退役评估,危害性分析,风险分析和任务重复。,V&V报告需求,V&V报告包括异常报告任务报告V&V活动总结报告最终报告,V&V管理需求,描述了以下内容:异常评估:异常决议和报告,任务重复策略:当输入或任务发生变化,哪些任务应该被重新执行。偏差策略:当计划执行出现偏差时的解决办法。控制过程:描述如何对V&V结果进行配置,保护和存储。标准,实践和约定。,V&V文档需求,定义相关文档的目的,内容和格式等测试计划测试方案测试用例测试规程测试报告,系统测试过程,系统测试过程包含在需求分析,概要设计,详细设计,编码实现和单元测试,系统测试中需求分析:制定和确认系统测试计划,得到系统测试计划概要设计:编写系统测试方案,得到系统测试方案。详细设计:编写系统测试用例,规程,编写系统预测试项,得到系统(预)测试用例,系统测试规程。实现和单元测试:编写系统测试用例,规程,得到系统测试用例和系统测试规程。系统测试执行:执行系统预测试,转系统测试,执行系统测试。得到系统测试报告和预测试报告。,系统测试过程与软件开发各阶段,需求分析阶段,概要设计阶段,详细设计,编码,单元测试阶段,系统测试阶段,系统测试计划,系统测试设计,系统测试实现,系统测试执行,各种人员的作用(1),系统分析设计人员提出系统测试需求,进行测试需求跟踪,进行软件系统可测性分析,确定系统测试的对象范围和方法。软件开发人员(计划阶段)提供SDP,参与系统测试计划的制定和评审;(设计实现阶段)提供软件功能需求规格,需求分析,测试建议,响应系统测试需求,参与系统测试方案的评审;(执行阶段)跟踪解决软件测试人员的缺陷报告,参与系统测试报告的评审。,各种人员的作用(2),软件测试人员(计划阶段)制定系统测试计划并组织评审;(设计实现阶段)制定软件系统测试方案并组织评审;(执行阶段)执行系统测试,反馈并跟踪缺陷问题报告单,完成系统测试报告并组织评审,输出测试案例总结等文档。配置管理人员对系统测试文档及测试代码等相关配置项进行配置管理。QA人员负责系统测试过程质量保证,参与相关评审,对过程进行审计。,软件系统测试计划阶段,进行的前提条件软件项目计划的软件开发计划SDP完成,软件测试计划SVVP完成。输入软件开发计划SDP,软件测试计划SVVP,软件系统需求规格说明书输出软件系统测试计划,软件系统测试设计阶段,前提条件需求分析完成,建立了需求基线。输入软件测试计划SVVP,软件概要设计说明书,软件系统测试计划输出软件系统测试方案,软件系统预测试项,软件系统测试实现阶段,前提条件软件系统测试方案完成输入软件系统需求规格说明书 ,软件概要设计说明书, 软件详细设计说明书,软件系统测试方案输出软件系统测试用例,软件系统测试规程,软件系统测试代码及相关设计文档,软件系统测试工具以及相关设计文档,使用说明。,软件系统测试执行阶段,前提条件集成测试完成输入软件系统测试方案,软件系统测试用例,软件系统测试规程,软件集成测试报告输出软件系统预测试报告以及转系统测试评审表,系统测试报告以及软件系统测试报告评审表,缺陷报告,跟踪和解决记录。,集成测试过程,集成测试包含在软件开发的概要设计,详细设计,编码实现和单元测试,集成测试中概要设计阶段:制定和确认集成测试计划,得到集成测试计划详细设计:编写集成测试方案,得到集成测试方案。编码实现和单元测试:编写集成测试用例,规程,得到集成测试用例/规程。集成测试阶段:执行集成测试,得到集成测试报告。,集成测试过程和软件开发各阶段,概要设计阶段,详细设计,编码,单元测试阶段,编码和单元测试阶段,集成测试计划,集成测试设计,集成测试实现,系统测试执行,集成测试中各种人员的作用(1),系统分析人员对需求与设计进行分析与跟踪,确定集成测试的对象,范围和方法。软件开发人员(计划阶段)提供软件设计概要文档,参与集成测试计划的制定和评审。(设计/实现阶段)提供软件功能需求规格,需求分析,测试建议,响应系统测试需求,配合测试代码设计与实现,参与软件集成测试方案的评审。(执行阶段)跟踪解决软件测试人员的缺陷问题报告单,参与集成测试报告的评审。,集成测试中各种人员的作用(2),软件测试人员(计划阶段)制定集成测试计划并组织评审。(设计/实现阶段)制定软件集成测试方案并组织评审,按照软件集成测试方案实现测试用例、测试代码、测试工具的设计,编写测试规程。(执行阶段)执行集成测试,反馈并跟踪缺陷问题报告单,完成集成测试报告并组织评审,输出测试案例、总结等文档。配置管理人员对集成测试文档以及测试代码等相关配置项进行配置管理。,集成测试中各种人员的作用(3),质量保证(QA)人员负责集成测试过程质量保证,参与相关评审,对过程进行审计。,集成测试计划阶段,进入前提完成软件需求分析说明书,完成软件系统测试计划输入软件需求分析说明书软件系统测试计划软件系统需求规格说明书软件概要设计说明书输出软件集成测试计划,集成测试设计阶段,进入前提完成软件概要设计,建立概要设计基线输入软件系统需求规格说明书软件概要说明书软件详细说明书软件集成测试计划输出软件集成测试方案,集成测试实现阶段,进入前提完成软件集成测试方案输入软件系统需求规格说明书软件概要说明书软件详细说明书软件集成测试方案输出软件集成测试用例软件集成测试规程软件集成测试代码以及相关设计文档,软件集成测试工具以及相关设计文档/使用说明。,集成测试执行阶段,进入前提完成软件实现和单元测试输入软件集成测试方案软件集成测试用例软件集成测试规程软件单元测试报告和软件调试记录。输出集成测试报告以及软件集成测试报告评审表,缺陷报告,跟踪和解决记录。,单元测试过程,单元测试过程包含在详细设计,编程实现和单元测试之中。详细设计:制定和确认单元测试计划,得到单元测试计划。编程实现和单元测试:编写单元测试方案(包括用例,规程)得到单元测试方案。执行单元测试,得到单元测试报告。,单元测试和软件开发各过程,详细设计,编码,单元测试阶段,编码和单元测试阶段,单元测试计划,单元测试设计单元测试实现单元测试执行,各种人员的作用(1),系统分析人员进行需求跟踪,确保系统需求的实现和更新。进行软件单元可测试性分析,确定单元测试的对象,范围和方法。软件开发人员负责编码和单元测试过程,完成单元测试计划,方案和报告。软件测试人员参与单元测试计划、方案和报告的评审,对单元测试的计划、设计和执行质量进行监控。根据实际情况,可选择参与由开发人员负责的代码检视、单元测试等活动。,各种人员的作用(2),配置管理人员对代码及单元测试文档进行配置管理。质量保证人员参与编码与单元测试评审,对编码和单元测试过程进行审计。,单元测试的输入输出,输入软件需求规格说明书软件详细设计说明书软件编码与单元测试工作任务书、用户文档、软件集成测试计划、软件集成测试方案输出单元测试计划 单元测试方案需求跟踪说明书或需求跟踪记录、代码静态检查记录、正规检查报告、问题记录、问题跟踪和解决记录、软件代码开发版本、单元测试报告和软件编码与单元测试任务总结报告,测试文档和check list,每个测试过程的基本文档测试计划:指明测试范围、方法、资源,以及相应测试活动的时间进度安排表的文档。测试方案:指明为完成软件或软件集成特性的测试而进行的设计测试方法的细节文档。测试用例:指明为完成一个测试项的测试输入,预期结果,测试执行条件等因素的文档。测试规程:指明执行测试时测试活动序列的文档。测试报告:指明执行测试结果的文档。,测试计划文档,测试计划文档应该包括如下内容目标概述组织形式角色及职责测试对象测试通过/失败的标准测试挂起的标准及恢复的必要条件测试任务安排应交付的测试工作产品工作量估计,测试计划文档内容(1),目标表示该测试计划所应该达到的目标概述:包括项目背景:如项目的主要功能特征,体系结构,简要历史等范围:指明该计划的使用对象,范围组织形式表示测试计划执行过程中的组织结构及之间的关系,以及所需要的组织的独立程度。同时指出测试过程与其他过程(开发,管理,)之间的关系。还包括沟通渠道等,测试计划文档内容(2),角色与职责定义角色及其职责,在每个角色与测试任务之间建立关联。测试对象列出所有将被作为测试目标的测试项(功能需求,非功能需求),测试计划文档内容(3),测试通过/失败的标准指明了判断/确认测试何时结束,以及所测试的应用程序的质量。可以直接陈述,也可以引用其他的文档。至少应该说明:什么将被测试?度量尺度是如何建立的?使用了哪些标准对度量进行评价?测试挂起的标准以及恢复的必要条件指明挂起全部或部分测试项的标准,并指明恢复测试的标准及其必须重复的测试活动。,测试计划文档内容(4),测试任务安排明确测试任务。对于每个任务说明:任务方法和标准输入/输出时间安排资源风险和假设角色和职责,测试计划文档内容(5),应交付的测试工作产品指明应该交付的文档,测试代码及测试工具,一般包括测试计划,测试方案,测试用例,测试规程,测试日志,测试事故报告,测试总结报告,测试输入以及测试输出,测试工具。工作量估计给出前面定义任务的人力需求及总计。,测试方案文档,包括如下内容概述被测对象应测试的特性不被测试的特性测试设计综述测试模型测试需求测试设计,测试方案文档内容(1),概述概述被测试对象和特性,简要描述被测对象的需求要素、测试设计准则,以及测试对象的历史。被测对象确定被测对象,包括其版本/修订级别,并说明软件的承载媒介及其对测试的影响。应测试的特性确定应测试的所有特性和特性组合。,测试方案文档内容(2),测试设计综述为每一组重要的特性或特性组合制定一个可以保证这些特性被足够地测试的途径;概要指出用于该组特性测试的测试活动、技术、工具,包括要用到的专门技术、用于分析测试结果的方法等在此文档中确定。,测试方案文档内容(3),测试模型从测试组网图、结构/对象关系图两个描述层测分析被测对象的外部需求环境和内部结构关系。给出本测试方案的测试需求和测试着眼点。明确本方案的测试原理和操作流程。为测试用例的设计和测试操作过程提供指导。,测试方案文档内容(4),测试模型测试组网图结构/对象关系图:描述被测试对象与相关实体之间的结构/对象关系图。测试原理:描述本阶段测试实现的工作原理和基本思路,指出用于测试的测试活动、技术、工具,包括要用到的专门技术。,测试方案文档内容(5),测试需求根据本阶段的测试目标,从不同角度明确本测试阶段的各种需求因素,包括:环境需求,被测试对象需求,测试工具需求,测试代码需求,测试数据准备等。确保需求的可跟踪性,保证对软件需求的跟踪和覆盖。系统测试需求来源于软件需求规格说明等集成测试需求和单元测试需求和软件概要设计以及详细设计形成对应关系。,测试方案文档内容(6),测试需求包括:环境需求: 指出必需的和希望的测试仪器,设备,工具需求和其他需求。被测对象需求: 对被测对象以及相关对象作出特殊要求:比如版本要求,借口协议要求。测试工具需求: 如果采用自动化测试,需要什么样的工具(包括自主开发,采购,二次开发等)。测试代码需求: 如需要被测兑现个插装测试代码,进行可测试性设计,需要列出:测试程序,测试接口的需求。其它需求:,测试方案文档内容(7),测试设计(1)此部分描述测试各个阶段需要运用的测试要素:测试用例,测试工具,测试代码的设计思路和设计准则。对于测试工具/测试代码的设计应该有另外的文档,在这个部分引用。对于每一组重要的特性,指定一个可以保证充分测试的途径。测试设计的描述应该能够用于确定主要的测试任务和估计每一个任务的时间需要。,测试方案文档内容(7),测试设计(2)确定测试完备性的最低限度,以及判断是否完备的技术手段。确定额外的完成准则。用于跟踪需求修改的技术手段也应该指定。,测试方案文档内容(8),测试设计(3)测试工具设计:描述将要采用的测试工具的设计要点,设计思路。测试代码设计:描述将要插装的测试代码的设计要点,设计思路。测试规程设计:描述测试用例操作序列的测试过程设计,状态转移图等。测试用例设计:参见测试用例文档。,测试用例文档(1),测试用例清单,测试用例文档(2),测试用例列表,测试用例文档(3),测试用例列表解释测试项目:指明并简单描述本测试用例是用来测试那些软件项目,软件子项目或者软件特性。用例编号:对该测试用例分配唯一的标志编号。用例级别:表明该用例的重要程度。(如果该用例没有通过的话,软件质量受到的影响。,测试用例文档(4),测试用例级别解释:1级:基本。用例涉及系统的基本功能,作为版本通过准则。项目如果不能通过这样的案例,需要考虑重新提交版本。2级:重要。用例涉及单个版本特性。如果这个版本通不过,可以作为重要或者一般问题提交报告。3级:详细。用例反应的是某个单项功能的某个细节方面。比如:有关性能,极限,用户界面,4级:生僻。对应于比较生僻的预置条件和数据设置。对系统质量的影响不大。,测试用例文档(5),输入值列出执行本测试用例所需要的具体的输入值。可能的表示方式包括:直接输入;指明输入范围;引用常量表或事务文件;指明相关数据库;预期输出值描述被测项目或被测特性所希望或要求达到的输出或指标。如有需要,也要列出描述预期输出数据的允许误差范围。对于复杂的数据,如数据库,也需要相应的描述。,测试用例文档(6),实测结果在测试执行的时候填写,指明该测试用例是否通过。若否,需要列出实际测试时的测试输出值。备注必要时,需要填写:特殊环境需求,特殊测试步骤要求,相关测试用例等信息。,测试用例文档(7),特殊环境要求包括:硬件需求,软件需求,其他需求。特殊测试步骤要求:指明执行本测试用例对相应的测试规程的任何特别的限制或要求。比如:初始化要求,人为干预,人观测和判断的步骤,特殊的恢复步骤等。相关测试用例列出必须先于本测试用例执行的测试用例。指明本用例和它们之间的依赖关系。,测试规程文档,测试规程文档指明执行测试时测试活动序列的文档。测试规程包含如下内容:测试规程清单测试规程列表,测试规程文档内容(1),测试规程清单,测试规程文档内容(2),测试规程列表,测试规程文档内容(3),测试规程列表项目解释:测试规程编号:该测试规程唯一的编号标识测试项目:指明并简单描述本测试规程是用来测试那些软件项目、子项目、或软件特性的。测试目的:描述本规程的目的。如必要,列出所参考的被测试软件项目的相关文档的章节。,测试规程文档内容(3),相关测试用例:列出本测试规程执行的所有测试用例。特殊需求:指出执行本测试规程必须的特殊要求。对人,环境的要求。测试步骤,参考如下:日志准备;准备;开始;进程;测量;挂起;重新开始;停止;恢复;异常事件处理。实测结果:指明实际测试时本规程是否通过,在测试执行时填写。,测试报告文档,测试报告文档是执行测试阶段的,指明执行测试结果的文档。测试报告文档包括如下内容。概述测试时间,地点以及人员环境描述总结和评价问题报告,测试报告文档内容(1),概述说明本报告时那个测试活动的总结,指明测试活动以及的测试计划,测试方案,测试用例,并指明被测试对象及其版本/修订级别。测试时间,地点,人员环境描述描述软件运行的设置环境。,测试报告文档内容(2),总结和评价,包括以下内容:测试结果统计:对本次测试的项目进行统计,包括总共通过多少项,失败多少项,部分通过多少项等信息。测试评估:对测试对象以及测试活动分别给出总结性的评估,包括对稳定性,测试充分性,以及风险性等进行评估。测试总结和改进建议:总结本次测试活动的经验教训,资源消耗等。提出对测试设计和操作的改进建议。,测试报告文档内容(3),问题报告,包括问题统计和问题列表。问题统计:问题报告:包括:问题号,问题简述,问题描述,问题级别,问题分析与对策,避免措施,备注。,测试报告文档内容(4),问题报告单解释问题号:问题报告单号,唯一的标号。问题简述:对问题的简短概要描述。问题描述:给出意外事件的描述,包括: 环境及设置.版本配置情况,输入,测试步骤,期望的结果,实际结果,重复尝试,问题级别:致命,严重,一般,注意。问题分析与对策:针对此问题提出影响程度分析、应对策略等。避免措施:针对此问题提出的预防策略。,