测试度量

2024-07-18

测试度量(共4篇)

测试度量 篇1

0 引 言

一个软件项目所涉及到的所有人都希望知道测试何时结束,为了能够回答这个问题,就需要对测试工作的执行进行有效地追踪。为了完成这项工作,基于软件缺陷度量的方法收集数据并进一步综合分析就十分重要。一般来说,缺陷度量可以对收集的缺陷数据进行分类和汇总,并使用统计方法或者分析模型得出分析结果,以便了解缺陷集中的区域,明晰缺陷发展趋向,度量测试工作的进度,评估测试人员的效率,预测应用程序的发行时间,确定何时必须完成软件的改正工作,确保软件按时和成功地发布。本论文的目的就是将缺陷度量的方法融入到测试工作中,对缺陷数据进行收集、分析和展示,协助项目管理者以实际数据为依据作出正确的决策,有效地追踪测试工作的执行。

1 缺陷度量

1.1 计划度量

软件缺陷度量的第一个活动是计划度量,计划度量提供了一致的方法来标识项目开发过程管理的信息需要,选择和指定度量,并将它们集成到软件开发的技术和管理过程中。度量计划首先需要标识管理人员进行项目决策时需要的信息需要,而这些信息需要可以通过度量许多不同的软件开发过程元素和产品特征来获得,即可度量概念。这些可度量概念可以形式化为一种度量构造,严格地指定要度量什么,如何对数据进行合并产生满足信息需要的结果。

1.2 获取度量数据

为了高效地进行缺陷度量,必须获取缺陷管理过程中与本次度量有关的相关因素和它们的值,缺陷文档中应该包括的属性有:缺陷id、缺陷状态、测试人员id、提交时间、缺陷所属项目id、缺陷所属模块id、开发人员id、缺陷类型、优先级、修改人id、解决方案、修改时间、修改次数、确认结果等[3,4]。在测试过程中,会不断地收集缺陷度量数据,数据实例如表1所示,例如表1中第一行表示:编号为5的测试人员提交了一个工作流项目wf01的缺陷,所属模块为wf01,因为打印内容或者格式出错,归为C2类,修改优先级为3-Midium,修改人员经过确认缺陷后提出了修改方案,最终修复该缺陷。

1.3 分析缺陷度量结果,追踪测试工作的执行

为了对测试工作的执行进行测量,需要科学地分析度量过程中所收集到的缺陷数据[4,5],需要收集很多的度量,以下将从缺陷持续时间、缺陷纠正到返测的时间、缺陷趋势分析、缺陷修改的质量、缺陷密度、测试人员工作效率共六个方面的核心度量[6],追踪测试工作的执行情况。

缺陷持续时间 它是指从发现缺陷到改正缺陷的时间跨度,同时必须考虑缺陷修正工作的复杂度。该度量用于验证缺陷是否被及时地解决,利用缺陷持续时间的数据,测试组可以分析开发组对改错工作的反应是否影响了测试工作的进度,例如,一个项目记录了100个缺陷,如果历史记载的经验表明开发组每天可以改正20个错误,那么改正该100个错误大约需要一个工作周,缺陷持续时间平均是5天,若缺陷持续时间延长到10~15天,则开发人员对改正工作的迟钝反应,可能会影响测试组在计划的截止期限到来之前完成测试的能力。此外,若开发人员不能及时地修改缺陷,那么在项目中会引起连锁反应。测试人员可能在其他地方也遇到相关的缺陷,创建重复的缺陷报告,而及时地修正工作可以防止此类问题的发生。此外,一个缺陷的持续时间越长,纠正缺陷的难度可能就越大,因为可能在错误代码的基础上又加入了新的代码,如果缺陷在最初发现的时候就被改正了,那么这样对软件的影响程度要比以后改正要小得多。

缺陷纠正到返测的时间 它是指缺陷被修正并且在新版本中发布的时间到缺陷被返测的时间跨度。该度量提供了一种衡量测试组的返测缺陷速度的方法。如果已经改正的缺陷不能得到充分而及时的返测,那么就可能延缓进度,因为开发人员不能得到有关修正的保证,不能确定是否引入新的错误或者原来的问题已经正确解决。更重要的是,正在开发的代码总是假设以前开发的代码已经被改正了,如果上述假设被证明是错误的,那么正在开发的代码也需要返工。如果缺陷不能及时返测,那么就必须提醒测试组返测缺陷修正的重要性,这样开发人员才能继续工作,才能知道他们所做的修改已经通过了返测。

缺陷趋势分析 它是指在测试生命周期内,随着测试工作的进行,发现缺陷数量的变化趋势。缺陷趋势分析有助于确定所发现的缺陷的变化趋势,对于软件产品发布而言,缺陷趋势分析图是辅助决策的重要依据。一般来说,软件发布的必要条件是新缺陷的数量增加呈下降趋势,若不是这样,那么可能表明系统中存在的问题还很多。如果没有发布新的功能,并且正在测试的是相同的代码,但是发现的缺陷数量随着每个新的测试版本在增加,那么可能出现的问题可以归纳为几个方面,分别为:是否对以前的缺陷修改不正确;是否对以前的版本测试覆盖不完全,通过新的测试覆盖发现了新的缺陷;是否在某些缺陷被修正之前,有些测试根本不能执行,当这些测试可以执行的时候,发现了新的缺陷。

缺陷修改的质量 它是指修改后剩余的缺陷数量,即重现率。该度量测量的是缺陷修正工作给以前工作正常的功能带来的新缺陷,或者破坏以前工作正常的功能的百分比。这种计算所得到的数值,用来反映为响应错误报告而进行的缺陷修正工作的质量,有助于测试组确定软件修正工作对以前运转正常的功能所产生的负面影响的程度,如果这个数值很高,那么测试组必须要让开发人员知道这一问题。

缺陷密度 它等于一个需求中发现的缺陷总数/为这个需求执行的测试过程数量,该度量表示,在某个特定的功能部分或者需求中,平均每个测试过程所发现的缺陷数。如果某个功能部分的缺陷密度高,那么需要从以下几个问题认真地分析原因,包括:功能是否复杂,并且因此预计缺陷密度会较高?功能的设计或实现是否有问题?是否低估了难度,没有为该功能分配足够的资源?此外,当评估缺陷密度时,必须要考虑和缺陷相关的优先级。

测试人员的测试效率 它等于测试人员测试出的不同缺陷类型数量与对应权值的乘积之和,再除以本次测试的周期,从而衡量测试人员的熟练程度。影响测试人员熟练程度的因素有两个,分别为测试出不同类型缺陷中权值大的缺陷数所占比重和本次测试周期的长短,最终的结果与缺陷类型数量与对应权值的乘积呈正比,与测试周期呈反比。对于测试效率较低的测试人员,必须考虑他的技能水平、正在进行的测试类型、处在什么测试阶段以及正在测试的应用程序的复杂度和成熟度,从而有效地评估和改进测试人员的测试工作。

2 结束语

本文基于缺陷度量的方法,收集缺陷数据和分析度量结果,测量测试工作的进度,评估测试人员的工作效率,预测应用程序的发行时间,确保软件的成功发布。但是,后期的数据分析部分还有待进一步挖掘,以便为项目管理者提供更多的信息。

摘要:软件的缺陷度量对于显示测试的进度,确保软件按时发布十分重要。基于缺陷度量的方法收集数据,为项目管理者有效地评估项目测试工作的进展情况和测试人员的工作效率提供了有用的信息,从而有效地追踪测试工作的执行。

关键词:软件度量,缺陷度量,软件测试

参考文献

[1]张瑞,郝克刚.软件缺陷度量.计算机应用研究,2005,22(4).

[2]Richard J Lippincott,Lockheed Martin.Methods for Documentation Tes-ting in Tech Pubs Quality Assurance.May 19,2003,Dallas,TX.

[3]Robert B.Grady Etc.Practial Software Metrics For Project ManagementAnd Process Improvement[M].Prentice Hall PTR;April 28,1992.

[4]http://www.51testing.com/缺陷管理.htm.

[5]http://www.51testing.com/编写有效的bug report.htm.

[6]Elfriede Dustin.Effective Software Testing.新语,译.北京:清华大学出版社,2003.

测试度量 篇2

作为一名默默奉献的教育工作者,时常需要用到教学设计,借助教学设计可以更好地组织教学活动。一份好的教学设计是什么样子的呢?以下是小编整理的角的度量教案 《角的度量》教学设计,仅供参考,大家一起来看看吧。

角的度量教案 《角的度量》教学设计1

教学内容:

课本P83-85

教学目标:

知识与技能:

1、知道角的计量单位“度”。

2、认识量角器,初步会用量角器量出角的大小。

过程与方法:

通过解决实际问题的过程,认识量角器的结构与功能;通过实践操作,归纳量角器量角的一般步骤。

情感态度和价值观:

体会统一计量单位和度量工具的必要性,感受数学的简洁严谨。教学重点:会用量角器量出角的大小。教学难点:会正确使用量角器量角。

教学过程:

一、复习引入

1、复习角的组成,并画角,同桌比一比谁的角大。

2、比较角的大小要先知道什么?怎样量出角的大小?今天我们就一起来探讨这类问题的解决办法。(出示课题:角的度量)

二、探究新知

(一)认识角的计量单位

1、师:角的计量单位是什么?

2、课件演示:介绍角的计量单位

3、师:你知道这个角有多大了吗?有这样的几个1°,就是几度。

4、(出示70°角)这个角几度?

(二)认识量角器

1、用1°角拼成半圆,一共有几度?你怎么知道的?它们共同的顶点在哪里?

2、把量角器进行美化,读角的度数(52°、131°)

3、(出示30°开口朝左的角)师:那这个角几度?你是怎么看的?为了方便我们量各种方向角,我们可以从左边顺时针再标数据,这样就形成了度量角工具:量角器。

4、看书P83,对应着自己的量角器去找一找量角器上有什么,再和你的同桌说一说。

5、读角的度数,用手势表示。(开口朝右80°、155°、开口朝左55°)看哪圈刻度?怎么判断?

6、小结:量角器上有两圈刻度,我们怎么判断到底读哪圈的刻度?

(三)用量角器量角

1、学生尝试量角。讨论总结量角的方法:

2、中心点与顶点重合

3、零刻度线与边重合

4、读刻度

三、巩固与提高

1、量∠4=40°,有什么不一样的.方法?两种方法有何不同?

2、量∠5=120°同桌合作,互相检查。

3、量钟面上时针和分针组成的角。

4、量自己画的角,并与同桌的角比一比。

五、总结

1、今天我们学习了什么?

2、书上有一种特殊的量角器,看看它和你们的量角器有什么不同?这把量角器有什么特殊的作用呢?课后探究一下。

角的度量教案 《角的度量》教学设计2

一、教学内容:

角的度量教材第26~28页

二、教学目标

1、认识量角器、角的度量单位,会在量角器上找出大小不同的角,并知道它的度数,会用量角器量角。

2、通过一些操作活动,培养学生的动手操作能力。并通过联系生活,使学生理解量角的意义。

3、通过观察、操作学习活动,形成度量角的技能,同时使学生经历和体验知识的形成过程。

4、在学习过程中,感受数学与生活密切联系,激发学生学习数学的兴趣。

三、教学重点难点:

1、引导学生观察量角器,认识内刻度线、外刻度线、0刻度线和中心点。知道角的计数单位“度”及相关知识。

2、掌握用量角器测量角的方法,能正确测量各种角的度数。

四、教具准备:

量角器、三角板。

五、过程:

(一)导入

教师:昨天我们根据角的边张开的大小认识了几种角,你们还记得吗?

学生说后,请他们按从大到小的顺序排列,即:周角、平角、钝角、直角、锐角。

我们已经认识了角,角的大小和什么有关系呢?大家会比较角的大小吗?

教师出示两个大小相近的角,问同学:∠a和∠b谁大谁小呢? 学生自由发言。

教师:∠a和∠b究竟谁大呢?那大多少呢?大一点?这一点又代表多少呢?今天我们就来学习角的度量,相信学过这节课后,你就能解答这个问题了。板书课题:角的度量

设计意图:通过以问题的形式引出量角器的必要性,培养学生善于思考,发现问题的能力,在自主探究中学习。

(二)探究新知

1、认识量角器

教师:为了使测量更准确,描述更清楚,就产生了标准的测量角的工具——量角器。(板书:量角器)

出示一个量角器。教师边说边演示:人们将圆平均分成360份,把其中的1份所对的角叫做1度,记作1°,通常用1°作为度量角的单位。板书:度1°

提问:你知道一个周角是多少度吗?(360度)

一个平角是多少度呢?(180度)

介绍:度量角的大小,可以用量角器,它把半圆平均分成180份。

2、认识量角器的中心、0刻度线、内外圈刻度。(1)指导

请大家仔细观察自己的量角器,认真地研究研究,看看你有什么发现。

(2)小组合作研究量角器。

(3)学生汇报研究的结果。注意这里要尽量让学生说出自己的想法,有的问题还可以让学生来解答。

教师根据学生的回答,要说明哪里是量角器的中心,哪里是0度刻度线及内刻度和外刻度,量角器是把半圆平均分成180份等。根据回答作出下列板书:中心、0度刻度线、内刻度和外刻度。

小结:量角器上有中心、0度刻度线、内刻度线和外刻度线。

3、量一量。

教师:我们了解了量角器上有什么,究竟怎么使用它呢?接下来让我们一起来研究研究。

(1)尝试量角,探求量角的方法。

出示教材第27页“试一试”,写出∠a和∠b的度数再读一读。教师:通过观察以上两组角,我们会读角的度数了,那该怎样量角呢?请你与同学交流量角的方法。

学生交流完之后,请两位学生到前面演示说明。

通过学生的演示度量,老师组织学生总结用量角器量角的方法,指导学生实际操作,按步骤去量角。

第一步,使量角器的中心点与角的顶点重合;

第二步,使量角器的零刻度线与角一条边重合; 第三步,看角的另一条边所对量角器上的刻度,就是这个角的度数 教师:我们可以把这三句话概括为四个字“两合一看”。“两合”是指中心点与角的顶点重合;0刻度线与角的一边重合。“一看”就是要看角的另一边所对的量角器上的刻度。(板书:两合一看)(2)突破读内圈刻度,还是读外圈刻度的难点。提问:量角器上为什么有内外两圈刻度呢? 教师引导学生带着疑问研究。出示130°和50°的两个角 教师:左边这个角的度数是多少?

是130°还是50°?读内圈刻度,还是读外刻度线上的数? 学生明确:这个角的度数是130°,要读外刻度线上的数。教师:右边这个角应该看内刻度,还是外刻度?是多少度? 学生:这个角是50°,应该看内刻度。

质疑:为什么左右两个角看的刻度线不一样呢?什么时候看内刻度?什么时候看外刻度呢? 学生小组交流。

学生可能会想到以下几种情况

学生甲:我们小组认为,在读度数之前应该先判断这个角是钝角还是锐角,如果是钝角肯定大于90°,是锐角要小于90°,然后再找刻度就不会错了。

学生乙:我们小组认为,要先找0刻度线,如果一条边压住的是外圈的0刻度线,那么肯定读外圈刻度。反过来压住的是内圈刻度的0刻度线,就要读内圈刻度。……

教师:这几个组的方法听起来都挺有道理,我们不妨试一试哪种方法更好。

(3)学生练习量角,巩固新知。小结量角的方法——两合一看 提问:看角的度数时要注意什么?

学生:要注意是看外刻度线还是看内刻度线。问:什么时候看外刻度线,什么时候看内刻度线呢?

小结:找0刻度线,如果一条边压住的是外圈的0刻度线,那么肯定读外圈刻度。反过来压住的是内圈刻度的0刻度线,就要读内圈刻度。设计意图:学生先独立练习,再交流订正,使学生能在练习中进一步将知识内化,并相互帮助提高。通过游戏活动,让学生自主测量角,培养学生学数学、用数学的意识。

(三)课堂作业设计

1、教材第28页第1题。

学生在找出正确答案后,应该说一说是怎样想的。

2、教材第28页第2题。∠1的方向是朝下,可以让学生先说一说量角的方法,然后再进行度量。

(四)课堂小结

今天我们学习了什么内容?你有什么收获?

软件测试成本度量基本方法研究 篇3

关键词:软件测试,成本估算,数据采集,度量分析

0引言

随着软件在各行各业的日益普及,越来越多的企业和用户意识到软件测试的重要性,第三方软件测试行业快速发展。如何预测、评估、控制软件测试成本成为当前研究的重点。软件测试成本度量[1]是对软件测试项目的成本进行数据定义、收集以及分析的持续性定量化过程。PMP[2]从项目经理的角度对项目成本管理进行了规范,CMMI[3]从项目组织层面对如何度量进行了规范。然而,目前国内尚缺乏软件测试成本度量方面的规范。本文对软件测试成本度量方法进行了研究,从软件测试成本的构成、软件测试成本度量的过程、软件测试成本度量的应用三方面阐述如何开展软件测试成本度量工作,为软件测试团队和第三方软件测评机构的测试成本度量提供科学依据。

1软件测试成本构成

软件测试成本由直接成本和间接成本构成。直接成本包括直接人力成本和直接非人力成本,间接成本包括间接人力成本和间接非人力成本。软件测试成本构成[4]如图1所示。

(1)直接人力成本包括软件测试人员的工资、奖金、福利等人力资源费用。对于非全职投入软件测试人员,按照在软件测试项目中的工作量占其总工作量比例折算其人力资源费用。软件测试人员一般包括测试项目负责人、测试分析员、测试设计员、测试程序员、测试人员、测试系统管理员、配置管理员。一人可承担多个角色的工作,一个角色可由多人承担。其中,当软件供方实施测试时,配置管理员由软件开发项目的配置管理员承担;当独立的测试组织实施测试时,应为测试活动配置管理员。

(2)直接非人力成本包括软件测试方为测试该项目而产生的办公费、差旅费、培训费、业务费、采购费及其它未在以上项目列出,但确系软件测试方为测试此项目所花费的费用。

(3)间接人力成本指软件测试方服务于测试管理 整体需求的非软件测 试人员人 力资源费 用分摊 ,包括质量保证人员 、组织级技 术管理人 员等的工 资 、奖金、福利等分摊 。

(4)间接非人力成本 指软件测 试方不为 测试某个 特定项目而产生,但服务于整体 研发活动 的非人力 成本分摊,包括软件测试方场地房租、水电、物业,软件测试人员日常办公费用分摊及各种研发办公设备的租赁、维修、折旧分摊。

2软件测试成本度量过程

软件测试成本度量过程[5]包括软件测试成本的估算、软件测试成本的测量和软件测试成本分析三部分。

2.1软件测试成本估算

2.1.1软件测试成本估算基本流程

软件测试成本估算基本流程如图2所示。

本文所指的被测软件是指具有测试计划或测试合同、具有软件测试所需的各种文档,系统边界已确定、需求描述明确、编码工作基本完成且版本受控的软件。软件测试成本估算从软件规模度量开始,对工作量、工期、成本进行估算,可充分利用基准数据,采用方程法、类比法或类推法。

2.1.2软件规模度量

功能点(FP)与代码行(LOC)是常用的两种软件规模度量方法[6]。然而,随着近年来可视化编程工具、模板库、类库的广泛采用,程序中有大量自动生成的代码、复杂的自动配置脚本或资源 文件设置,在采用这 些工具的 项目中,用LOC进行软件规模度量已经不够准确。相对而言,近年来FP方法得到了不断的改进和完善,其历史数据也有了非常大的积累,技术日趋成熟。鉴于上述两种方法的优缺点,本文选用功能点估算方法。

在软件规模度量前,估算人员应根据测试计划或测试合同中规定的测试范围确定系统边界,然后再根据已确定的系统边界和需求描述、项目特点和度量需求进行软件功能规模度量。在软件规模度量时,估算人员应考虑可能的测试需求变更程度,并对规模度量结果适当调整。

度量的方法可选用国际标准化组织ISO/IEC已发布的以下5种功能规模度量标准 中的一种,即:1ISO/IEC19761(COSMIC-FFP方法);2ISO/IEC 20926(IFPUG方法);3ISO/IEC 20968(MkⅡ 方法);4ISO/IEC 24570(NESMA方法);5ISO/IEC 29881(FiSMA方法)。

根据相关国际标准中的方法适用范围声明,COSMIC方法适用于商业应用软件和实时系 统;IFPUG方法[7]适用于所有类型软件的功能规模度量;MkⅡ方法[8]适用于逻辑事务能被确定的任何软件类型;NESMA方法与IFPUG方法非常类似,但对功能点计数进行了分级,以便在估算的不同时期选择不同精度方法进行估算;FiSMA方法适用于所有类型软件的功能规模度量。

2.1.3工作量估算

工作量估算[9]需要考虑的因素众多,如测试存在的风险、测试中资源可复用的程度等。工作量估算可分估算准备、估算与调整两步。工作量估算的准备主要是分析测试的风险、确定影响测试的主要因素;估算与调整主要是根据风险分析结果,对估算方法或模型进行合理调整,根据软件测试复用情况的分析,调整工作量估算。

2.1.4工期估算

对软件测试工期的估算[10]主要有以 下几种方 式:1根据工作量估算结果和资源情况,对软件测试任务进行分解并制订时间表;2利用基准数据建立“工作量—工期”模型,估算合理的工期范围;3将委托方的期望工期或软件测试方初步制订的工作时间表中的工期与工期估算结果比较;如果委托方期望工期或工作时间表中的工期低于估算出的工期下限或超 出估算出 的工期上 限,则应分析 原因,必要时需对人力资源安排或项目范围进行调整,再重新估算工作量、工期,并制订新的工作时间表。

2.1.5成本估算

(1)估算直接人力成本。估算人员根据工作量估算结果和测试人员直接人力成本费率估算直接人力成本。软件测试方应优先使用本单位的直接人力成本费率数据。直接人力成本的计算宜采用以下两种方式:1根据不同类别人员的直接人力成本费率和估算工作量分别计算每类人员的直接人力成本,将各类人员的直接人力成本相加得到该项目总的直接人力成本;2根据项目平均直接人力成本费率和估算的总工作量,直接计算该项目的直接人力成本。

(2)估算直接非人力成本。估算人员根据项目情况,按照上文中的要求分项估算直接非人力成本。

(3)估算间接人力成本。估算人员根据项目情况,按照上文中的要求分项估算间接人力成本。间接人力成本应按照工作量比例分摊。

(4)估算间接非人力成本。估算人员根据项目情况,按照上文中的要求分项估算间接非人力成本。间接非人力成本应按照工作量比例分摊。

2.1.6软件测试成本确定

软件测试成本计算公式:

2.2软件测试成本数据采集

软件测试成本数据采集分两步:1对软件测试的项目规模、工作量、测试工期数据进行采集;2对软件测试成本的数据采集。

2.2.1软件测试项目规模、工作量、工期数据采集

软件测试项目规模、工作量、工期的数据采集,包括对所测软件项目的总工作量、总工期进行数据采集,还包括对项目不同活动、不同阶段的工作量、工期的数据采集。在软件测试过程中和测试结束后,负责项目度量的人员应定期或事件驱动地对所测软件项目的规模、工作量、测试工期,进行相关数据的采集[11]。

软件测试项目规模的衡量属性为项目的功能模块数。采集的项目规模数据为实际所测试的功能点数。

软件测试工作量的度量目标有两个:项目工作量分布和项目总工作量。项目工作量分布采集的数据为整个测试过程中各阶段、各活动工作量的分布情況。项目总工作量是整个软件测试项目花费的总工作量。

软件测试工期采集的数据为管理整个软件测试项目所持续的时间。

2.2.2软件测试成本数据采集

软件测试成本数据采集包括直接成本的数据采集和间接成本的数据采集。

在软件测试过程中,负责项目度量的人员应定期或事件驱动地对已发生的直接成本进行数据采集。在测试结束后,负责项目度量的人员应按照上文中的要求对各项成本分别进行数据采集。

软件测试成本所需采集的数据包括计划成本(PV)、预算成本(EV)、实际成本(AC)。

2.3软件测试成本分析

软件测试成本分析的主要内容包括成本偏差CV、成本构成、成本关键 影响因素 相关性分 析、成本性能 指数CPI分析。

在软件测试过程[12]中,项目负责人应 定期检查 实际发生成本与估算成本的偏差。数据分析的结果应与利益相关方充分沟通,并采取有效纠正措施。项目结束后,应对成本及相关数据进行分析。

3软件测试成本度量应用

软件测试成本度量采集的数据、分析的结果均可保留。在软件测试项目关闭后,度量人员应对全部的分析资料、报告和呈报结果进行总结,提取对今后工作有价值的经验教训,通过积累公司知识财富库,不断调整成本估算方法。

软件测试成本度量的数据可用于:1项目评价[13];2建立或校正成本估算模型;3组织过程改进。

4结语

软件测试用例可复用性度量 篇4

关键词:软件测试用例,可复用性,度量

0 引 言

软件测试是软件工程不可或缺的一个环节,是软件产品质量的重要保证。当今软件行业快速的开发过程使得软件测试面临不少困难,如测试需求不断增加,新加入的测试人员测试技能和经验不足等。采用软件测试复用是解决测试人员经验不足、提高测试的质量、解决软件测试效率的有效途径。软件测试中的复用主要包括测试过程的复用、测试方法的复用和测试技巧的复用,测试技巧的复用主要指测试用例的复用。将大量的测试用例收集到测试用例库中供测试人员使用,以实现测试用例的复用。对测试用例的可复用性进行度量是保证测试用例库中测试用例的可复用性的关键技术之一。此外,对测试用例的可复用性进行度量还能帮助测试用例库的管理员对用例库进行有效管理和为测试人员选用可复用用例时提供参考。

基于以上目的,本文开展了对软件测试用例可复用性度量的研究。

1 软件可复用性度量相关研究

NATO制定的软件复用指导性标准将可复用性定义为软件构件可以被复用的程度或范围[1]。其中的软件构件不仅包括源代码构件、还包括测试用例、需求规约、软件构架等软件过程中可复用的部分。

国外许多质量模型都提到了软件构件的可复用性,如NATO模型[2]、REBOOT模型[3]等。Jeffery S.Poulin在对众多可复用性度量方法进行了总结后,将软件可复用性度量方法分为两类:先验方法和定性方法。先验方法是根据客观的实验数据进行度量的方法;定性方法则是根据主观认同的规范和标准进行度量的方法[4]。

ISO/IEC9126:2001是业界广泛认可的质量标准,它从外部质量、内部质量和是使用质量三个层面刻画了软件质量,在内、外部质量模型中提出了功能性、可靠性、易用性、效率、维护性、可移植性等质量特性,使用质量模型中提出了有效性、生产率、安全性、满意度等质量特性[5,6,7,8]。

2 测试用例的可复用性度量

测试用例是为一个特定目标所开发的测试实现及其环境、测试输入、测试条件及预期结果的集合,是一种特殊的软件构件。测试用例相对于其他软件构件有其自身的特点,实现对其可复用性的度量需要从设计原则、描述模式等方面考虑。

2.1 可复用测试用例设计原则

本文以上海市计算机软件评测重点实验室承担的国家“863”课题为背景和所开展的软件评测项目为对象,研究得出以下的可复用测试用例设计原则:

(1) 可复用的测试用例应易于理解。

(2) 可复用的测试用例应是独立的。

(3) 可复用的测试用例应具有较好的适用性。

(4) 可复用的测试用例应易于修改、配置。

其中,原则(1)要求测试用例的描述信息完整、规范和易于理解;原则(2)要求测试用例具有强内聚性,能不依赖其他测试用例和特定的测试环境独立运行;原则(3)要求测试用例尽可能适用于较多的领域或平台;原则(4)要求测试用例具有方便修改例化和重新配置的能力,进而能在新的运行环境中工作。

2.2 可复用性度量模型TCRM

借鉴ISO/IEC9126:2001外部质量模型和使用质量模型的基础上,本文提出测试用例可复用性度量模型TCRM(Test Case Reusability Metrics),如图1所示。TCRM模型以可复用测试用例的设计原则为依据,选取易理解性U(Understandability)、独立性I(Independence)、适用性A(Adaptability)、可配置性C(Configurability)(UIAC特性)4个对可复用性有重大影响的特性作为其子特性。此外,TCRM模型还将测试用例使用质量中的可信度作为可复用性的修正特性。因为,复用者对测试用例的信任情况在一定程度上反映了该测试用例本身的可复用能力。使用可信度对可复用性的度量值进行修正,可以使测试用例可复用性的度量值更加接近实际值。使用TCRM模型后,对测试用例可复用性的度量可以转化为对UIAC特性和可信度的度量。

以下是TCRM中UIAC特性以及可信度的具体说明:

(1) 易理解性 它指测试用例使复用者能理解该用例是否合适以及如何将该用例应用于当前测试目标和测试场景的能力。复用者要复用某个测试用例,首先需要理解该测试用例,对测试用例的理解包括对测试目的、测试场景、测试要点的理解。只有对该用例充分理解后才能判断其是否能达到复用要求。所以,测试用例的易理解性直接影响了复用者对测试用例的选择,是可复用性的重要特性。

(2) 独立性 它指测试用例在运行时不依赖于其他的测试用例和特定测试环境而能独立工作的程度。通常情况下,测试用例之间存在相互联系,一些测试用例的运行环境取决于前一个测试用例的执行状态,当前一个用例因为测试环境的变化而失效时,后一个测试用例也随之失去了复用价值。因此,要实现复用,测试用例应该具有相对独立性,即测试用例之间不应该存在线性依赖。能够不依赖特定测试环境的测试用例也更容易被复用。

(3) 适用性 它指测试用例应用的普适性,包括测试场景、被测软件类型的种类,被测软件领域的广度等。测试用例的适用程度越高越容易被复用。

(4) 可配置性 它指测试用例具有被修改例化、配置的能力。测试用例通常是针对特定的测试环境设计的,需要在一定的环境中才能被执行。复用者进行复用时,目标环境与被复用测试用例所需环境可能存在差异,这时往往需要对测试用例进行修改才能实现复用。测试用例被修改和配置的难易程度也是决定其可复用性的关键因素。

(5) 可信度 它指复用者对测试用例的信任程度。可信度是测试用例使用质量的一部分,从复用者的角度出发,用例复用次数、复用者评分、复用者评论等因素都反映了复用者对测试用例的信任程度。

3 TCRM模型的实现

本文设计了一套针对TCRM模型的度量方法,该方法第一步先对可复用的软件测试用例进行统一描述,即设计一个可复用测试用例模式,所有要进行度量的测试用例使用该模式描述。可复用测试用例模式必须能够满足实际软件测试需要,并且其中的元素或子元素能方便进行统计。第二步找出可复用测试用例模式中的元素或子元素和UIAC特性以及可信度之间的关联。第三步使用对某个特性有影响的元素进行计算,得到测试用例该特性的度量值。

3.1 可复用测试用例模式

本文设计的可复用测试用例模式包括7个元素,即用例ID,前驱用例ID,版本信息,接口信息,使用信息,测试概要和测试项,如表1所示。其中接口信息可以使测试用例满足检索要求,同时也使测试用例的描述更加全面;使用信息用来记录复用者使用该测试用例时的信息;而测试项可以为任意多项,每个测试项也可以有任意多步骤。表1列出了可复用测试用例模式包括的元素和子元素,以及它们的说明,同时也给出了各个元素所影响的特性。

3.2 度量方法

测试用例使用可复用测试用例模式进行描述后,即可开始对测试用例的可复用性进行度量。可根据表1中影响UIAC特性的元素对UIAC特性进行度量,从而得到测试用例可复用性的初始值,然后再对可信度进行度量,最后使用可信度的度量值对可复用性的初始值进行修正。

(1) UIAC特性度量

1) 易理解性度量

易理解性主要根据测试概要和测试项进行度量,详细度量如下:

易理解性:U=XUTs+YUTi(0≤U≤1,越接近1易理解性越好)。

度量方法:

UTs为测试概要的度量值,UTs=WTpUTp+WTcUTc+WTeUTe(WTp,WTc,WTe为权值,表示UTpUTcUTe影响UTs的程度,且满足归一化WTp+WTc+WTe=1,0≤UTs≤1),若度量的测试用例没有测试目的、测试场景、测试要点的描述则UTpUTcUTe对应为0,反之为1。

UTi为测试项的度量值,UTi=N/Ti,Ti为度量的测试用例包括的测试项数目,该公式中N为度量的测试用例前置条件,测试操作、测试输入和预期结果的描述全部存在的测试项数目。

XY为变量,分别表示UTsUTi影响U的程度,满足X+Y=1。设置XY两个变量是因为随着测试项数目的增加,理解测试项所花费的成本也相应增加,即测试项对测试用例易理解性的影响将增大,用Y的增减来表示UTiU影响程度的增减。这里取Y=WY1+WY2((Ti-1)/Ti),WY1、WY2为权值,用于控制Y的取值,进而控制UTsUTiU的影响程度,且满足WY1+WY2=1。从Y的计算公式中,我们可以看到当测试项增加到一定的值时Y将趋于1,X趋于0,这和实际情况不相符合,因为实际当中对测试概要的理解始终影响着对整个测试用例的理解。所以,Ti>10时,取Ti=10来对Y进行计算。

2) 独立性度量

独立性主要根据前驱用例ID和测试场景进行度量,详细度量如下:

独立性:I=WPtIPt+WTcITc(WPtWTc为权值,表示IPtITc影响I的程度,且WPt+WTc=1,0≤I≤1,越接近1独立性越强)。

度量方法:

IPt为前驱用例的度量值,该度量的测试用例存在前驱用例则IPt为0,反之为1。

ITc为测试场景的度量值,度量测试用例的测试场景如果包含特定的测试环境,如特定的操作系统,则ITc为0,反之为1。

3) 适用性度量

适用性度量主要根据接口信息进行度量,详细度量如下:

适用性:A=WDtADt+WTtATt+WStASt+WSdASd(WDtWTtWStWSd为权值,表示ADtATtAStASd影响A的程度,WDt+WTt+WSt+WSd=1,0≤A≤1,越接近1适用性越强)

度量方法:

ADt是设计技术的度量值,其值为度量的测试用例用到的设计技术与所有列出的设计技术的比值。

ATt是测试类型的度量值,当度量的测试用例测试类型为功能测试时,ATt等于1;为其他测试类型,ATt等于0.5,无明确测试类型时,ATt为0。

ASt是被测软件类型的度量值,其值为度量的测试用例所测试的软件类型数与所有列出的被测软件类型数的比值。当被测软件类型为“通用”时,ASt值为1。

ASd是被测软件领域的度量值,其值为度量的测试用例所测试的软件应用领域数与所有列出的被测软件领域数的比值。当被测软件领域为“通用”时,ASd值为1。

4) 可配置性度量

可配置性度量主要根据测试项进行度量,详细度量如下:

可配置性:C=WPCP+WSCS(WPWS为权值,表示CPCS影响C的程度,WP+CS=1,0≤C≤1,越接近1可配置性越高)。

度量方法:

CP是测试项中前置条件的度量值,CP=1-N/Ti,Ti为度量的测试用例包括的测试项数目,该公式中N为度量的测试用例中以其他测试项执行结果作为前置条件的测试项数目。

CS是测试项中测试步骤的度量值,CS=N/S,S为度量的测试用例包括的测试步骤数目,该公式中N为度量的测试用例中能独立于前后测试步骤的测试步骤数目,即能单独执行的测试步骤。

(2) 可复用性初始值

可复用性初始值主要由UIAC特性决定,度量如下:

可复用性:R=WUU+WII+WAA+WCC(WU、WI、 WA、WC为权值,表示U、I、A、C影响R的程度,WU+WI+WA+WC=1,0≤R≤1,越接近1可复用性越高)。

为了获得以上度量方法中权值的取值,我们从大量实际应用的测试用例中挑选出100个,100个中有被复用过多次的测试用例,有较少被复用的测试用例,也有不具备复用价值的测试用例。对这100个测试用例进行处理后交由10个具备丰富项目经验的资深测试工程师进行评分。测试工程师分别对100个测试用例的易理解性、独立性、适用性、可配置性和可复用性进行评分,评分从0分到1分,分值越高特性越强。

要获得易理解性度量方法中权值的取值,先对100个测试用例的测试概要和测试项进行随机处理,先随机的去除一些测试用例的测试目的、测试场景、测试要点的描述,再随机去除一些测试用例某个测试项的测试输入或测试数据,但测试用例的其他元素全部予以保留。将进行处理后的测试用例交由10位测试工程师,让他们针对易理解性进行评分,再统计每个测试用例的易理解性平均得分。对100个测试用例的易理解性得分进行统计计算后可以得到WTp、WTc、WTe、WY1、WY2的值。

采取上述方法同样可得到其他特性度量方法中的权值,最终得到度量公式为:

U=XUTs+YUTi

其中: Y=0.37+0.63((Ti-1)/Ti)

X=1-Y,UTs=0.35UTp+0.42UTc+0.23UTe

I=0.75IPt+0.25ITc

A=0.18ADt+0.45ATt+0.25ASt+0.12ASd

C=0.65CP+0.35CS

R=0.32U+0.23I+0.28A+0.17C

(3) 可复用性修正

可信度度量主要根据使用信息进行度量,详细度量如下:

可信度:Cr=WRcCrRc+WRmCrRm(WRc、WRm为权值,表示CrRc、CrRm影响Cr的程度,WRc+WRm=1,-1≤Cr≤1,Cr的绝对值越大则修正幅度越大)。

度量方法:

CrRc为测试用例复用次数的度量值,CrRc=(Rc-QRcDc)/max(Rc,QRcDc),-1≤CrRc≤1,Rc为度量的测试用例的复用次数,Dc为度量的测试用例加入到测试用例库的天数。QRc为系数,取值范围为正实数,它用来表示Rc和Dc的关系,其值将根据测试用例库的实际情况设置。

CrRm为测试用例复用者评分的度量值,其值为所有复用者评分的平均值Rm与R的差值,复用者评分的范围为0分至1分,则0≤Rm≤1,-1≤CrRm≤1。

修正后的可复用性度量如下:

当Dc≤30,R=0.32U+0.23I+0.28A+0.17C

当Dc>30

R=0.32U+0.23I+0.28A+0.17C+WCrCr(WCr为权值,表示Cr影响R的程度,0≤WCr≤1)

上述公式的计算结果R>1时,取R=1,R<0时,取R=0。

3.3 应用实例

本节以实际项目中常见的系统登录为例,来说明如何根据上节提出的度量方法对测试用例的可复用性进行度量。

表2为验证系统登录的测试用例实例,以下是对该测试用例可复用性度量值的具体计算方法。

计算易理解性U:

UTs=0.35×1+0.42×1+0.23×1,UTi=2/2=1

Y=0.37+0.63((2-1)/2)=0.685

U=(1-0.685)×1+0.685×1=1

计算独立性I:

IPt=1,ITc=1

I=0.75×1+0.25×1=1

计算适用性A:

ADt=1/18(18种设计技术) ATt=1 ASt=1 ASd=1

A=0.18×1/18+0.45×1+0.25×1+0.12×1=0.83

计算可配置性C:

CP=1-0/2=1 CS=2/2=1

C=0.65×1+0.35×1=1

则可复用性的初始值为:

R=0.32×1+0.23×1+0.28×0.83+0.17×1=0.9524

为了说明可信度的计算方法和可复用性的修正过程,这里暂取RcDc为100、40,Rm取0.9,WRcWRm取0.75、0.25,QRc取5,WCr取0.15。

则可计算可信度Cr:

CrRc=(100-5×40)/(5×40)=-0.5

CrRm=0.9-0.9524=-0.0524

Cr=0.75(-0.5)+0.25(-0.0524)=-0.3881

最后,对可复用性的初始值进行修正:

R=0.9524+0.15(-0.3881)=0.89415

3.4 度量方法验证

使用TCRM模型对前文提到的100个测试用例进行度量,其度量结果与这些测试用例的被复用次数Rc进行对比。

根据Rc的取值划分10个区间,用区间中间点的值作为该区间的区间值,区间值越高表示该区间内测试用例被复用次数越多,即该区间内测试用例的可复用性越高。若一个测试用例的Rc介于一个区间,则该测试用例属于该区间,以此统计每个区间的测试用例数量。然后使用TCRM模型对区间内测试用例的可复用性进行度量,得到区间内每个测试用例的可复用性度量值,计算它们的平均值A(R)。最后对比每个区间的区间值与A(R),具体对比情况可见图2。

从图2可以看到,A(R)与每个区间的区间值基本成正比,即A(R)的大小变化与测试用例被复用的次数的变化基本是一致的。该结果表明使用TCRM模型对测试用例的可复用性进行度量所得到的度量值,基本能代表测试用例实际所具有的复用能力。

4 TCRM模型应用

TCRM模型将应用于国家“863”项目——基于可复用测试用例库的测试管理平台(以下简称测试管理平台),该项目使用TCRM模型来对测试用例库中的测试用例进行度量。

测试管理平台以可复用测试用例库RTCL(Reusable Test Case Library)为核心,为软件企业提供完成整个软件测试流程的所有功能,其组织和使用方式可见图3。测试管理平台中的测试用例将使用可复用测试用例模式进行描述,从而更好地实现测试用例的搜索、复用和度量。使用测试管理平台,当用户需要设计新的测试用例时,只需输入搜索条件即可在RTCL中搜索所需的测试用例,用户对搜索到的测试用例可直接复用,亦可修改后复用。用户新建的测试用例经过验证后将收集到RTCL中,这一机制不仅使RTCL中的测试用例不断增加,也实现了不同用户之间测试用例的共享。测试管理平台通过用例度量系统对RTCL中的测试用例进行度量和管理。用例度量系统使用TCRM模型对RTCL中测试用例的可复用性进行度量,度量后将删除不具有复用特性和冗余的测试用例,使其进入历史用例库,这不但能保证RTCL中测试用例的高可复用性,还能提高RTCL的用例检索效率。测试管理平台也支持管理员手动修改和更新RTCL和历史用例库中的测试用例。

在测试管理平台的使用过程中,管理员可根据实际使用情况设置和调整可信度度量的权值WRcWRm、系数QRc以及可复用性度量的权值WCr,即调整可信度对可复用性的修正幅度。

5 结束语

本文提出了测试用例可复用性度量模型TCRM,以及针对TCRM的度量方法,实现了对测试用例可复用性的度量。在实际应用TCRM模型和度量方法时,使用者可根据当前系统的实际情况,对上述度量公式中的权值和系数进行调整。测试用例可复用性度量的实现有助于可复用测试用例库构建和控制以及最终的测试用例复用。

参考文献

[1]郭立峰,郭耀,常继传.NATO软件复用标准导论[J].计算机科学,1999,26(5).

[2]NATO.NATO Standard for Management of a Reusable Software Compo-nent Library[S].NATO Contact Number CO-5957-ADA,1991.

[3]Sindre G,Conradi R,EAKarlsson.The REBOOTApproach to SoftwareReuse[J].Journal of Systems and Software,1995.

[4]Jeffery S,Poulin.Measuring software reusability[C]//Proceedings ofthe Third International Conference on Software Reuse:Advances inSoftware Reusability.Los Alamitos.CA:IEEE Computer Society Press,1994.

[5]GB/T16260.1-2006(ISO/IEC 9126)第1部分:质量模型[S].软件工程-产品质量,2006.

[6]GB/T16260.2-2006(ISO/IEC 9126)第2部分:外部度量[S].软件工程-产品质量,2006.

[7]GB/T16260.3-2006(ISO/IEC 9126)第3部分:内部度量[S].软件工程-产品质量,2006.

【测试度量】推荐阅读:

度量方法07-15

度量学习10-20

度量技术05-13

度量模型07-02

度量问题07-24

质量度量08-17

相似度量08-20

度量研究10-29

差异度量11-23

风险度量12-05

上一篇:小型建筑物下一篇:防腐工程技术