在上节讨论“软件测试在SDLC中的位置”时,已触及软件测试过程,那个改进的V模型(图0-1)就反映了测试过程。但为了更明确测试过程,从两条线分别展示软件测试的基本过程,如图0-2所示。
(1)一条线是从软件工程过程来看,经过需求评审、设计评审、代码评审与单元测试、集成测试、系统测试和验收测试阶段。
(2)另一条线是从项目管理角度看,经过测试计划、测试设计、测试执行与监控、测试结果分析与评估(报告)和项目总结阶段。
图0-2 软件测试的过程
过程的描述尽量简单,从而使读者一目了然,基本知道各个环节主要的工作,但实际许多工作是交替进行或同时进行的,例如在图0-1中所描述的,系统测试和验收测试的设计工作很早就开始了,如图0-1所示,系统测试和验收测试的设计工作分别在需求评审、设计评审阶段就可以开展,大部分内容可以完成,在后续时间还可以继续完善。
因为提倡每日构建或持续集成,如果仅从软件代码角度看,单元测试和集成测试是同时进行的,没有单独的集成测试阶段。但如果考虑和其他子系统的集成、和第三方系统集成、和硬件集成等工作,集成测试的阶段还是存在的。
在实际操作中,还可以定义自己所需的阶段,或里程碑。这里以曾在Webex公司研发流程中所定义的测试过程作为示例,让大家更好理解传统的软件测试过程,如图0-3和表0-1所示。在这个示例中,主要的里程碑有:
● 产品需求文档(PRD)或市场需求文档(MRD)的评审和签发;
● 产品规格说明书(Spec)的评审和签发;
● 测试计划、测试计划书的评审和签发;
● 测试用例的设计、评审和签发;
● 功能测试;
● 系统测试;
● 验收测试。
图0-3 测试全过程的跟踪示意图
表0-1 各测试阶段输入和输出标准
续表
续表