软件测试从测试计划编写到测试实施,需要经过一系列的过程。这些测试按软件从编写到交付的各个阶段的先后顺序可分为:单元测试、集成测试、确认(有效性)测试、系统测试和验收(用户)测试5个阶段,如下图所示。
单元测试的主要目标是确保各单元模块被正确的编码,就是检验程序最小单元有无错误。单元测试的主要内容有:模块接口测试;局部数据结构测试;独立路径测试;出错处理测试;边界条件测试。
驱动模块和桩模块都是单元测试过程中设置的辅助模块。
驱动模块(driver)。相当于被测模块的主程序,它接收测试数据,把这些数据传给被测模块,最后输出实测结果。
桩模块(stub)。用以代替被测模块调用的子模块,桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。
一般是根据软件的具体情况来决定采用哪种模式。通常,把模块组装成为系统的测试方式有两种:一次性集成测试(No-Incremental Integration)又称非增量式集成测试。另外一种是增量式集成测试方式,增量式集成测试有3种方式:自顶向下增量测试方式(Top-down Integration)、自底向上增量测试方式(Bottom-up Integration)和混合增量测试方式(ModifiedTop-downIntegration)。
确认测试又称为有效性测试或合格性测试(Qualification
Testing),其目的是验证软件的功能和性能及其特性是否与客户的要求一致,是否满足软件需求规格说明书中的规定。确认测试阶段需要做的工作如下图所示。首先要进行有效性测试及软件配置审查,然后进行验收测试和安装测试,在通过了专家鉴定之后,才能成为可交付的软件。
系统测试流程如下图所示:
验收测试的工作流程如下图所示:
验收测试的策略通常是建立在合同需求、组织和公司标准及应用领域的基础上的,一般分为:正式验收测试、非正式验收或Alpha测试和Beta测试。