TMM从开发过程、用户需求、管理活动、支持过程等对软件测试策划、组织实施、测试能力、过程活动、工作产品等确定测试成熟度等级,关注成熟度等级递增,是一个基于测试组织成熟度、测试过程改进、测试评价过程、关键过程域的模型框架。TMM框架如图3-11所示。
图3-11 TMM框架
TMM框架提供了包括成熟度目标、活动/任务等在内的一系列等级层次。通过评价测试组织的测试能力所处的成熟度层级来定义其可信度,可以通过持续改进TMM所确定的关键过程域来改进并持续提升测试过程能力。
TMM同软件能力成熟度模型(Capability Maturity Model for Software,CMM)一样,采用分级表示法,按测试能力成熟度划分为初始级、重复级、定义级、量化级及卓越级。每一等级都是实现下一等级的基础,分级递进,为软件测试过程能力评估和改进提供支撑。软件测试能力成熟度模型如图 3-12所示。
3.2.2.1 第一级:初始级
测试过程未定义,过程无序;缺乏测试资源、测试工具及专业测试人员;缺乏规范的测试流程及成熟的测试目标;测试与调试相互交叉,混为一体,软件测试被忽视。
3.2.2.2 第二级:重复级
组建测试团队,配置测试人员,具备基本的测试技术和方法,测试与调试已明确地被区分开来。这一级需要实现三个成熟度目标:制定测试目标、启动测试策划过程、基本测试技术和方法体系化。
图3-12 软件测试能力成熟度模型
(1) 制定测试目标 。区分软件开发过程中的测试与调试过程,识别并确定各自的目标、任务和活动。与调试不同,软件测试是一个有计划、可以进行管理和控制的活动,需要制定相应策略或规程,以确定和协调这两个过程。
(2) 启动测试策划过程 。测试策划是保证软件测试活动有序开展且能有效管理的基础。该阶段的主要任务是启动测试策划过程,明确测试策划职责、建立测试过程、开发测试工作产品模板、建立评审机制、确定测试支持和约束条件。
(3) 基本测试技术和方法体系化 。建立基本测试技术、方法框架,并通过标准规范等形式体系化,制定管理方针以确保所制定的技术和方法得到一致的贯彻和实施;组织实施培训和考核,测试人员掌握何时及如何使用相应的技术、方法和工具。
3.2.2.3 第三级:定义级
软件测试是集成到软件生命周期过程中一组已定义的活动。如果采用瀑布模型进行软件开发,则测试活动遵循基于流程的测试过程模型。需求分析阶段同步启动测试过程,开展测试策划,建立测试目标。这一级的成熟度目标包括建立测试组织、制定培训规程、软件生命周期测试及测试过程监控。
(1) 建立测试组织 。建立由专业测试、质量保证等人员组成的测试组织,定义测试组织的构成及职责,其活动包括:制定测试标准与规范,制定测试大纲,进行测试设计、测试执行、测试结果报告和测试跟踪,建立测试资产重用数据库,进行测试度量和评价。
(2) 制定培训规程 。配备相应工具、设备和教材,制定培训管理规范和培训计划,确定培训目标。软件测试、质量保证等岗位员工必须经过培训、考核合格并经授权后方可上岗。
(3) 软件生命周期测试 。软件测试贯穿于整个软件生命周期过程,将测试阶段划分为若干个子阶段,并与软件生命周期过程的各阶段相关联,制定与测试相关的工作产品标准,建立测试人员与开发人员共同遵循的工作机制。
(4) 测试过程监控 。建立监视与测量、反馈与控制机制,制定监控规则和方法;确立测试标准及测试里程碑,进行测试度量;建立测试日志,开发并文档化一组纠偏措施和偶发事件处理预案,以备测试偏离测试计划时使用。
3.2.2.4 第四级:量化级
软件测试是为了将软件系统不能正常工作的可预知及潜在风险降低到能够接受的程度,是一个可量化和可测量的过程。这一级的成熟度目标包括测试规程、测量规程和软件质量评价。
(1) 测试规程 。建立组织范围内的测试规程,在软件生命周期各阶段实施测试,遵循测试规程,文档化软件生命周期过程中的测试目标、测试计划、测试流程及测试记录机制。
(2) 测量规程 。测量规程是测试过程测量、评价及改进的基础,其包括:确定组织范围内的测量规程及目标,制订测量计划,制定测量数据收集、分析及使用方法,以及基于测量结果驱动的测试过程改进。
(3) 软件质量评价 。软件质量评价内容包括:定义软件质量属性,以及定义评价软件工作产品的质量目标、评价方法和步骤。
3.2.2.5 第五级:卓越级
测试过程处于受控状态,具备过程调整、持续改进、缺陷预防、质量控制机制。软件测试不仅是一种行为,更是一种自觉的约束。基于缺陷预防、质量控制和过程优化,软件测试过程持续改进,测试过程能力持续提升。这一级的成熟度目标包括缺陷预防、质量控制和过程优化。
(1) 缺陷预防 。记录、分析并消除软件生命周期过程中各阶段引入的缺陷,制定并实施缺陷预防措施,防止相同或类似缺陷重复发生。
(2) 质量控制 。采用抽样统计技术,测量测试过程及产品质量,持续改进测试过程。
(3) 过程优化 。监视测试过程并识别改进需求,建立适当的机制以评估改进测试过程能力和测试成熟度所需的工具和技术,支持技术创新;持续评估测试过程的有效性,确定与质量目标相一致的测试终止准则。
测试能力评价体系由类−实践域−实践(CRP)三层指标组成。第一层为Ⅰ级类指标,包括组织管理类、项目管理类、测试过程类、测试支持类指标;第二层为Ⅱ级实践域指标,分别属于不同类;第三层为Ⅲ级实践指标,分别属于不同实践域。软件测试能力评价体系如图3-13所示。
图3-13 软件测试能力评价体系
3.2.3.1 Ⅰ 级类指标
Ⅰ级类指标包括组织管理类、项目管理类、测试过程类和测试支持类,其与测试能力等级的对应关系如表3-1所示。
3.2.3.2 Ⅱ 级实践域指标
Ⅱ级实践域指标定义了24类评价指标,分别属于4项Ⅰ级类指标,其与测试能力等级的对应关系如表 3-2所示。
表3-1 Ⅰ 级类指标与测试能力等级的对应关系
表3-2 Ⅱ 级实践域指标与测试能力等级的对应关系
3.2.3.3 Ⅲ 级实践指标
1.组织管理类
组织管理类由29项Ⅲ级实践指标组成,分别属于领导作用、组织过程改进、组织资产开发、组织培训、过程实施保障5项Ⅱ级实践域指标,其与测试能力等级的对应关系如表3-3所示。
表3-3 组织管理类Ⅲ级实践指标与测试能力等级的对应关系
续表
2.项目管理类
项目管理类包括23项Ⅲ级实践指标,分属于项目策划、项目监控、风险与机遇管理、供方管理4项Ⅱ级实践域指标,其与测试能力等级的对应关系如表3-4所示。
表3-4 项目管理类Ⅲ级实践指标与测试能力等级的对应关系
续表
3.测试过程类
测试过程类是一组工程类指标集,包括52项Ⅲ级实践指标,分别属于测试策划、测试设计、测试环境构建及验证、测试执行、回归测试、测试总结、测试评审、测试级别、测试类型、测试方法10项Ⅱ级实践域指标,其与测试能力等级的对应关系如表3-5所示。
表3-5 测试过程类 Ⅲ 级实践指标与测试能力等级的对应关系
续表
4.测试支持类
测试支持类由32项Ⅲ级实践指标组成,分别属于配置管理、质量保证、监视与测量、决策分析、纠正及预防共5项Ⅱ级实践域指标,其与测试能力等级的对应关系如表3-6所示。
表3-6 测试支持类Ⅲ级实践指标与测试能力等级的对应关系
续表
对每个实践的能力评价,分为很好、好、较好、合格、不合格。
(1)实践能力评价为合格及以上,即可认定具备该实践的能力。
(2)具备对应等级能力要求的所有实践能力,即可认定该等级能力。
(3)若存在不合格实践,则对应等级能力评价为不合格。
(4)实践能力评价结果档分值:很好为 ,好为 α 2 ,较好为 ,合格为 。
对于每个实践域,依据各实践的评价结果,综合计算后分为很强、强、较强、一般。假设实践域中有 个实践,计算实践域中所有实践档分值的平均值 f A ,即该实践域能力评价得分为
(3-1)
实践域能力评价结果档下限阈值:很强为 β 1 ,强为 β 2 ,较强为 β 3 。若 f A ≥ β 1 ,则认定该实践域能力为很强;若 ,则认定该实践域能力为强;若 β 2 > f A ≥ β 3 ,则认定该实践域能力为较强;若 β 3 > f A ,则认定该实践域能力为一般。
对于每个类的能力评价,依据类中各实践域能力评价结果,综合计算后分为很强、强、较强和一般。假设类中有 N C 个实践域,计算类中所有实践域得分的平均值 f C ,即该类得分为
(3-2)
类评价结果档下限阈值:很强为 β 1 ,强为 β 2 ,较强为 β 3 。如果 ,则认定该类的能力为很强;若 β 1 > f C ≥ β 2 ,则认定该类的能力为强;若 ,则认定该类的能力为较强;若 β 3 > f C ,则认定该类的能力为一般。
对测评机构能力评价:依据组织管理、项目管理、测试过程、测试支持四个类的得分,综合计算后分为很强、强、较强、一般四档。假设四个类的得分分别为 f C1 、 f C2 、 f C3 和 f C4 ,其权重分别为 γ 1 、 γ 2 、 γ 3 和 γ 4 ,则测评机构的能力评价得分为
(3-3)
测评机构评价结果档下限阈值:很强为 β 1 ,强为 β 2 ,较强为 β 3 。若 ,则认定测评机构的能力为很强;若 ,则认定测评机构的能力为强;若 β 2 > g ≥ β 3 ,则认定测评机构的能力为较强;若 ,则认定测评机构的能力为一般。