购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.7 基于标准的认知

软件测试被视为“验证(Verification)”和“有效性确认(Validation)”这两类活动构成的整体,缺一不可。如果只做到其中一项,测试是不完整的。

·“ 验证 ”是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性。验证过程提供证据表明软件相关产品与所有生命周期活动的要求相一致,即验证软件实现(即交付给客户的产品)是否达到了软件需求定义和设计目标。

·“ 有效性确认 ”是确认所开发的软件是否满足用户实际需求的活动。因为软件需求定义和设计可能就不对,上述一致性不能保证软件产品符合客户的实际需求,而且客户的需求也是在变化的,当需求定义是半年前确定的,这种变化的可能性就比较大。

对验证和确认有不同的解释。简单地说,单元测试、集成测试和系统测试都可以理解为“验证”,都是基于需求定义文档和设计规格说明书文档来进行验证;而验收测试则在用户现场、由用户共同参与进行,可以理解为“有效性确认”,因为之前的需求定义和设计都可能存在错误,研发团队没有正确理解用户的原意(用户的真实期望),仅仅根据需求定义文档和设计规格说明书文档来完成测试,并不能代表所实现的功能特性是用户真正想要的。而在验收测试中,用户参与进来,是可以确认所实现的功能特性是否是用户真正想要的。

另一种解释是根据图1-4所示的V模型,验证是架构设计评审、详细设计评审和代码评审/单元测试,分别验证架构设计是否和需求一致、详细设计是否和架构设计一致、代码是否和详细设计一致,用左边带箭头的粗虚线表示。而有效性确认则是集成测试、系统测试、验收测试,如中间带箭头的细虚线表示。

图1-4 软件研发的V模型

概念

· 单元测试 是对软件基本组成单元进行的测试,其测试对象是软件设计的最小单位——模块或组件,也可以包括类或函数。软件单元具有独立性,可以将它与系统/程序的其他部分隔离出来,从而完成测试。单元测试也是软件测试过程中最早期的测试活动,是软件的基础测试。

· 集成测试 是将已分别通过测试的单元按设计要求组合起来再进行的测试,以检查这些单元之间的接口是否存在问题。集成测试一般是一个逐渐加入单元进行测试的持续过程,直至所有单元被组合在一起,成功地构成完整的软件系统,从而完成集成测试的使命。

· 系统测试 是充分运行或模拟运行软件系统,以验证系统是否满足产品的质量需求。系统测试包含系统功能测试和系统非功能性测试,系统非功能性测试主要是指系统性能测试、容量测试、安全性测试、兼容性测试和可靠性测试等。系统功能测试和非功能性测试可以并行实施,但一般在基本功能已能正常运行后,才进行系统性能测试、兼容性测试、可靠性测试等。

· 验收测试 是在软件产品完成了系统测试之后、产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。验收测试一般会根据产品规格说明书或用户故事等各种需求定义,严格地、逐项检查产品,确保所开发的软件产品符合用户预期的各项要求,即验收测试是检验产品和产品规格说明书(包括软件开发的技术合同)的一致性,同时考虑用户的实际使用环境、数据和习惯等。验收测试的重要特征就是用户参与,或用户代表(如产品经理、Product Owner)参与。

· 回归测试 是由于软件修改或变更,对修改后的工作版本所有可能影响的范围进行测试。回归测试的目的是发现原来正常的功能特性出现新的问题——回归缺陷,从而确保原来正常的或符合要求的特性不受其他区域修改的影响。回归测试伴随着整个测试过程,在功能测试和系统测试、单元测试和集成测试中,一旦有变更或修正,都要进行相应的回归测试。 CCwvEwf+js4NrIXLfqoU88BgmXLGEJr2O6Pk6+XIB7FteX124SMp6r45lMzrYROK

点击中间区域
呼出菜单
上一章
目录
下一章
×