测试过程软件测试的分类•按照测试过程或测试策略,软件测试可以分为:–单元测试:白盒测试–集成测试:灰盒测试–确认测试:–系统测试:黑盒测试软件测试的策略方法•一个软件测试策略包括–低层测试:验证源代码的正确性.–高层测试:证实主要系统功能满足用户需求.验证与确认(1)VerificationandValidation•当前软件企业的问题:–测试活动集中在开发的后期阶段.前期介入不够,且没有规范化,系统化的测试过程。–测试设计和测试操作没有进行分离。–缺乏质量保证活动。•工作产品评估,可跟踪性分析,接口分析,关键性分析,…验证与确认(2)VerificationandValidation•验证:Arewebuildingtheproductright?–指保证软件正确地实现了特定功能的一系列活动•确认:Arewebuildingtherightproduct?–指保证所生产的软件可以追溯到用户需求的一系列活动。验证与确认(3)VerificationandValidation•V&V任务分类–可跟踪性分析–评估–接口分析–关键性分析–测试–危害性分析–风险分析–其它验证与确认(4)VerificationandValidation•测试过程V模型项目计划SVVP(软件V&V计划)软件设计集成测试设计集成测试执行软件编码和单元测试需求分析验收/系统测试设计验收/系统测试执行W模型•W模型是V模型的发展–测试伴随整个软件的开发周期–测试的对象包括程序,需求,功能和设计–只要相应的对象开发完成,测试就可以进行。需求需求测试功能功能测试设计设计测试编码编码测试构建集成测试集成系统测试安装验收测试测试过程规范(1)软件需求分析阶段(SDP优化)•软件项目计划优化•指定和确认系统测试计划•系统需求•SVVPSDP•SVVP(优化)•测试计划(系统)产品计划(软件计划)•制定和确认SVVP•软件子系统需求•SDP•SVVP•任务报告•阶段报告概要设计•编写系统测试方案•指定和确认集成测试计划•需求规格说明书•系统测试计划•集成测试计划•系统测试方案测试过程规范(2)详细设计•需求规格说明书•概要设计说明书•系统测试计划,方案•集成测试计划•单元测试计划•集成测试方案•系统测试用例•系统测试规程实现和单元测试阶段•需求规格说明书•概要设计说明书•详细设计说明书•系统测试计划•方案,用例和规程,•集成测试计划和单元测试计划•单元测试方案•单元测试报告•集成测试用例与规程•系统测试用例与规程测试过程规范(3)集成测试阶段•单元测试报告•集成测试计划•集成测试方案•集成测试用例与规程•集成测试报告系统测试阶段•集成测试报告•系统测试计划•系统测试方案•系统测试项•系统测试用例与规程•系统预测试报告•系统测试报告制定SVVP(1)•标准:–参照IEEEStd1012-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)人员–负责集成测试过程质量保证,参与相关评审,对过程进行审计。集成测试计划阶段•进入前提–完成软件需求分析说明书,完成软件系统测试计划•输入–《软件需求分析说明书》《软件系统测试计划》《软件系统需求规格说明书》《软件概要设计说明书》•输出–《软件集成测试计划》集成测试设计阶段•进入前提–完成软件概要设计,建立概要设计基线•输入–《软件系统需求规格说明书》《软件概要说明书》《软件详细说明书》《软件集成测试计划》•输出–《软件集成测试方案》集成测试实现阶段•进入前提–完成软件集成测试方案•输入–《软件系统需求规格说明书》《软件概要说明书》《软件详细说明书》《软件集成测试方案》•输出–《软件集成测试用例》《软件集成测试规程》软件集成测试代码以及相关设计文档,软件集成测试工具以及相关设计文档/使用说明。集成测试执行阶段•进入前提–完成软件实现和单元测试•输入–《软件集成测试方案》《软件集成测试用例》《软件集成测试规程》《软件单元测试报告〉和软件调试记录。•输出–《集成测试报告》以及软件集成测试报告评审表,缺陷报告,跟踪和解决记录。单元测试过程•单元测试过程包含在详细设计,编程实现和单元测试之中。–详