作为过程改进的阶段型架构,TMMi包含了不同的阶段和成熟度级别。组织可以通过TMMi使测试过程中初始未管理的状态,逐步进化为已管理、已定义和已测量状态,并最终达到持续改进的状态,即优化的过程。除了初始级,其他每个成熟度级别,都需要确保有足够的改进,使其成为下一个级别的基础。TMMi内部的丰富测试实践有助于组织系统化学习和应用,以增量的步骤持续改进测试过程。TMMi包括5个成熟度级别,规定了测试过程改进的阶段型路径。除了初始级,其他每个级别都都包含一组过程域,组织通过实施这些过程域以达到对应的成熟度级别。图1是TMMi的5个成熟度级别和对应的过程域。
图1 TMMi成熟度级别与过程域
1、初始级
TMMi初始级,测试往往是一个混沌不明确的过程,且常常作为开发调试的一部分,组织一般无法提供稳定的环境去支持测试过程。在TMMi初始级的组织,软件项目的成功依赖于参与人员的能力和英雄主义,而不是经过验证的过程。测试作为软件编码之后的一个自发活动,与调试交错进行,以消除测试对象中的缺陷。TMMi初始级的测试目的,是为了表明该软件运行时不会存在严重的失效。产品发布时对产品质量和风险没有足够的可见度,导致产品往往不稳定或太慢从而不能满足需求。处于TMMi初始级的组织往往容易过度承诺,导致产品不能按时发布,或者预算超支且无法达到期望的交付质量;同时,在出现危机时选择放弃过程,无法重用他们的成功经验。TMMi初始级的测试缺乏资源、工具和受过良好培训的测试人员。TMMi初始级没有任何明确的过程域。
2、管理级
TMMi管理级,测试已经成为已管理的过程,并且明确与调试分开。TMMi管理级所表现的过程原则,在有压力的情况下有助于保留久经考验的实践。但是,很多项目干系人仍然认为测试是编码之后的一个项目阶段。
TMMi管理级建立了全公司或全项目的测试策略,也制订了测试计划。测试计划中定义了基于产品风险评估结果的测试途径(approach),风险管理技术经常用于从文档化需求中识别产品风险。测试计划定义了什么是必须的测试、何时、如何以及由何人完成,同时与项目干系人建立承诺并根据需要进行修改。测试过程需要进行监控,以确保它按照计划开展,并在发生偏差时可以采取措施。工作产品的状态和测试服务的交付,对于管理人员是可见的。测试设计技术应用于从规格说明中生成和选择测试用例。但是测试可能仍然在开发生命周期的相对较晚的阶段开始,例如:在设计或甚至在编码阶段。
TMMi管理级的测试包含多个测试级别,例如:组件测试、集成测试、系统测试和验收测试。组织范围或项目范围的测试策略为每个确定的测试级别,定义了特定的测试目标。测试和调试的过程是分开的。
TMMi管理级的主要测试目的是验证产品满足特定的需求。该级别的很多产品质量问题是由于测试在开发生命周期的后期进行而导致的,缺陷从需求和设计传递到代码中。到目前为止还没有正式的评审程序能解决这一重要问题。编码之后以执行为基础的测试,仍然被很多项目干系人认为是首要的测试活动。
TMMi管理级的过程域包括:
测试方针与策略
测试计划
测试监视与控制
测试设计与执行
测试环境
3、定义级
TMMi定义级不再将测试局限在编码之后的一个阶段,而是完全集成到了开发生命周期和相关的里程碑中。在项目前期完成测试计划,例如:需求阶段,并在主测试计划文档化。主测试计划是以TMMi2级所获得的测试计划技能和承诺为基础制订的。TMMi定义级的基础是组织的标准测试过程集,其被明确定义被随着时间的推移而得到不断改进。TMMi定义级已经拥有独立的测试团队,有特定的测试培训方案,并把测试作为专门的职业。作为测试组织已接受的实践之一,测试过程改进已经制度化。
TMMi定义级的组织认识到评审在质量控制中的重要性,实施了正式的评审程序,并在专业人员参与下贯穿整个生命周期,但还没有完全与动态测试过程集成。TMMi管理级的测试设计主要集中于功能测试,而TMMi定义级将测试设计和测试技术扩大到包括非功能测试,例如:根据业务目标所需的易用性测试、可靠性测试。
TMMi管理级和TMMi定义级之间的一个关键区别是标准、过程描述和规程的范围不同。TMMi管理级可能在个别项目上是相当不同的,而TMMi定义级要求个别项目或组织单元只能在裁剪规则允许范围内对标准过程进行裁剪,因此项目之间具有更高的一致性。这种裁剪还允许对已定义过程的不同实现进行有效的比较,以及让人员在项目间更容易流动。另一个关键区别是:TMMi定义级的过程描述比TMMi管理的更严格,因此在TMMi定义级组织必须重新审视TMMi管理级的过程域。
TMMi定义级的过程域包括:
测试组织
测试培训方案
测试生命周期与集成
非功能测试
同行评审
4、测量级
实现TMMi管理级和定义级的目标,其好处是建立一个贯穿测试的技术、管理和人员基础能力,并为测试过程改进提供支持。基于这些基础,测试可以成为一个可测量的过程,从而促进其进一步的发展和成就。TMMi测量级的组织,测试是一个完全定义且具备良好基础的可测量过程。测试即评估,其由生命周期内所有产品和相关工作产品检查的所有相关活动组成。
通过实施组织范围内的测试测量方案,以评估测试过程的质量和生产率,并监督改进。测量已纳入组织的测量库,以支持基于事实的决策。测试测量方案还可以用于预测测试性能和成本。
测量方案的存在使得组织能够通过定义质量需求、质量属性和质量度量来实现产品质量的评价过程。质量属性的量化指标可以用来评价工作产品,例如:可靠性、易用性和可维护性。在整个生命周期内可以用量化术语来理解产品质量,并针对已定义的目标进行管理。
评审和审查已经作为测试过程的组成部分,用来在生命周期早期测量产品质量,并作为正式控制质量的阶段点。作为缺陷检测技术,同行评审变成与产品质量评估过程域保持一致的产品质量测量技术。
TMMi测量级包含:建立同行评审(静态测试)和动态测试之间写作的测试途径,使用同行评审结论和数据来优化测试途径,目的是使测试更有效率和有效性。同行评审已完全与动态测试过程集成,即作为测试策略、测试计划和测试途径的组成部分。
TMMi测量级的过程域包括:
测试测量
产品质量评估
高级评审
5、优化级
假如实现了前面TMMi所有级别的测试改进目标,就会为测试创造了组织级别的基础架构,它支持完全的已定义和已测量的过程。TMMi优化级的组织基于统计来控制过程的定量认知,具备了持续过程改进的能力。测试过程性能的提高,是通过过程和技术的增量和创新实现的。同时不断优化测试方法和技术,并持续关注细微调整和过程改进。TMMi中将持续优化的测试过程定义为:
已管理的、已定义的、已测量的、具备效率和有效性
基于统计的控制和预测
关注缺陷预防
自动化支持下的资源有效利用
能够支持从行业到组织得到技术转移
能够支持测试资产的重复使用
专注于过程改变以实现持续改进
为了支持测试过程基础架构的持续改进,并识别、计划和实现测试改进,通常会正式成立永久的测试过程改进小组,常称为测试过程组(TPG)。小组成员都接受过能帮助他们提高技能的专业训练,从而获得帮助组织成功所需的技能和知识。TMMi定义级引入了测试组织,那时就开始正式支持测试过程组。TMMi测量级和TMMi优化级会引入更多高级别的实践,因此其责任也会相应增加,例如:确定可重用的测试(过程)资产,开发和维护测试(过程)资产库。
建立缺陷预防过程域,其目的是为了识别和分析在开发生命周期中出现的缺陷的一般原因,并制订措施以防止今后再出现类似的缺陷。作为质量控制的一部分,识别测试过程性能的异常,并对它们进行分析以查明其中的原因,可以作为缺陷预防的组成部分。
当前的测试过程,可以通过质量控制过程域基于统计进行管理,包括统计抽样、测量置信水平、可信度和可靠性驱动测试过程。测试过程的特点是基于抽样的质量测量。
TMMi优化级的测试过程优化过程域引入了微调机制,不断改进测试。基于已构建的规程识别过程增强,同时选择和评价新的测试技术。支持测试过程的工具,在以下方面起到作用:测试设计、测试执行、回归测试、测试用例管理、缺陷收集和分析等。跨组织的过程和测试件复用,也是常见的实践,并由测试(过程)资产库支持。
TMMi优化级的3个过程域:缺陷预防、质量控制和测试过程优化,都可以为持续过程改进提供支持,它们之间是高度关注的。缺陷预防过程域支持质量控制过程域,例如:分析过程性能的异常值和进行缺陷因果分析,并实施预防缺陷再次发生的实践。质量控制过程域有助于测试过程优化过程域,测试过程优化过程域支持缺陷预防过程域和质量控制过程域,例如:通过实施测试改进建议来支持缺陷预防过程域和质量控制过程域。所有这些过程域,依次需要低级别过程域完成时所获得的实践来支持。TMMi优化级的测试是一个以预防缺陷为目的的过程。
TMMi优化的过程域包括:
缺陷预防
质量控制
测试过程优化
实践证明:组织每次关注可控数量的过程域,不仅有助于投入的集中精力,同时这些过程域也可以随着组织的改进而日益成熟。过程改进时不要试图跳过一个成熟度级别,因为每个级别都是下个级别的基础。测试过程改进的努力应该集中于组织的运行环境层面,而来自较高成熟度级别的过程域,也可能会涉及组织或项目的当前需求。例如:组织寻求从成熟度1级提升到2级,通常会要求建立一个测试组织,而这正是成熟度3级的测试组织过程域所要求的。尽管测试组织不是TMMi成熟度2级的必要过程域,但它有助于组织达到TMMi成熟度2级。
另外,TMMi中没有涉及测试工具和测试自动化方面的特定过程域。因为TMMi将测试工具视为辅助资源(实践),因此它们成为了其所支持的过程域的一部分。例如:TMMi管理级中,应用测试设计工具作为测试设计和执行过程域的辅助测试实践;而性能测试工具,作为TMMi定义级的非功能测试过程域中的一个辅助测试实践。