摘要:为了提高软件测试的效率和软件测试的质量,软件人员不仅要研究软件测试的各种技术、方法和工具,还必须注重软件测试过程的管理和改进。在这种需求的牵引下,Illene Burnstein、C. Robert Carlson和Taratip Suwannasart在1996年质量周会议上提出用以评估测试过程的软件测试成熟度模型(TMM)[1]。本文在介绍TMM五级结构的基础上,讨论在各成熟度等级上的可用于评估软件测试过程的对象和方法。51Testing软件测试网vOx.o*l4KL
关键字:软件测试成熟度模型,测试过程,评估,度量51Testing软件测试网 FD-^8R?I
一、TMM简介51Testing软件测试网
v;N?U ~9@~ g
软件测试成熟度模型(TMM)[1]是当前影响力最大的软件测试过程模型,具有如下优点[2]:
"_$^,M-B:Q ~!P2i0X0 等级水平结构、关键活动和角色的定义最为精细
4v/u-[*RI0 测试相关因素覆盖最全面51Testing软件测试网ffA"BRV?
支持测试过程成熟度增长
;{0Mj!mzM
B7|9fb0 有定义良好的评估模型的支持
!j.LU+M2Ix-ggQ0 作为一类等级递增模型,TMM体现了20世纪50年代到20世纪末的测试阶段划分和测试目标定义的发展历程。它来源于当前的工程实践总结,并充分利用了Beizer的测试人员思考模式的进化模型。它能够用于分析软件测试机构运作过程中最优秀或最混乱的区域,并辅助软件测试机构进行测试过程的评估与改进。
&n&m/w]
ZrhAk^0 TMM制定了五个成熟度等级:初始级,阶段定义级,集成级,管理和度量级,优化、缺陷预防和质量控制级。各级成熟度水平包含了一组成熟度目标和子目标,以及支持它们的任务、职责和活动。51Testing软件测试网 A
`H!JWwV*j#O
1)第一级 初始级
Es$SY`%tp0 TMM初始级软件测试过程的特点是测试过程无序,有时甚至是混乱的,几乎没有妥善的定义。初始级中软件的测试与调试常常被混为一谈,软件开发过程中缺乏测试资源,工具以及训练有素的测试人员。初始级的软件测试过程没有定义成熟度目标。51Testing软件测试网({oUb;m9F
2)第二级 阶段定义级
c!rxJ'{}`6]0 TMM的阶段定义级中,测试活动是按照计划进行的,测试己具备基本的测试技术和方法(如白盒测试和黑盒测试),软件的测试与调试己经明确地被区分开。这时,测试被定义为软件生命周期中的一个阶段,它紧随在编码阶段之后。但在定义级中,测试计划往往在编码之后才得以制订,这显然有背于软件工程的要求。
M QFjYT})k4LTkX0TMM的阶段定义级中需实现3个成熟度目标:制订测试与调试的目标和策略,启动测试计划过程,制度化基本的测试技术和方法。
'Fm_u,Cb*@8z3~e03)第三级 集成级
0eUDY*u0K:s o0 在集成级,测试不仅仅是跟随在编码阶段之后的一个阶段,它已被扩展成与软件生命周期融为一体的、一组已定义的活动。测试活动遵循软件生命周期的V字模型。测试人员在需求分析阶段便开始着手制订测试计划,并根据用户或客户需求建立测试目标,同时设计测试用例并制订测试通过准则。在集成级上,应成立软件测试机构,提供测试技术培训,关键的测试活动应有相应的测试工具予以支持。在该测试成熟度等级上,没有正式的评审程序,没有建立质量过程和产品属性的测试度量。集成级要实现4个成熟度目标,它们分别是:建立软件测试机构,制订技术培训计划,软件全寿命周期测试,控制和监督测试过程。51Testing软件测试网&xP{Qb.|K
在TMM的定义级,测试过程中引入计划能力。在TMM的集成级,测试过程引入控制和监督活动。两者均为测试过程提供了可见性,为测试过程持续进行提供保证。
y1fm`.~O!viMy04)第四级 管理和度量级51Testing软件测试网3ueFu~,og
{wQg
在管理和度量级,测试活动除测试被测程序外,还包括软件生命周期中各个阶段的评审,审查和追查,使测试活动涵盖了软件验证和软件确认活动。根据管理和度量级的要求,软件工作产品以及与测试相关的工作产品,如测试计划,测试设计和测试步骤都要经过评审。因为测试是一个可以量化并度量的过程。为了度量测试过程,测试人员应建立测试数据库,收集和记录各软件工程项目中使用的测试用例,记录缺陷并按缺陷的严重程度划分等级。此外,所建立的测试规程应能够支持软件组织最终对测试过程的控制和度量。管理和度量级有3个要实现的成熟度目标:建立组织范围内的评审程序,建立测试过程的度量程序和软件质量评价。51Testing软件测试网+Y%IIX6y5tF
5)第五级 优化、预防缺陷和质量控制级51Testing软件测试网
hO-E/h%SzEd
由于本级的测试过程是可重复的、已定义的、已管理的和己度量的,因此软件组织能够优化调整和持续改进测试过程。测试过程的管理为持续改进产品质量和过程质量提供指导,并提供必要的基础设施。优化、预防缺陷和质量控制级有3个要实现的成熟度目标:应用过程数据预防缺陷,质量控制,测试过程优化。
W]Gf.o@
v0二、基于TMM的测试过程评估51Testing软件测试网
w7]d/KR:QX^Y
虽然TMM在管理和度量级才明确提出了正式的度量以及评估计划,但定义度量对象与度量方法的工作则可以在四级以下进行,因为度量本身就是支持更高成熟度目标的实现以及当前能进行的最佳测试活动的实施[3]。软件测试机构可从低级、粗略的度量做起,随着成熟度等级的提高,度量逐步深入和细化。与成熟度的等级关系相似,高等级的度量包含了低等级的度量。51Testing软件测试网h(l?0vsi
下面讨论在各成熟度等级上,可应用于软件测试机构的度量对象和度量方法。51Testing软件测试网+Kp#h!R+p![M
1)初始级度量51Testing软件测试网-P5]6p5e!mjA%M
初始级没有成熟度目标,但从这一级开始收集测试度量信息仍然是有必要的,如此测试机构才能建立相应的项目信息数据库,推动测试机构实现更高等级的测试过程成熟度。初始级实施度量的主要目的是建立基线过程,并为测试机构实现第二级的成熟度目标做好准备。
5uK3BP#W,B0 处于TMM初始级的软件测试机构可度量以下信息:51Testing软件测试网 iA5NCe+c2p5Ch(c
a)规模度量51Testing软件测试网
N~:J"nMO%n
规模对于测试项目,测试计划,成本/工作量预测,风险评估,效率度量而言,是一项非常重要的度量因素,它包括:51Testing软件测试网9i#|9?$P7mB
软件产品规模
V0P.ao6p0 测试对象数量51Testing软件测试网"x/V9dv*db_
测试用例编写数量51Testing软件测试网i_T7lC([z
测试用例执行数量51Testing软件测试网M&x$ZVHr
b)缺陷度量
wy
`
a`1A7^0 软件异常数量
Od'l'I+u0 缺陷率51Testing软件测试网H0B:o~j@t
测试机构在此级开始收集缺陷信息的目的是:在实际测试中对发现的各类问题有着文档化的记录。缺陷信息有助于评价软件质量,支持软件开发和测试过程的改进,同时对软件缺陷数据库的建立提供了基础。
6GRUKA o-M!_]0c)成本/工作量51Testing软件测试网Q/X"G6}Y7Dm[
测试项目总体成本
eYqF*Lx;Y&V0 测试执行小时数
z&ix/Me0 测试工作量成本
)p@[`(G-| |8p8OK W A0 成本度量则有助于测试计划(TMM2级)中的测试成本预测。通过收集成本/工作量度量信息,软件测试机构就可以开始着手建立成本数据库,为将来的测试项目提供成本预测方面的支持。51Testing软件测试网
rJ(l7we5@*AvM
pu{Y ZI)r3R02)阶段定义级度量
qge]v3F0 此级中,软件测试机构应当选择支持测试过程基线工作和实现第二级成熟度目标的度量项。除了等级1中的成本/工作量,还应当收集各测试类型的时间/工作量数据,以支持和评估测试活动的效率。度量对象如下:
E)l jXP]0 代码走查、系统测试的计划时间
#mo*kX?I|(LM0 代码走查、系统测试的执行时间
:F
x$E6D u!w0 代码走查和系统测试是软件测试机构被授权的测试类型。如果有其它测试类型,则同样要搜集其设计和执行时间。51Testing软件测试网 KQnz*PcDk.a
有助于制定,评估和改进测试计划的度量包括:
H0BW|1t(i!SHy0 计划生成的测试用例数量
:U.~c$w%g0 实际生成的测试用例数量51Testing软件测试网Oo u+T;r.q'P
计划的测试覆盖率
y
i'gn:Ku,o0 实际的测试覆盖率
W Lg$@7a#L'V0 成本性能指数(CPI,指计划的测试时间与实际测试时间之间的比例[4],这是评价测试计划的质量的最简单的方法)
!I3D,}#XM0 为了实现TMM等级2中的成熟度目标,还应当收集缺陷相关度量数据:
d&]+tgqsH,j `?6^0 测试各阶段(代码个人走查,代码会议走查,系统测试,系统回归测试等)发现的缺陷数量51Testing软件测试网3jks-z yj+|!]W?
各类型缺陷的数量51Testing软件测试网YM&u"`
a:P/n
以上描述的度量能用于评估各类型测试的效率,同时也有助于测试机构评估测试过程变更的影响。收集的以上度量数据为缺陷预防,设置软件质量目标以及软件风险管理提供了有力支持。51Testing软件测试网+p:CP V1Y#t1k-[;D