技术开发 频道

软件测试过程度量研究

【IT168 技术文章】

    软件测试是软件质量保证的重要手段,有研究表明:越早发现软件中存在的问题,开发费用越低,软件质量越高,软件发布后的维护费用越低。一个好的、成熟的软件测试过程能够最大限度地保证软件测试的质量和有效性。目前,对软件测试的研究工作主要集中在测试技术和测试工具上,而对测试过程的改进研究工作还需进一步加强。

    度量是改进过程的有效途径之一。通过对测试过程的度量,可以使测试过程规范化、可视化;对度量数据的分析,可以测量出测试过程的有效性及存在的问题,明确测试过程的改进方向,从而保证软件的质量。因此,对软件测试过程的度量研究具有十分重要的意义。

    CMMI与软件测试

    CMMI是美国卡耐基梅隆大学的软件工程研究所针对软件质量保证的核心—软件过程改进所提出的,它是一个成功的、广泛使用的过程改进模型。

    众所周知,软件测试是软件过程不可分割的一部分,所以CMMI实际上也为软件测试过程改进提供了一系列的指导方针和关键原则。在CMMI连续表示中,验证(VER)和确认(VAL)过程域紧密的与软件测试联系在一起;而诸如配置管理(CM)、风险分析(RSKM)、量化项目管理(QPM)等过程域也同样包含了对测试过程改进的有力支持。

    CMMI与度量

    CMMI提供了度量和分析(MA)过程域,其目的是开发和维持用于支持管理信息需要的度量能力。MA实际包含了度量和分析两个步骤,度量在前,是为获得过程或产品的表征数据;分析在后,是对数据进行分析,发现不一致、发现趋势和发现问题。

    CMMI的度量和分析流程主要分为3个部分:计划、收集和分析。在计划阶段,主要任务是度量目标的确定和目标的细化;在收集阶段,主要任务是按数据采集和存储规程进行数据的收集、数据完整检查;在分析阶段,主要任务是按分析规程进行数据分析、存储数据和结果,以及报告结果。MA过程域定义严格,流程清楚,目标明确,可以用它来指导软件测试过程的度量活动。

    软件测试过程

    按照MA的指导,任何对过程的度量都是建立在清晰的过程定义上的,因此,必须对软件测试过程有一个准确的定义。传统的软件测试过程包括:测试计划、测试设计、测试开发和测试执行等阶段,每个阶段都有一系列的任务。但是传统的软件测试过程定义无论是从测试范围还是测试工作方式上都存在着明显的不足,不利于进行过程度量,而CMMI则对传统的软件测试过程进行了扩充。因此,我们提出了一个基于CMMI的软件测试过程模型(software test process model,STPM),如图1所示。
   
    STPM有如下几点改进:

    (1)软件测试不再只是对程序代码的测试工作,而是包含了所有在软件开发过程阶段产出物的测试工作,这扩展了测试工作的范围,更有利于发现软件开发中的缺陷;

    (2)测试过程与整个软件开发过程是并行的,扩展了测试过程的工作方式;

    (3)清晰的定义了过程的输入输出流,为整个过程的度量奠定了基础;

    (4)将测试的结果纳入到了软件开发的缺陷管理机制中,扩展了测试的作用。

    度量目标

    通过对STPM的分析 ,可以确定3类度量目标:①对测试产品的度量,这主要是对应STPM的输入,包括需求规格说明、详细设计说明、系统设计说明以及程序代码等的度量;②对测试过程产品的度量,这主要是对应STPM的输出,包括测试用例、测试报告等的度量;③对测试过程本身的度量,主要是对应STPM的执行状态,包括时间状态、环境状态等的度量。

    度量元的选取和细化

    CMMI为过程改进提供了足够多的实践指导,但是,它只阐述了该做什么,而没有阐述该如何做,这一点也在MA中体现了出来。所以,在CMMI提供的要求和原则下,具体的度量和分析工作需要我们自己来定义。在此,我们引入GQM方法来保证度量元选取和细化的有效性。GQM(goal-question-metric)方法源于软件行业,是一种系统地对软件及其开发过程实施定量化的度量方法。GQM引入了目标驱动的度量概念,在软件开发过程中已经取得了很好的效果。GQM的基本思想是:先确定一组目标:再针对各个目标,提出可能会遇到的问题,来定义这个目标;最后,针对每一个问题再给出一组测量方法,并用这一组测量方法测量出来的数据(度量元)就是对这个问题的回答。

    GQM方法在实施过程中最重要的就是要保证G、Q、M之间问题转化的完整性和匹配性。而对CMMI的一个单独的过程域而言,可以这样来描述:首先,对该过程域定义一个目的;然后,为了达到这个目的,给出了一系列的关键目标(包含特定目标和共性目标);最后,针对每一个目标,细分关键实践来实现,而每个关键实践又可再分为具体的子实践。即是说,CMMI的过程域从定义到实践是一个严格意义上的完整性和匹配性转化。如果从每个过程域的角度来进行软件测试过程的度量研究,那么就可以建立起CMMI模型与GQM方法的映射关系,如图2所示。

0
相关文章