软件测试用例的复用技术研究

2010-09-07 06:35易成荣邹劲松
中国新技术新产品 2010年6期
关键词:库中测试用例用例

易成荣 邹劲松

(重庆水利电力职业技术学院 电气工程系,重庆 永川 402160)

随着软件规模化和产业化发展,软件的复杂程度越来越高,软件的功能变得也越来越强大。与此同时,软件产品渗透到国民经济生活的各个领域,其质量也自然受到前所未有的关注。长期以来,我国软件企业一直被软件质量问题所困扰。其中一个重要因素是对软件测试的忽视。

在软件测试过程中,测试用例的选择对软件测试的成败起着至关重要的作用,测试用例设计的基本目的是确定一组最有可能发现某个错误或某类错误的测试数据,最终实现系统对某个功能的测试。测试用例设计过程约占整个测试过程的60%。故测试用例设计人员必须用最少量的测试用例,来发现最大量的可能性错误,所以其测试用例的优劣将直接影响测试的质量和效果。因时间和费用的问题不可能进行穷举测试。提高测试效率、降低测试成本,是测试用例的设计者的目标或努力方向[1]。

1 软件测试的相关概念

1.1 软件测试的测试过程

软件测试是发现并指出软件 (包含软件经过建模、需求、设计等阶段所产生的大量输出工作及程序代码)中存在的缺陷的过程,该过程指明和标注问题存在的正确位置,详细记录导致问题出现的操作步骤,即存储当时的错误状态以便测试后问题能够准确再现,并跟踪软件开发人员对软件缺陷修复的进展情况[2]图1 给出了软件测试的四个步骤,即单元测试、集成测试、确认测试和系统测试[3]。

1.2 软件和软件测试复用的概念

软件复用是指“为了复用目的而设计的软件”的过程[4]。软件复用强调复用的目的,它是一种系统化的方法,为了复用而进行设计,为了复用而开发,并且要高效地组织和管理这些复用的软件产品,方便人们检索和使用。

软件测试复用指在两次或多次不同的软件测试过程中反复使用相同或相似的测试思想来组织和跟踪测试的过程。它的宗旨是保证对测试对象的测试不再采用一切“从原点开始”的模式,而是在已有的测试工作的基础上,充分利用过去软件测试过程中积累的测试策略、测试思想和测试经验等,最终实现对软件测试过程中可复用成分最大程度的复用。

软件测试的复用主要包括测试策略、测试工具、测试流程、测试数据、测试结果和测试用例等复用。其中,测试用例作为软件测试的核心内容,它的复用也就成为整个软件测试复用工作的关键环节。表1 列出了软件复用可能的资源并作简要说明,其中所列出的可复用项目不是完整的,需要一定的补充[5]。

2 软件测试用例的复用

2.1 测试用例复用的概念

测试用例的复用就是指测试工程师在执行一项新的测试工作时,通过直接调用或修改现有的、适合此项测试的测试用例,并将它们运用其中的过程。即测试用例要实现复用必须具备三个条件,(1)必须存在可复用的测试用例;(2)所复用的用例必须有用;(3)测试工程师必须知道如何去复用测试用例。测试用例是测试工作的指导,是软件测试必须遵守的准则,更是软件测试质量稳定的根本保障。

2.2 提高测试用例复用的途径

2.2.1 组织和编写具有很强可复用性的测试用例

在软件测试中用到的任何一个测试用例,只要它的开发不涉及已有的用例,就将它作为一个新的基类似的测试用例。在上述情况下,我们可以建立两种用例类:一种是基于基类的抽象型用例类,它提炼了将要表达的概念;另一种是抽象型类的派生类即具体型用例类,它具体去实现基类的思想。在不同的软件应用系统的开发过程中,根据不同的场景去应用抽象型用例类,从而提高了测试用例的复用度。

2.2.2 可适应性测试用例

开发一个软件产品,一般会发布多个版本,伴随着测试用例的不断维护,测试用例也需要不断完善并与产品功能、特性的变化保持一致,最终使测试用例和产品版本相关联,这时需要对以前的测试用例做适应性修改。具体的操作如下:测试人员可以在已有的复用测试用例库中寻找具有类似功能的用例,通过对其进行继承和修改,渐进式地设计出新的测试用例。如果新用例将要成为已有用例的子用例,那么它应当继承了这个已有用例的所有属性和方法。同时,新的用例还可以对需要追加的属性以及必需的方法作局部的定义或者将几个现存用例的特性组合起来开发出另一个新用例。

2.2.3 复制式的引用测试用例

?

在以往的软件开发中,已经将大量的测试用例收集到测试用例库中,并且根据测试用例的类类型进行了合理的分类,这时测试工程师可以根据需要到测试用例共享库中进行检索。这种方法最快捷和高效。

2.3 测试用例的复用策略

为了实现测试用例的复用,就必须对测试用例的设计进行统一的规范,进行行之有效的用例创建管理。在用例的创建过程中,测试经理对用例设计做出统一的建模组织,使所有的测试用例具备统一的结构、统一的输入、输出接口,这样即使以后软件运行环境发生变化,对原有用例稍作修改就可以再次利用,这些具有统一结构的用例就是可复用的测试用例。要实现用例的复用,可采取以下策略:

首先,基于复用的目的,对所使用的测试用例进行统一的建模组织,。有效地将测试用例收集到测试用例库中,并按照用例各自的属性特点进行多级合理的分类、组织、存储。那些采用不同方式描述的测试用例,将会各自实现不同程度的复用。

其次,对共享测试用例库中的测试用例实行有效管理。通过提供有助于复用的多种查询方式,确保测试用例的复用程度。对不同类别的测试用例进行复用频率统计,为测试人员提供有效的复用信息,在保证软件测试质量的前提下提高效率。

最后,对共享测试用例库中的测试用例具体实现复用。通过检索出所需的测试用例,得到测试用例的信息,针对不同用途的测试用例采用不同的复用方式进行复用[6]。

3 测试用例的复用模型

从图2 可以看出,测试用例的复用有三条路径,待测软件、已测软件和复用式测试软件,恰恰对应了上文所讲的三种提高测试用例复用的途径。首先,对待测软件进行分析,接着开始用例的设计并注入测试复用的思路;其次产生相应的测试方法,根据该测试方法进行软件测试,生成测试结果。对一个软件的测试所产生的各种测试资源要作为可复用的素材,必须进行对其提炼和抽象,使其与被测项目的相关程度降到最低,在待测软件路径上所生成的测试方法和测试结果数据要进行抽象,产生可复用的测试用例要存入共享测试用例库中。其次,对已测软件进行分析,深度挖掘各种可能的复用机会并开始用例的提取;接着对测试用例进行可复用性的修改,然后交由测试组长进行审核验证并进行类型划分,最终添加至共享测试用例库中。最后,复用式测试软件指当测试工程师进行软件测试时,到测试用例共享库中查找具有类似功能的测试用例的过程;当我们找到功能类似的测试用例时,结合目前的测试项目对测试用例进行剖析,如果完全能胜任目前的测试任务就直接用到测试中去,否则进行相应的适应性修改,直至满足要求并应用到测试中去,最后对经过适应性修改的测试用例进行入库。

4 测试用例复用的优点和难点

通过大量的工程实践,不难发现测试用例的复用具有以下优点和难点。其优点如下:(1)提高软件测试的效率;(2)缩短软件测试的周期;(3)提高软件测试的可靠性;(4)降低软件测试的费用;(5)部分解决测试人员的经验欠缺。但是要真正实现测试用例复用的困难也是不可忽视的,若不能较好地解决以下问题,必将使得软件测试工作事倍功半。其难点如下:(1)测试用例数据库的维护问题;(2)测试用例划分的标准;(3)测试用例的版本管理问题;(4)测试用例可复用度量问题;(5)被测软件之间的差异;(6)管理因素、法律因素、人的因素和教育因素等。

5 结论

本文介绍了涉及软件测试用例复用的相关概念并给出了软件测试用例的复用模型。首先,描述了软件测试的相关基本概念,主要有软件、软件测试复用、测试用例复用;其次,说明了提高测试用例复用的途径、测试用例的复用策略和给出了测试用例的复用模型;最后,根据工程实践总结了测试用例复用的优点和难点。

[1]胡正芳.测试用例复用技术研究:[硕士学位论文].哈尔滨:哈尔滨工程大学,2009.

[2]张大方,李玮。软件测试技术与管理[M].长沙:湖南大学出版社,2007.

[3]柳纯录,黄子河。软件评测师教程.清华大学出版社。2005:1-221页.

[4]Will T.Confessions of a used program sales maninstitutionalizing software reuse[M].New York:Addison wesley Publishing Co.,1995.

[5]邵正隆,白晓颖,赵冲冲.面向复用的测试设计模型的研究与实现.小型微型计算机系统.2006,27(11):2150:2155页

[6]卜国峰,孙志刚,丁小良.软件测试用例的复用研究[J].四川兵工学报,2009,5(30)

猜你喜欢
库中测试用例用例
动物城堡
动物城堡
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
基于SmartUnit的安全通信系统单元测试用例自动生成
联锁软件详细设计的测试需求分析和用例编写
從出土文獻用例看王氏父子校讀古書的得失
基于混合遗传算法的回归测试用例集最小化研究
智能盘库在自动化立体库中的探索和应用
基于依赖结构的测试用例优先级技术