软件测试,在软件项目开发活动中为保证提交物质量符合要求而进行的一系列过程的集合。
软件测试生命周期(software testing lifecycle),指整个软件生命周期中的测试活动是如何完成的。例如,测试计划--测试设计--测试实现--测试执行,就是一个典型的软件测试生命周期。
软件测试生命周期中的各种活动可以串行,也可以并行。有的项目的测试活动非常简单,甚至只包括测试用例的设计与测试用例的执行。通常,一个项目采取的测试生命周期越复杂说明测试活越成熟。
软件系统测试生命周期,通常分为软件系统测试计划--软件系统测试设计--软件系统测试实现--软件系统测试执行,四个阶段。
软件测试阶段划分,也可以说是几种不同类型的软件测试,或者对软件的不同部分进行的测试,也是几种目的不同的测试或测试过程。
单元测试(Unit Testing) 以《详细设计说明书》LLD(low level design)为基准,验证软件基本组成单元被实现的正确性。主要测试单元内部的数据结构、逻辑控制、异常处理。测试评估基准主要是逻辑覆盖率
集成测试(Integration Testing) 以《概要设计说明书》HLD(high level design)为基准,验证软件模块与模块组成的子系统被实现的正确性。主要测试模块之间的接口数据传递以及模块组合后的子系统整体功能。测试评估基准主要是接口覆盖率。
系统测试(System Testing) 把软件系统与周边要素(人,硬件等)结合后,验证其是否正确实现了SRS(software requirements pecifacation)的测试过程。测试整个系统的需求符合度。测试评估基准主要是需求规格覆盖率。
回归测试(Regression Testing)验证缺陷是否得到了正确的修复,同时确保修复缺陷造成的系统变更没有引入新的缺陷。所以回归测试的标的是以上三种测试中对缺陷修复之后的部分及可能会因缺陷修复而被影响的部分。回归测试的策略:覆盖修改策略、指标达成策略、周边影响策略、完全重复策略。
验收测试 如果产品是针对特定用户开发的,需要进行一系列的验收测试,让用户验证软件产品是否满足要求。
α测试 用户在受控环境下(通常开发人员坐在用户旁,随时记录下错误和用户的使用情况)。目的主要是评价软件产品的功能、本地化、可用性、可靠性、性能等(FLURPS)。
β测试 一个或多个用户在实际使用环境下进行测试,这些用户是与公司签订了支持产品预发行合同的外部用户,他们愿意测试该产品,并愿意返回所有错误信息给开发者。
测试过程模型
规范系统的测试过程,是生产出高质量软件的基本保证。软件测试过程是有软件生命周期中一系列的测试过程组成。这些测试过程应有明确的过程要素,包括输入输出、入口及出口准则、角色、活动、评审、可管理和受控的工作产品、度量、书面规程、培训、合适的工具。
软件测试生命周期(software testing lifecycle),指整个软件生命周期中的测试活动是如何完成的。例如,测试计划--测试设计--测试实现--测试执行,就是一个典型的软件测试生命周期。
软件测试生命周期中的各种活动可以串行,也可以并行。有的项目的测试活动非常简单,甚至只包括测试用例的设计与测试用例的执行。通常,一个项目采取的测试生命周期越复杂说明测试活越成熟。
软件系统测试生命周期,通常分为软件系统测试计划--软件系统测试设计--软件系统测试实现--软件系统测试执行,四个阶段。
软件测试阶段划分,也可以说是几种不同类型的软件测试,或者对软件的不同部分进行的测试,也是几种目的不同的测试或测试过程。
单元测试(Unit Testing) 以《详细设计说明书》LLD(low level design)为基准,验证软件基本组成单元被实现的正确性。主要测试单元内部的数据结构、逻辑控制、异常处理。测试评估基准主要是逻辑覆盖率
集成测试(Integration Testing) 以《概要设计说明书》HLD(high level design)为基准,验证软件模块与模块组成的子系统被实现的正确性。主要测试模块之间的接口数据传递以及模块组合后的子系统整体功能。测试评估基准主要是接口覆盖率。
系统测试(System Testing) 把软件系统与周边要素(人,硬件等)结合后,验证其是否正确实现了SRS(software requirements pecifacation)的测试过程。测试整个系统的需求符合度。测试评估基准主要是需求规格覆盖率。
回归测试(Regression Testing)验证缺陷是否得到了正确的修复,同时确保修复缺陷造成的系统变更没有引入新的缺陷。所以回归测试的标的是以上三种测试中对缺陷修复之后的部分及可能会因缺陷修复而被影响的部分。回归测试的策略:覆盖修改策略、指标达成策略、周边影响策略、完全重复策略。
验收测试 如果产品是针对特定用户开发的,需要进行一系列的验收测试,让用户验证软件产品是否满足要求。
α测试 用户在受控环境下(通常开发人员坐在用户旁,随时记录下错误和用户的使用情况)。目的主要是评价软件产品的功能、本地化、可用性、可靠性、性能等(FLURPS)。
β测试 一个或多个用户在实际使用环境下进行测试,这些用户是与公司签订了支持产品预发行合同的外部用户,他们愿意测试该产品,并愿意返回所有错误信息给开发者。
测试过程模型
规范系统的测试过程,是生产出高质量软件的基本保证。软件测试过程是有软件生命周期中一系列的测试过程组成。这些测试过程应有明确的过程要素,包括输入输出、入口及出口准则、角色、活动、评审、可管理和受控的工作产品、度量、书面规程、培训、合适的工具。
目前,v&v模型是一种使用比较广泛的测试过程模型。v&v代表validation与verification,即确认(validation)与验证(verification)。
确认 指保证所生产的软件可以追溯到用户需求的一系列活动。
验证 指保证软件正确的实现了特定功能的一系列活动。验证提供证据,表明软件及相关产品与所有生命周期活动的要求(正确性、完整性、一致性、准确性)相一致;验证是否满足生命周期过程中的标准,时间和约定;判断每一个生命周期是否已经完成,以及为是否可以启动其他生命周期活动建立一个准则。