APP下载

基于TMM 模型的软件测试成熟度探究

2016-07-23冯超男赵卫东张丽

电脑知识与技术 2016年17期
关键词:软件测试

冯超男++赵卫东++张丽

摘要:模型化的软件测试能够很大程度上提高软件测试的质量和效率,而当前流行的CMMI等模型,没有针对软件测试过程进行详尽的描述,没有对软件测试成熟度进行等级化的评价与度量,缺少针对软件测试目标和过程改进的指导。基于这种现状,该文对Burnstein博士提出的测试成熟度模型(TMM)进行了形式化描述,给出了TMM模型的成熟度等级结构,详细阐述了5个测试等级的成熟度目标和子目标,并对TMM的实施方法进行了说明,以及笔者对TMM模型的总结与思考。

关键词:软件测试;测试成熟度模型(TMM);模型框架;成熟度等级结构

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)17-0226-03

Abstract: Modeling software testing can greatly improve the quality and efficiency of software testing, and CMMI and other popular models, there is no detailed description of the process for software testing, software testing is no level of maturity of the evaluation and measurement, There is a lack of software testing process improvement goals and guidance. Based on this situation, this article Test Maturity Model(TMM) has been proposed by Dr. Burnstein formal description given maturity level structure TMM model elaborated five test level of maturity goals and sub-goals,, TMM and implementation methods are described, as well as the author summarizes and Reflection on the TMM model.

Key words: software testing; Test Maturity Model(TMM); modeling framework; maturity level structure

1 背景

随着信息时代的快速发展,软件产业也逐步进入高速增长态势,软件过程的研究已经发展为软件测试行业的基础工作之一。要加强软件组织的开发能力、提高软件产品的质量,就必须不断地对软件过程的能力进行改进。因此,软件能力成熟度模型即CMM在1987年美国Carnegie Mellon 大学软件工程研究所应运而生CMM逐渐成为了评估软件开发过程的管理以及工程能力的标准。目前,已经形成了以个体软件过程、团队软件过程以及过程成熟度集成模型CMMI等为主导的软件开发过程改进体系[1]。但是,传统CMM的着眼点在于软件组织的开发过程和软件过程能力,并没有关于软件测试成熟度的概念,也没有研究改进软件测试过程的方法,因此,随着软件测试在软件生命周期中的地位越来越突出,软件测试成熟度得到了业内人士的高度重视,并且在传统的软件过程成熟度基础上继续进行模型改进,其中,比较具有代表性的是由Ilene Burnstein博士等人提出的软件测试成熟度模型(TMM),该模型是对CMMI模型的补充,是对CMMI模型的存在问题的修正,同时也对改进软件测试过程及提高软件测试能力做出了思想和方法上的指导。

2 TMM模型框架简介

TMM模型为了改进软件测试与评价过程,对CMM模型进行了较大程度的改进与补充。TMM模型在CMM模型的原有基础将软件测试过程划分为初始级、定义级、集成级、管理与度量级和优化级5个等级[2]`。处于初始级的软件测试,是一个混乱的过程,测试过程在编码之后,与调试未加区分;阶段定义级的测试过程,很大程度上凸显出测试过程与调试的区分,但是其被定义为编码之后进行的的独立阶段,显然不符合软件工程的要求;前两个阶段的存在的问题在集成级得到改善,集成级将软件测试融入到整个软件生命周期中,从需求分析开始,测试人员将伴随这个开发过程制定相应的测试计划、测试目标等;从管理和度量级开始,整个测试过程就已经由定性描述进入可度量化的过程。在此过程中,除进行测试之外,还有对软件生命周期各个环节的管理与审查;优化级是以前四级为基础,优化并预防缺陷、质量控制、监控测试成本与效率,为整个测试过程指引方向。

而每个等级(除等级1)都有自己的成熟度目标、子目标以及活动、任务和职责。TMM的模型框架如图1所示。

由图1可以得出,若要达到某成熟度等级,所必须实现的成熟度目标,即软件测试的改进目标。而成熟度子目标的定义更为具体,定义了该等级的范围、界限和需要完成的事项。通过活动和任务来实现子目标,任务和活动涉及实施和组织调整问题。活动和任务则定义了为了软件组织达到某一等级,进行软件测试改进的行动计划。三组人员各司其职,完成相关任务与活动,达到成熟度子目标[3]。

3 TMM的等级结构

TMM将测试的成熟度分为5个等级,每一级别都是一个测试过程,都有自己的过程域,软件组织要想达到更高的级别,就必须先满足前一个级别的过程域。同时也必须完成所有的被定义的目标。这些目标的定义,需要通过活动、任务和责任进行标记,在进行过程中,需要根据相关人员的特殊需求来不断调整[1]。如图2所示:

在TMM等级描述中,详细阐述了测试过程的特点以及为达到规定级别所需要完成的目标和子目标。

1)第一等级为初始级。软件测试的终极目标是为了查找程序中的错误,在这一阶段,由于相应的编码任务还没有完成,缺乏一定的测试资源,因此软件测试没有相对清晰的目标,测试任务也可有可无。

2)第二等级为定义级。在这一阶段,软件测试的目标是为了验证软件是否符合相应的需求,因此会启动一些相应的软件测试计划过程,并对采用的软件测试方法制度化,在定义级,由于在进行软件测试之前要把所有的编码工作完成,导致的结果就是在需求分析阶段与设计阶段产生的一些软件缺陷会一直遗留到编码阶段才能被发现。

3)第三等级是集成级。在这一阶段,会有相应的、相对独立的测试部门出现,测试工作不需要在完成编码后才能进行,而是在满足用户需求的目标上进行测试工作。并集成到软件生命周期的各个阶段中。在第三等级,需组建一个软件测试组织用于负责测试规划、测试缺陷跟踪等测试技术工作。同时在测试过程中需要有相应的测试工具对测试工作进行辅助。同时,软件测试小组成员要和质量保证专家一起,与客户进行沟通,从软件需求分析阶段制定软件测试计划,并根据需求分析表格制定相应的软件测试目标。该阶段的缺点为没有行之有效的评审制度以及没有一套质量控制与度量的标准等。

4)第四等级为管理与度量级。在这一阶段,软件测试是可以进行度量与质量控制的过程,应保证进行可靠性、可用性与可维护性等方面的测试。软件测试活动既包括程序语言,还把评审与审查作为软件测试活动的补充,用于发现及消除软件产品缺陷。为了测试过程的完备性,建立了缺陷管理系统并将缺陷的等级进行划分。同时测试人员采用数据库记录和管理相应的测试数据以及测试用例。但在管理与度量级,由于没有相应的缺陷预防系统,不能自动的进行收集与分析软件测试中生成的相应数据。

5)第五等级为优化级。在这一阶段,改进了第四等级的缺陷,已经具有相应的缺陷预防能力和软件质量控制能力,能够保证之前发现的缺陷不会在后期继续产生。在这一级,自动化测试工具是整个测试过程的重要组成部分。可以进行自动的收集与分析测试中产生的数据。并建立了测试流程与测试的规章制度。由于优化级的测试活动是可重复性、已定义、已管理和已测量,所以软件组织可以对测试过程进行不断的优化改进和调整。

根据上面描述的TMM的5个等级,给出相应的成熟度等级目标和子目标,如表1所示。

② 为软件测试活动定义相应的目标、任务、活动和工具等\&

启动测试计划过程\&① 制定软件测试计划模版并进行任务分配

② 获取用户需求

③ 准备软件测试活动所需的工具\&将基本的测试技术和方法制度化\&① 在软件组织中实施基本的测试技术与方法,例如黑盒测试、白盒测试策略等。

② 制定相应的管理制度,明确规定基本的测试技术和方法何时、怎样实施,以及基本的测试工具等。\&集成级\&

建立软件测试组织\&① 选择和培训相关人员成立测试小组

② 为每个测试小组成员进行职责分配

③ 与客户进行讨论,获取用户需求\&

制定技术培训计划\&① 为测试人员制定技术培训计划

② 明确具体的培训内容,例如:测试方法、测试标准、测试技术与工具、审查与评审过程等\&将软件测试集成到软件生命周期中\&① 将软件测试计划阶段划分为和生命周期各阶段相关联的各个子阶段

② 将测试策划集成到生命周期的各阶段

③ 打通渠道,提高用户参与度\&控制与监督测试过程\&① 监督和控制过程可视化,为测试过程提供依据

② 随时与测试策划对比,及时调整测试进展

③ 定义和配置测试相关项\&

管理和测量级\&

建立组织范围内的评审程序\&① 拟定正式的评审程序

② 将评审定义为测试活动,在生命周期中实施通行评审

③ 识别、记录、清除软件产品和测试工作的缺陷\&

拟制测试度量程序\&① 拟定一套关于测试过程质量与能力的度量程序

② 准确识别测试数据,对测试数据进行详细处理分析

③ 根据测试结果,不断修正测试计划\&

软件质量评价\&① 根据测试过程充分性,定义可度量的质量属性和目标

② 测试过程完成后,需要保证软件产品可靠、可用、稳定、安全\&

优化级\&

应用过程数据预防缺陷\&① 成立预防缺陷相关小组

② 记录缺陷、分析缺陷,找出缺陷根源

③ 缺陷预防组的相关成员与其他组的成员相互配合制定缺陷预防计划,防止已被识别的缺陷再次产生\&

实施质量控制度量\&① 根据所定义质量属性,进行测试

② 通过统计抽样、等级度量促进测试过程

③ 融入开发团队,减少缺陷,提高软件质量

④ 运用模型工具,加强测试充分性\&

优化测试过程\&① 根据测试进展,量化测试过程,对测试过程不断优化调整

② 建立组织结构标准,支撑成熟度的不断提高\&]

4 TMM实施

为了指导软件工程人员进行正确的软件过程评估,采用TMM等级提供支持。在软件组织中实施TMM时,可遵循以下步骤:

1)准备活动

这个步骤中要建立评估小组,选择与培训小组成员,确定组长,选择测评项目,并制定评估计划,准备参加评估的组织部门。根据客户需求制定评估问题表。

2)实施评估

评估过程中,评估小组成员通过和被评估人员进行沟通,获取相关的评估信息,通过查询相关文档与调查表进行信息补充。为保证信息的准确性与客观性,可将信息记入问题表。评估人员根据记录信息,划分软件组织的TMM等级。

3)分析评估结果

评估人员根据评估输出的TMM等级及相应的记录分析当前软件组织存在的缺陷,并指出该软件组织需要提高的领域以及要达到的下一个目标的优先级。量化的改进目标,制定出相应的行动计划。

4)活动计划

为了使软件组织能够达到TMM的高等级,评估小组应根据高优先级的改进目标开发活动计划,通过该计划描述相应的活动和资源,并改进现有的实践内容和进度。

5 结束语

软件产品的开发过程是一项长期的工程,需要不断研究和实践。本文针对传统软件成熟度模型的不足,将TMM模型进行了详细的阐述。TMM模型补充了CMMI模型的不足,能够充分的覆盖软件测试的一系列问题,并且软件组织可以根据TMM的要求,评估当前软件测试能力的状态,并对测试目标和测试过程进行不断修正,极大提高软件测试人员的工作效率。利用TMM模型不断优化测试过程和目标,将会给软件开发和测试组织带来质量和经济上的双丰收。

参考文献:

[1] 朱少民. 软件测试方法和技术[M]. 北京: 清华大学出版社, 2010: 71-74.

[2] 王峰, 谷天阳, 佟金荣. 软件测评能力成熟度模型研究[J]. 计算机工程与科学, 2011(9): 174-178.

[3] 苏州软件测评中心, 戴晔, 张培培. 测试成熟度模型的研究[J]. 软件工程与标准化, 2007(9): 51-55.

[4] 郭小群, 侯红, 鱼滨. TMM在软件质量保证中的应用[J]. 西北大学学报:自然科学版, 2004, 34(1): 19-22.

猜你喜欢

软件测试
基于OBE的软件测试课程教学改革探索
基于MBD模型自动生成测试用例的软件测试方法
计算机软件测试方法的研究
EXCEL和VBA实现软件测试记录管理
关于软件测试技术应用与发展趋势研究
一种航空机载软件测试项目的进度改进模型
军用软件测试文档生成设计与实现
软件测试工程化模型及应用研究
智能电能表软件测试技术概述
《软件测试》课程教学策略研究