现在,很多软件组织都在走CMMI之路,这是以软件工程过程的标准化来保证软件质量的一种规范性行为。那么,软件测试在CMMI中是如何定义和实施的呢?作为一名资深软件测试人员,今天来阐述一下基于软件能力成熟度模型集成的软件测试。
首先,在CMMI中,软件测试与两个关键过程域有关,一个是验证,一个是确认。验证,是为了确认某一开发阶段的产品是否满足在阶段初期提出的要求而进行评估的过程;确认,是在开发过程中或结束时,对软件产品进行评估以确定其是否满足软件需求规格的要求。简单地讲,验证就是证明是否正确地构造了产品;确认则是证明构造的产品是否正确。
以传统的瀑布模型为例,验证意味着每个阶段结束后,对软件产品的技术审查和管理评审,确认则是对每个阶段结束后所产生的代码进行测试。基于CMMI的软件测试,就涵盖了这两方面的工作,下面就瀑布模型软件生命周期中各阶段的软件测试活动进行介绍。
1.软件需求分析阶段
基于“软件测试介入要及早”的原则,在软件需求分析阶段,软件测试人员就可以加入到软件需求分析和确认的行列中,并在该阶段结束后,参与本阶段软件产品的评审。在该阶段,并没有软件代码产生,所以主要的软件产品就是文档。本阶段产生的跟软件测试关系密切的文档是软件需求规格说明和软件开发计划,根据这两份文档,测试人员可以出具软件配置项测试计划,在计划中明确测试类型,测试方法,测试环境,以及测试人员和进度安排。
2.软件设计阶段
在软件概要设计阶段,软件人员主要参与的测试活动是评审软件概要设计和软件集成计划文档,并出具软件集成测试计划。同样,在软件详细设计阶段,软件人员参与评审软件详细设计文档,并出具软件单元测试计划。
3.软件编码及后续测试阶段
在这个阶段,软件代码已产生,可以按照单元测试计划,拟制单元测试用例,执行单元测试,出具单元测试报告。在单元测试阶段,建议进行代码走查,这是对软件代码的确认。自此以后的阶段,软件确认和验证的对象就都是代码。
单元测试完成后,对该阶段的软件产品进行确认,相关文档该评审就评审,该入受控库就入受控库,经软件配置确认后,转入集成测试阶段。
依照集成测试计划,拟制集成测试用例说明,可对软件单元按照某种恰当的集成策略进行组装。在这个阶段,产生集成测试报告。这是该阶段软件验证和确认的成果。同样,集成测试完成后,对该阶段的软件产品也要进行确认并入受控库,经软件配置确认后,转入配置项测试阶段。
软件配置项测试以需求阶段产生的测试计划为依据,拟制配置项测试说明,执行以黑盒为主的配置项测试,出具配置项测试报告。测试完成后,提交配置管理,确认后等待软件交付。
以上就是基于CMMI的软件测试过程。其优点在于,将测试分为验证和确认两部分,涵盖了软件产品的整个生命周期,从工程过程的角度确保了软件产品的质量。但以上的软件过程也是有缺陷的,例如测试计划周期太长,随着开发过程的进展,难免会有变更,这无疑增加了测试的工作量,降低了测试文档的实效性。所以随着软件项目管理的发展,基于CMMI的软件测试活动,还有很大的改进空间。