CMMI为过程改进提供了足够多的实践指导,但是,它只阐述了该做什么,而没有阐述该如何做,这一点也在MA中体现了出来。所以,在CMMI提供的要求和原则下,具体的度量和分析工作需要我们自己来定义。在此,我们引入GQM方法来保证度量元选取和细化的有效性。GQM(goal-question-metric)方法源于软件行业,是一种系统地对软件及其开发过程实施定量化的度量方法。GQM引入了目标驱动的度量概念,在软件开发过程中已经取得了很好的效果。GQM的基本思想是:先确定一组目标:再针对各个目标,提出可能会遇到的问题,来定义这个目标;最后,针对每一个问题再给出一组测量方法,并用这一组测量方法测量出来的数据(度量元)就是对这个问题的回答。
GQM方法在实施过程中最重要的就是要保证G、Q、M之间问题转化的完整性和匹配性。而对CMMI的一个单独的过程域而言,可以这样来描述:首先,对该过程域定义一个目的;然后,为了达到这个目的,给出了一系列的关键目标(包含特定目标和共性目标);最后,针对每一个目标,细分关键实践来实现,而每个关键实践又可再分为具体的子实践。即是说,CMMI的过程域从定义到实践是一个严格意义上的完整性和匹配性转化。如果从每个过程域的角度来进行软件测试过程的度量研究,那么就可以建立起CMMI模型与GQM方法的映射关系,如图2所示。
上面的映射关系分为目的层、问题层和度量层,这样,CMMI也是目标驱动的。由于GQM方法是一套已经被证明成功的度量元选取方法,所以在生成了CMMI到GQM的映射后,由CMMI导出度量元是可行的。将CMMI与GQM的映射关系定义为C—G模型,并将应用到C—G模型中的CMMI相关软件测试过程域定义为STPA(software test process area),C-G模型和STPA为度量元选取和细化提供了理论依据。
CMMI不是专门为改进软件测试过程而出现的,所以将STPA引入进入C—G模型中时,需要有一定的剪裁和适用的选取原则,才能保证度量元的有效性。本文从过程域、实践、文档、公共特性和相似结果5个方面,根据STPM,提出度量元的选取和细化遵循原则。
原则1 过程域剪裁。每个STPA都有几个相关过程域,如果几个STPA同时都包含一个确定的过程域,那么该过程域应该保留并合并;如果STPA涉及的相关过程域与软件测试相关性不强,那么该过程域应该完全删除不予考虑。这样既可以保证STPA引申出来的软件测试实践的完整,又可以抓住STPA的核心。
原则2 实践剪裁。CMMI面向的是整个软件过程改进,所以在分析STPA时:①某些关注整个软件过程的实践,关注重点都要置换成软件测试过程,并要以特定的测试输入输出作为基础;②某些与软件测试无关的实践,或者是涉及到过程域的定义、维护以及审查等实践,都可以被剪裁掉;③对某些零散的实践,如果表示的都是同一个目标,那么应该将其合并;④对子实践,如果直接度量元仍然无法确定,应允许再进行拆分。
原则3 文档剪裁。每个STPA都包含了大量繁琐的文档,不利于管理和维护。因此,应该只保留与测试输入输出有关的计划、规程、标准和报告等文档,这也是将整个度量和分析过程开发成自动化系统时所期望得到的文档数据。在保留的文档中,还应该注意相关文档的合并消除,降低文档之间的冗余关系。
原则4 公共特性剪裁。每个STPA都有许多执行能力公共特性,这些内容在企业进行全面过程改进时或许有用,但是在进行软件测试过程度量时,有些显得无关和没有必要。对此,可以采取以下3种方法:①纳入到相关STPA中,例如人员、工具等资源的管理,可以在配置管理中统一度量;②直接作为该过程域的度量目标,例如过程状态管理、维护,可以作为对测试过程本身的度量;③完全放弃,例如人员培训、角色分配等。
原则5 相似结果的合并。通过对不同的STPA分析,可能会对软件测试过程的某个属性重复度量,这时就必须涉及到相似度量元的合并。主要原则有3点:①如果度量元完全重复,那么应该只保留一个;②如果度量元属于同一度量目标,那么两者都应该保留并归为一类;③如果这个度量元是直接度量和间接度量的关系,那么应该将间接度量置于直接度量之下,并与该直接度量的其它间接度量进行合并。
文章来源于领测软件测试网 https://www.ltesting.net/