对于软件测试,我们可以从不同的角度加以分类。软件测试可以按测试阶段分类(也称按测试层次分类),也可以按是否覆盖源代码分类,还可以按是否运行来分类。除此之外,还有一些其他分类。
软件测试分类
按测试阶段分类
单元测试
单元测试(Unit Testing)是在编码阶段针对每个程序单元而进行的测试,其测试的对象是程序系统中的最小单元——类、函数、模块或组件等。
主要使用白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件已实现的功能与定义的功能是否一致,以及编码中是否存在错误。
集成测试
集成测试(Integration Testing)也称为组装测试、联合测试等,是在单元测试的基础上,按照设计要求不断进行集成而进行的相应测试,目的是发现单元之间的接口问题,如接口参数类型不匹配、接口数据在传输中丢失、数据误差不断积累等问题。
通常有两种集成方式:一次性集成方式和渐增式集成方式,但一般要求采用渐增式集成方式。
(1)一次性集成方式。首先对各个单元分别进行测试,然后再把所有单元组装在一起进行测试,最终得到要求的软件系统。
(2)渐增式集成方式。首先对某两三个单元进行测试,然后将这些单元逐步集成为较大的系统。现在流行持续集成、持续测试,以及时发现开发过程中产生的问题,最后完成所有单元的集成,构造为一个完整的软件系统。
系统测试
系统测试(System Testing)针对已集成的软件系统进行测试。
系统测试又可细分为系统功能性测试和系统非功能性测试。功能测试基于产品功能说明书、用户角度来对各项功能进行验证,以确认每个功能是否都能正常使用;系统非功能性测试是在实际运行环境(包括软硬件平台、第三方支持软件、用户数据量等) 或模拟实际运行环境之上,针对系统的非功能特性所进行的测试,包括负载测试、性能测试、灾难恢复性测试、安全测试和可靠性测试等。
验收测试
验收测试(Acceptance Testing,Beta Testing)验证是否为用户真正所需要的产品特性,验收测试关注用户环境、用户数据,而且用户也参与其中。
验收测试又可细分为Alpha( α \alpha α)测试、Beta(