许多公司在提高
测试效率时往往着重在人力、物力上,最终却发现收获颇微,其主要原因在于测试过程本身不合理。而当前流行的
CMMI(Capability Maturity Model Integration,能力成熟度模型集成)等通用模型,没有针对测试领域进行详细阐述,测试过程没有等级化的成熟度考量,缺少改进的指导与动力。
本文作者所设计的
TMM(
Testing Maturity Model,测试成熟度模型),补充了这方面的不足,对测试专家/软件质量专家要进行测试过程自身评估和改进提供了极大帮助。对于刚进入测试领域的新人,也不失为了解测试规范要求、理清自身
学习和发展思路的好参考。
译文对TMM模型及评估模型进行简要介绍。
TMM模型框架
TMM定义了五个成熟度等级,每个等级代表着一个成熟的测试过程,达到高等级意味着应继续实施低等级的实践。
除了等级1外,每个等级都有一系列成熟度目标、子目标、活动、任务和职责(ATRs)。模型框架如图1 所示。
成熟度目标定义了达到该等级必须实现的测试改进目标,成熟度子目标更为具体,定义了该等级的范围、界限和需要完成的事项。要达到某个成熟度等级,组织必须 满足这个等级的成熟度目标。通过活动/任务/职责来达到成熟度子目标,活动/任务/职责涉及实施和组织调整问题。活动和任务定义了如果要改进测试能力达到 某个等级所要做出的行动,它们与组织的承诺有关。模型中为三组人分配了职责,这三组人是测试过程中的关键参与者:管理者、开发者/测试者、客户,模型中称 为关键角度。
三个关键角度包括:
1. 管理者角度:包括承诺,及完成改进测试过程成熟度相关的活动和任务的能力
2. 开发者/测试者角度:包括
技术上的活动和任务,这些活动和任务来自成熟的测试实践
3. 用户/客户角度:定义为一个协作或支持角度。开发者和测试者与客户组一起实施质量相关的活动和任务,关注面向用户的需求
TMM成熟度等级介绍
每个等级的成熟度目标如图2所示:
Level2:阶段定义
在Level2,组织开始从技术和管理两方面促进测试过程成熟化,软件生命周期中定义了测试阶段。测试被策划,并有基本的方法和工具支持,在所有的软件项目中测试过程可重复。测试活动与调试已经进行分离,其实调试活动更难策划。
目标1、制定测试和调试目标
测试和调试有明显区别,分别为这两个活动定义目标、任务、活动和工具并分配职责。分这两个活动对提高测试成熟度非常重要。在这个等级,“测试”已被策划, 因此才能被管理;然而调试管理要复杂得多,因为很难预测会发生多少缺陷、修复需要多长时间。调试相关的活动经常导致过程不可预见,项目经理必须安排缺陷定 位、修复、重新测试的时间和资源。到了TMM高等级后,调试管理会容易一些,因为可参考以往项目的缺陷详细信息和修复数据
目标2、具备测试策划过程
一个过程只有被策划,才能做到可重复、可定义和可管理。测试策划书需要陈述目的、分析风险、概述测试策略、编写测试设计说明书及测试用例。测试策划还需要包括测试完成准则、测试活动的所有资源、进度、职责,包括单元、集成、系统、验收多种层次的测试。
目标3、制度化基本的测试技术和方法
必须在整个组织中实施基本的测试技术和方法,要清晰规定如何、何时实施,以及基本的支持工具。基本的测试技术和方法例子包括:黑盒、白盒测试策略;使用需求验证矩阵;区分阶段式测试:单元、集成、系统、验收测试。
Level3:集成
Level3中,测试活动扩展到一系列已充分定义的活动,并集成到软件生命周期的所有阶段中。这个等级的管理还包括组建和培训一个软件测试组,负责所有层次的测试,并与质量保证专家一起,充当客户组的联络人,保证他们参与到测试过程中。
目标1、组建一个软件测试组织
测试与产品质量息息相关,并由一系列复杂、进度紧、压力大的活动构成,因此需要一支充分培训、奉献精神的团队,Level3所组建的测试组负责:测试策划、执行和记录;缺陷跟踪;测试度量;建立测试数据库;测试重用;测试跟踪和评价。
目标2、拟制专业培训程序
通过专业培训程序,确保为测试组提供具备技能的人员。专业培训内容应包括:测试策划,测试方法、标准、技术和工具,审查过程,如何支持用户参与测试和评审过程等。
目标3、将测试集成到软件生命周期中
测试活动与软件生命周期所有阶段并行开展,而并非独立进行,这对测试过程成熟度和产品质量至关重要。集成的体现包括在生命周期的早期开始进行测试策划,在生命周期不同阶段中,通过多种渠道邀请用户参与测试过程。
目标4、控制和监督测试过程
监督和控制测试过程提供了与之相关活动的可视性,确保测试过程能依据策划进行。通过与测试策划对比实际的测试工作产品、投入工作量、成本和进度,来体现测试进展。
控制和监督的支持包括:测试产品所用标准、测试里程碑、测试日志、测试相关的风险应急计划、可用于评价测试进展和效率的测试度量数据,以及测试相关项的配置管理。
Level4:管理和度量
Level4中的测试活动是完全被管理的;有策划、有指导、人员具备技能、有组织、可控制。管理层、SQA、测试者们定义、收集、分析和使用测试相关的度 量数据。测试活动的定义正式扩展到整个生命周期中的审查活动,同行评审和审查作为基于实现的测试活动的补充,它们被认为是质量控制程序,用以移除软件产品 的缺陷。
目标1、拟制跨整个组织的评审程序
Level3中,组织将测试活动集成到软件生命周期中,Level4中,这个集成扩展到拟制一个正式的评审程序。同行评审(包括审查和走查两种形式)被认 为是测试活动,在生命周期所有阶段中实施同行评审,更早、更有效地识别、记录、移除软件工作产品和测试工作产品中的缺陷。
目标2、拟制测试度量程序
拟制测试度量程序对评价测试过程的质量和效率、评估测试人员生产力、监督测试过程改进很重要,必须谨慎策划和管理测试度量程序,程序中应识别收集哪些测试数据,决定由谁、如何来使用这些数据。
目标3、软件质量评价
这个Level的软件质量评价,目的之一是判断测试过程的充分性。软件质量评价需要组织为每种类型的软件工作产品,定义可度量的质量属性和质量目标。质量 目标与测试过程充分性密切相关,因为成熟的测试过程应能保证软件产品可靠、可用、可维护、可移植和安全。
Level5:优化/缺陷预防和质量控制
Level5中,测试首先要保证软件产品满足规格说明书、可靠,并对它的可靠性有一种确定的信心。其次,测试要处理缺陷和预防缺陷,这点通过收集和分析缺陷数据来实现。由于这时候的测试活动可重复、已管理、已定义和已度量,就可以进行调整和持续改进。
目标1、将过程数据用于缺陷预防
成熟的组织会吸取自身的教训。TMM最高等级中,组织将记录缺陷,分析缺陷模式,识别导致错误的根源原因,制定预防缺陷再次发生的行动计划。并组建缺陷预防组负责缺陷预防行动,与开发人员一起在整个生命周期中实施缺陷预防行动。
目标2、实施质量控制度量
Level4中,组织通过一些质量属性来关注测试,比如正确性、安全性、可移植性、可维护性等。Level5,组织使用统计抽样、信心等级度量、可信赖 性、可靠性目标来促进测试过程。测试组和SQA组是质量领导者,与软件设计开发者一起,运用各种技术和工具减少缺陷,改进软件质量。组织可以通过自动测试 工具、基于使用模型的统计测试方法等,提高测试充分性和信心等级。
目标3、优化测试过程
Level5中,在整个项目和整个组织中进行测试过程的持续改进,测试过程是量化的、可以优化调整的。组织应具备一套由上至下的方针、标准、培训、设备、工具和组织结构,以支持持续的成熟度提高。
优化测试过程通常通过以下步骤进行:
1. 识别需要改进的测试实践
2. 实施改进
3. 跟踪进展
4. 评价新的测试相关技术和方法,决定是否采纳
5. 支持技术转移
TMM-AM模型
除了TMM,作者还设计了TMM-AM(TMM Assessment Model,TMM评估模型),目的是让软件工程人员可以用来评估和评价自己的软件测试过程,并提供一种通过数据分析和行动计划进行测试过程改进的方法。 TMM-AM并不是一套另外的测试过程认证体系,而是软件过程工程的知识体系的一部分。
TMM-AM由以下三部分组成:
1. 评估工具:为评估当前测试过程成熟度而设计的一套与成熟度目标相关的问题调查表
2. 团队培训和选择准则:为选择和指导评估组而设计的一套方针
3. 评估程序:一份有详细步骤的评估程序,用以指导评估组进行测试过程评价和改进。
制定评估程序的首要目标:1)为描述测试过程的轮廓、决定TMM等级提供支持。2)指导组织制定测试过程改进的行动计划。3)确保有效利用组织的资源进行评估。4)指导评估组进行收集、组织和分析数据。
TMM-AM评估的简要步骤
1、准备
这个步骤包括选择和培训评估组成员,选择组长,制定评估计划,选择项目,准备参与评估的组织部门。
2、实施评估
评估组从访谈、项目陈述、调查表和相关文档中收集和记录评估信息。可使用追踪矩阵表格记录信息,有助于检查数据的准确性、一致性和客观性,保证评估结果可靠和可重复。评估组分析收集到的数据,根据分级算法,决定组织的TMM等级。
3、汇报评估输出
TMM-AM的评估输出包括:过程轮廓、TMM等级和评估记录。过程轮廓汇总地展示组织测试过程的状态,罗列强项和弱项以及改进建议。评估记录中有大量的 实际评估数据、评估组成员姓名、评估输入和输出、实际的时间表和花费、执行的任务/任务周期和责任人、收集的数据、遇到的问题等。
4、分析评估输出
评估组成员、管理者和软件质量工程师根据评估输出,识别和排序改进目标;改进目标应该是量化,才能依此制定行动计划。
5、行动策划
行动策划组针对高优先级的改进目标制定计划,策划组成员可以包括:评估者,SEPG,SQA,和/或评估参与评估的“热心人士”。行动计划包括:活动、资源、改进现有实践和补充遗漏实践的时间表,以使组织能达到TMM更高等级。
6、实施改进
选择实施行动计划的试点项目,并且应对试点项目监督和跟踪进展、目标达成情况。试点结果理想的话,意味着可以在整个组织中推广新过程。
TMM-AM评估调查表
评估调查表与CMMI评估框架类似,保证评估时覆盖TMM每个等级的所有目标的ATRs,可以通过这张表收集和存储评估数据,指导评估者在哪些领域需重点 访谈。评估表的结果并非决定TMM等级的唯一输入,评估组还需使用访谈、项目陈述、审查相关文档等收集到的信息。
TMM评估调查表包括以下八个部分:
1. 使用说明
2. 回答者背景
3. 组织背景
4. 成熟度目标和子目标问题:包括TMM各等级的目标和子目标;从开发者/测试者、管理者和客户三个角度提出问题。
5. 测试工具使用问题:使用的工具类型、频度,以便以后改进。
6. 测试趋势问题:概述过去几年组织的测试过程发展情况
7. 对调查表的改进建议
8. 测试术语表
TMM-AM评估组培训和选择准则
TMM评估是内部评估,高层管理应必须支持这种自我评估和改进投入,保证评估能获得足够资源,保证评估的改进建议能得到实施。评估组由组织内部人员组成并 必须经过培训,评估组成员应理解评估目标,有适当的知识、经验和技巧,善于沟通,并担任测试过程改进工作。
评估组人数应与评估目标和范围相匹配。在评估开始前,评估组组长应带领学习TMM、访谈技巧、数据分析技巧等,可以通过团队建设、评估过程演习、尝试填写调查表及评估相关的其他表格、如何准备最终报告等,进行评估组成员培训。
为什么要实施TMM?
最后,让我们来总结一下实施TMM会给组织带来哪些好处:
1. TMM补充了CMMI的不足,特别关注测试经理、测试专家比较看重的那些问题,针对性、专业性更强。
2. TMM等级结构全面、详尽、容易理解和使用,并有一个定义充分的评估模型支持,充分覆盖了测试相关的问题,能支持递增式的测试过程成熟度发展
3. 组织可以依照TMM要求,组建内部评估组确认当前的测试能力状态,触动高层启动测试改进程序,帮助测试组改进测试效率,并协助客户了解在测试过程中的角色。
4. 实施TMM能改进测试过程,并有助于提高软件质量、软件工程生产力和缩短研发周期,减少投入。