一、单元测试
概念
又称模块测试,针对软件设计的最小单元–程序模块,进行正确性检验的测试工作。
单元测试主要关注每个具体单元模块内部的逻辑结构和功能是否正确,侧重于发现程序设计或实现的逻辑错误,属于白盒测试范畴。
单元具有一些基本属性,如明确的功能,明确与其他部分的接口定义等,可清晰地与同一程序的其他单元划分开来。
方法
单元本身不能独立运行,必须为每个单元测试开发驱动模块和桩模块以构成一个可运行的软件系统进行测试。
驱动模块:
- 接收测试数据
- 把数据传给被测模块
- 显示或比较相关测试结果
桩模块
替代隶属于本模块(被调用)的模块,使被测试对象可以运行。
二、集成测试
定义
集成测试把若干个经过单元测试的组件/模块/单元组到一起的测试,主要摸底的是测试模块之间的接口,以及被对象与系统其它部分的相互作用。需要依据软件概要设计说明书,通过对模块功能、接口设计进行分析,覆盖所有的功能测试,重点测试接口和边界。
划分
根据被测对象的模块,集成测试划分为:
- 模块内集成测试
- 子系统内集成测试
- 子系统间集成测试
根据测试过程中组合模块的方式,集成测试分为:
- 非增式集成:又称一次性集成,对完成单元测试的所有模块在一起进行测试。
- 增式集成:又称递增式集成,即逐次将未测试与已测试的模块组合成较大的系统,边连接边测试
- 根据集成的过程还可以分为:
- 自顶向下集成–沿控制层次自顶向下进行集成测试
- 自底向上集成–从程序模块结构的最底层模块开始集成测试
- 衍变式集成:增式和非增式两者结合。
三、系统测试
定义
针对软件系统进行的整体测试,讲软件系统在实际环境下运行,以验证系统是否正确实现了客户需求,需要根据软件说明书、检验软件系统与需求规格说明符合的程度,一般为黑盒测试。
系统测试包括功能性测试和非功能行测试,需要考虑不同的测试类型
功能性、可靠性、效率性、可服务性
四、验收测试
定义
通常有使用系统的客户进行,同时系统的其他利益相关者也可能参与其中,验收测试的目的是通过对系统功能、系统的某部分或确定的系统非功能特征进行测试,来确定系统是否满足客户需求并能够进行商用、发现缺陷不是验收测试的目标。
典型类型:
用户验收测试、运营测试、合同验收测试、现场测试