基于需求的测试及其固有的需求可跟踪性和验证过程被普遍认为推广企业标准的最佳实践,如能力成熟度模型集成(CMMI)。CMMI是一个能够为组织提供有效过程关键元素的过程改进方法。它能够用于引导一个项目、部门或整个组织的过程改进。CMMI能同时使关键性及非关键性软件均获益。
如下方工程过程区域图所示,需求管理(REQM)和需求开发(RD)是CMMI的两个主要的过程域。
表中的技术解决方案(TS)是将需求细化为原型或组件。验证过程域(VER)确保所选择的工作产品满足规定的需求。验证过程域(VAL)则根据客户的需求加强对产品的验证。验证过程可以在工作环境或模拟工作环境中进行。
最后,从编程标准的角度看,对于所有的开发活动来说,过程如极限编程(Extreme Programming)及基于需求的开发和测试是不可或缺的。如下图所示,采用极限编程,用户的“故事”在代码开发之前,通过与客户一起合作就可以准备好,并且用作测试场景的软件前缀。
TBreq介绍
TBreq由LDRA Testbed(包括代码评审、质量评审、设计评审组件及代码覆盖)和TBrun(单元测试组件)构成,通过与LDRA工具包集成,能够提供一套独特的解决方案来克服困难,从而在测试规格、单元测试场景、测试数据及代码覆盖率验证与高层次的设计需求之间建立映射关系。
TBreq直接与需求管理工具(DOORS、ReqPro、Word或Excel)接口来保证整个软件生命周期中实现需求可跟踪性,同时保证需求覆盖的完整性(见下图)。
在LDRA工具包里,TBreq根据需求直接生成测试规范和可执行的测试用例。测试结果自动返回到需求管理工具中,提供“双向”需求可跟踪性验证。
TBreq的作用描述如下:需求可通过需求管理工具,如DOORS、ReqPro、文挡或电子数据表获取。TBreq作为这些需求源与LDRA Testbed测试管理仪表盘之间的网关,并且直接与LDRA Testbed项目及其基层项目目录接口。
需求可从任一来源捕获,它们可被(通过用于Testbed的可跟踪性及验证)测试管理工具使用。可跟踪性及需求映射直接在Testbed中执行,并且信息是通过设计评审、源码文件及TBrun获取的。验证结果和可跟踪性信息可上载至软件库。
TBreq软件有两种类型的基本工作过程。第一种通过低层次需求和实际建造设计评审来包含需求可跟踪性和测试验证。测试管理工具支持需求与源代码过程或方法之间的映射。这些映射需求相继地为开发人员或测试人员所获取,其目的在于生成测试规范和测试验证。测试管理工具同样也将促进这些测试规范中的测试用例的自动生成。接下来的发布将支持测试值从数据表或规范中自动输入。这一类型的工作流程的结果然后将反向映射回需求源中。
这一封包同样可用于没有TBrun的测试验证中。在这一工作流程场景中,LDRA Testbed用来作为工具源代码,这一代码是通过客户提供的测试用具执行的。
TBreq还使用一种被称为需求描述符线程(或线程)的机制来帮助实现快捷可跟踪性和验证能力。这一线程的特征为:
文件规范
源代码或框架文件名
需求术语
需求名称及数字
需求源文档
需求主体
需求正文
测试配置
相关的测试用例/序列
覆盖层次
测试用例/序列验证状态
测试规范
过程或类接口
测试数据
测试管理
项目经理姓名
开发人员/测试人员姓名
线程类型(RV或DV)
线程是为所有高层次(系统)及所有低层次(设计)需求创造的。前一线程类型被称为需求验证(RV)线程,后一线程类型被称为设计验证(DV)线程。线程包含需求名称和数字及需求主体(正文)。线程同样也包含源代码文件规范及相关过程原型(测试规范)在内的映射信息,相关的测试用例映射是由测试配置及所需的覆盖层次所提供的(如:语句 100%;分支 80%)
本文小结
软件TBreq为需求可跟踪性和验证提供了一个全面、完整的解决方案。此外,TBreq与LDRA工具包集成的封包完全符合前面所讨论的关键性软件标准的要求。并且,TBreq为CMMI 2级过程域(需求管理)和CMMI 3级过程域(需求开发)提供了受该标准要求的过程基础架构。