基于TMMi的软件测试过程改进
2022-12-05潍柴动力股份有限公司刘建飞秦玉军
潍柴动力股份有限公司 刘建飞 秦玉军
本文介绍了引入TMMi 模型的原因及TMMi 成熟度级别,通过实施基于TMMi 的测试过程改进,构建了一套符合汽车行业特点的软件测试流程,并在项目中实施应用,获得了TMMi 3 级认证,实现了测试效率和软件质量的提高。
近年来,随着智能化、网联化、电动化、共享化在汽车产业的不断发展,汽车软件的规模和复杂性急剧增加,软件系统中潜在的风险越来越高,软件缺陷引发的后果也越来越严重,而提高软件质量的成本越来越高,测试费用约为总成本的30%~40%,为提高软件测试效率以及软件质量保证能力,测试团队做了很多探索和尝试。
(1)引入了CMMI,软件质量管理取得了一定成效,但仅能提供基础性的保障。CMMI 虽然提供了一整套研发管理规范,但关注的重点是软件项目宏观的过程管理、是否有阶段性的交付成果等,而对于软件质量控制的关键环节——软件测试的关注严重不足,软件质量难以得到有效提升[1]。
(2)经过调研TMMi(Test Maturity Model Integration)是当前国际最权威的测试组织成熟度认证体系,其根本理念就是让软件测试从一个无序的、缺乏资源的、缺乏工具的、过程不明确的测试组织过程,发展成为“以缺陷预防为主要目标”的成熟可控的过程[2]。测试团队学习借鉴TMMi 的体系方法,与CMMI 研发管理流程充分融合,基于TMMi 的2 级、3 级过程域及目标构建了一套符合汽车行业特点的包含软件、硬件和系统的测试流程。
1 TMMi 简介
TMMi,全称Test Maturity Model Integration,即“测试成熟度模型集成”,是由TMMi 基金会开发的一个非商业化的、独立于组织的测试成熟度模型。它是测试过程改进的一个先进模型,可用作组织的测试过程改进指南和参考框架。
TMMi 以美国伊利诺伊理工学院开发的TMM 框架为主要来源,借鉴了CMM/CMMI、Gelperin 和Hetzel 的测试模型演进以及其他一些关键测试标准,如IEEE829.ISTQB 等[3]。
TMMi 中的测试是一种广义的定义,它包含所有产品质量相关的活动。TMMi 属于阶段型改进模型,该阶段型模型使用预先定义的一系列过程域来为组织定义改进途径。模型组件所描述的改进途径被称为成熟度级别。一个成熟度级别是明确定义的为了实现组织过程改进演进的稳定阶段。在TMMi 中有5 个级别,如表1所示,规定了成熟度级别和测试过程改进的路径。
表1 TMMi 成熟度级别Tab.1 TMMi maturity level
除了TMMi 初始级,其他成熟度级别都包括了几个过程域,其表明组织的测试过程改进应集中关注在哪里。每个过程域明确定义了组织要达到成熟度级别所必须要解决的问题,针对每个过程域定义了一系列测试活动,通过执行测试活动不断改进改过程域的测试实践。下面详细介绍基于TMMi 的2 级、3 级过程域及目标进行的测试改进过程。
2 测试改进过程
TMMi 测试改进过程主要分为五个阶段,如图1所示。
图1 TMMi 过程改进阶段Fig.1 TMMi process improvement stage
第一个阶段是启动阶段,组建过程改进团队。
第二个阶段是诊断阶段,制定差距分析计划,进行差距分析。
第三个阶段是建立阶段,制定过程改进计划,进行过程建立和改进。
第四个阶段是行动阶段,进行过程改进试点及推广。
第五个阶段是学习阶段,进行TMMi 评估认证及过程改进总结。
测试过程改进过程参考上述的五个阶段进行开展,首先组建过程改进团队,主管领导牵头,以测试经理、测试人员为主,视情况协调其他相关部门的人员支持,如开发人员、架构师等,组建持续改进的团队。下面详述诊断阶段,如何进行差距分析。
2.1 软件测试过程差距分析
首先确定以TMMi 3 级为测试改进实施的目标,而TMMi 3 级涉及的过程域如表2所示,软件测试改进过程主要是针对这10 个过程域进行开展。
表2 TMMi 3 级涉及的过程域Tab.2 Process areas involved in TMMi Level 3
其次借助文档检查和员工访谈等方式,结合行业相关标准及TMMi 模型要求,深入分析测试管理方面存在的问题和可优化环节。通过量化打分的方式展现目前各领域的现状,输出差距分析表,如图2所示,发现6 项特殊目标、11 项通用目标未达标。
图2 差距打分表Fig.2 Gap scoring table
最后根据差距分析结果,可以直观了解TMMi 的满足情况,以及离TMMi 目标要求的差距,从而明确改进的方向。进入测试改进过程的第三个阶段,从测试流程、测试技术和测试人员能力提升方面制定测试改进实施计划。
2.2 软件测试管理与流程改进
首先根据业务发展需要,规划测试团队,测试团队的组织架构示意图如图3所示,结合测试团队规划的岗位和胜任要求,量身制定相应的培训计划,确保各岗位人员达到岗位胜任力要求。
图3 测试组织架构图Fig.3 Test organization structure
其次根据测试管理需求以及测试管理方面存在的问题,设计测试管理流程架构,如图4所示,构建符合实际需要的一套测试管理流程。
图4 测试管理流程架构图Fig.4 Test management process architecture
最后,在搭建测试管理流程过程中,累计完成TMMi的10 个过程域的36 个改进点。建立测试方针与策略、测试管理手册、测试生命周期模型、测试项目管理、测试环境管理等8 项测试管理文件;建立软件合格测试、硬件测试、系统测试、系统验证、法规抽检、同行评审等6 项具体过程规范文件;制定各类报告模板、评审依据、核查单等20 余项,形成公司宝贵的测试管理资产。
2.3 软件测试环境与工具链改进
信息在工具中的孤立存在,对测试管理是一种低效且难以有效服务管理工作的状态。建立和部署一体化管理信息系统,有助于促进组织内部将实践、过程、运作进行形式化和标准化,提高组织管理成熟度。一个有效的工具链应能提高研发项目的成功率,帮助研发团队提高效率,降低项目成本,并提高项目的及时交付率。全生命周期模型的管理工具应能够融合方法论、TMMi 模型以及其他测试管理实践。
引入看板作为项目任务管理工具,搭建WeKan 系统,进行测试任务的安排,让项目协作权责分明、分工清晰,实现测试过程实时监控及测试过程度量数据的高效统计。
搭建测试环境管理平台,HIL 预约系统,将部门内的测试环境录入系统,测试人员在系统中可查看到当前满足测试条件的空闲HIL 信息,先预约再使用,释放后其他人可预约使用;平台上可监控每台HIL 的实际利用情况,通过白天手工测试及晚上自动化连跑的方式,对测试环境实现高效充分的利用。
建立测试资产管理平台-Wiki(多人协作的写作系统),将培训材料、测试文档、规范模板等分类上传到系统,实现部门内知识共享和信息整合,提高资产的复用率。
3 项目应用及效果
将上述的基于TMMi 的测试改进流程应用到实际项目中,在项目的实施过程中,记录发现的不符合项,并评价各个过程满足TMMi 要求的程度如图5所示。
图5 差距打分表Fig.5 Gap scoring table
通过对发现的不符合项进行原因定位和解决,进行测试流程的持续优化和改善,逐步形成一套适合本测试团队业务,符合行业标准要求的测试管理流程,最终获得TMMi 的3 级认证。
在项目应用过程中,建立14 项测试流程规范,确保测试过程可控,测试方法一致,确保测试质量稳定,使得测试过程更加规范;经过培训,测试人员专业能力得到提升;根据风险分析开展不同程度的测试,测试用例覆盖率提高30%,自动化率提高46%,测试效率进一步提高;数字化决策平台实时监控项目进展情况,实时度量缺陷严重度、缺陷状态分布,质量监控可视化程度提高;细化测试过程流程图,完善指导文件、模板20 余项,管理成本有效降低;建立组织级过程资产库,建立复用资产390 余项,资产复用率进一步提高。
4 结语
通过项目的试用,基于TMMi 的测试过程改进可以帮助测试部门提高软件测试效率,提升软件质量保证能力。下一步,需要在部门内的所有项目中进行推广落地,在实施过程中持续改进,优化流程,实现测试流程的动态持续改进,进一步提高软件测试效率。