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

时间:2022-04-09 11:24:30

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

摘要:软件测试是确保软件质量的可靠手段,是软件开发过程中必不可少的重要环节。随着软件项目中各类干系人对软件质量的要求不断提高, 软件测试作为保证软件质量的主要途径之一,其重要性越来越受重视。随着软件复杂性提高,软件测试的复杂性也不断提高,测试成本不断增加,同时软件复用技术也在不断发展,软件测试成本的提高和软件复用技术的发展,促使了软件测试复用技术的不断发展。测试复用技术在软件领域得到了广泛的应用,在某些行业软件中得到了很好的应用,比如证券行业。

关键词:软件测试 测试用例 测试用例维护 证券软件测试 测试用例复用

中图分类号:TP311.52 文献标识码:A 文章编号:1007-9416(2012)09-0046-03

1、引言

随着信息技术应用在人们的日常生活工作中起到越来越大的作用,软件业也迅猛地发展起来,软件的功能由简单变得强大,软件的复杂程度也越来越高。软件作为一种广泛使用的产品,其质量的重视程度在被不断提升,特别像一些高风险的行业,例如证券行业,软件质量的好坏直接关系到客户的交易是否安全,顺畅。软件测试作为软件生命周期的一个重要阶段,是在软件开发,维护阶段对软件产品进行质量控制,检验软件系统是否满足需求的重要手段之一,是整个软件质量保证的关键一环。

在软件的测试过程中,选择合适的测试用例很重要,这将决定最后测试是否能顺利地按时按质完成。在软件测试中,测试用例设计是软件测试步骤中最重要的环节之一,测试用例的设计人员的水平不一,低水平的测试用例设计人员的测试效率低,会降低测试效率,这样也会影响软件交付的时间。测试人员经验不足同时也会导致测试用例设计质量的低下,设计出的测试用例不能发现足够多的软件问题,对保证软件项目质量不利。软件测试中,一些测试内容会经常反复进行,相同或者相似测试用例的重复设计的劳动经常发生,浪费人力物力和时间,这样会提高软件开发和维护的成本。软件测试用例的复用技术在软件复用技术较好的应用和发展的影响下,也得到了发展,这对解决测试中的冗余现象,提高软件测试效率提出了很好的方法。软件测试复用技术广泛地应用在软件开发和维护的各个阶段,本文研究了测试用例复用技术,并对测试用例复用在证券软件测试中如何实现做了研究。

2、软件测试用例

测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

3、测试用例在软件测试中的作用

测试用例是软件测试全部过程的核心,是测试执行环节的基本依据,在软件测试过程中起着很大的作用。没有测试也可以进行软件测试,但测试是无序的,只是按照自己的测试思路进行测试,难免有所遗漏。有了测试用例,就有了测试的依据,可以按照测试用例有序的执行测试步骤,不易遗漏测试点,能过较好保证最后的测试质量。每个测试人员的测试环境,技术背景,测试思路等都不一定相同,不同的测试者的测试方法都不一样,一个较大的软件在测试过程中,许多测试人员一起测试,不能保证测试各个测试点的测试质量。通过测试用例的设计,可以把测试目的,内容等编成文档,保存在用例库中,便于其他测试人员借鉴,共同提高测试技能。测试中可以引入审核部门,对测试用例进行评估,通过一些量化的数据,如测试覆盖率、测试合格率、重要测试合格率等,衡量测试用例的优劣,总结测试用例设计中产生的问题,评估各个测试用例设计人员的工作绩效,将评估结果反馈给测试人员,测试人员可以改良测试用例,并把结果存入测试用例库中,在下次同一模块或相似模块的测试中就能提高效率和准确性。测试用例存入测试用例库中,也可以专门由人进行维护,不断更新和完善测试用例。一个好的测试用例库必然会让共享的测试人员获益,从而提高工作效率,更好保证产品质量。

4、测试用例设计方法

软件测试方法众多,主要有黑盒测试方法,也称功能测试;白盒测试方法,也称结构测试或逻辑驱动测试。

5、软件测试复用

5.1 软件复用的概念

软件复用(SoftWare Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。

5.2 软件测试的复用

软件测试复用可以理解为在两次或多次不同的软件测试过程中重复使用相同或相近的测试资源来组织测试,它的目的是充分继承以前软件测试中的经验,将已经使用过的测试用例标准化后存档,在未来的某个时间进行检索后的借鉴或者复用,减少设计测试用例的时间,增强测试的效率和可靠性,而不是每次用例设计都从头开始,增加更多的冗余时间。测试用例复用是把一个软件的测试用例在新的软件测试中使用,或者在软件作出修改时在新的一轮测试中使用,作为软件测试的核心内容,它的复用也就成为整个软件测试复用工作的关键环节。

6、软件测试用例的复用

6.1 测试用例的复用

所谓测试用例复用就是指测试工程师在执行一项新的测试工作时,通过直接调用或修改现有的、适合此项测试的测试用例,并将它们运用其中的过程。也就是说测试用例要实现复用必须具备三个条件,必须有可复用的测试用例,要复用的用例必须有用,测试工程师知道如何使用,而这三个条件恰恰通过测试用例的创建、维护、执行管理就可以实现。

6.2 测试用例复用数据库的维护

要对测试用例进行复用,首先要有能够复用的测试用例,然后将测试用例进行归类存档,以一定的形式保存在测试用例库中,接下来就要对测试用例进行维护,在维护中不断添加新的测试用例,更新旧的可完善的测试用例,删除有问题的测试用例。测试用例的设计由于每个设计人员的水平,设计的用例的复杂度,不太可能每个设计的测试用例都能完美无缺的满足测试需求,总是会有些测试用例编写的并不符合要求,测试执行过程里肯定会发现有些测试路径或数据在用例里没有覆盖一些应用场景,那么在测试用例维护时,该将其补充到用例库里,以方便他人和后续版本的测试。现在比较流行迭代的软件开发方式,这是为了符合客户对软件功能不断变更的需求,相应的,在当前迭代版本的测试要使用前一个版本的测试用例时,由于需求的改变,测试用例也要随之变更。测试用例的维护分不同的情况,可以用不同的方法分别进行处理。其一,软件需求并没有发生变更,只是原先设计的测试用例不是很完善,没有完全满足测试需求,在测试过程中,不断地细化,深入分析需求文档时,有了更完整,清楚的认识,这时,就需要完善测试用例,让测试用例的测试效果更能贴近客户的需求,然后修改需要更新的测试用例;其二,测试需求没有发生变更,但是软件的功能增强了,原测试用例只对未增强的功能模块有效,我们就需要设计新的版本的测试用例,符合增强后的功能的测试需求,也就是增加一个测试用例,而原来的测试用例对增强前的功能依然有效;其三,需求变更,增加了新的功能,这就需要添加新的测试用例;其四,需求变更,原功能被取消了,相应的测试用例失去了作用,但测试可能在将来被其他人在相似的测试中借鉴或修改复用,这时只要将与该功能对应的测试用例在标志位上置为无效标记。测试用例维护流程的模式如图1。

6.3 测试用例的复用思路

要实现测试用例的复用,首先要测试用例规范化。统一的用例建模,统一的标识规范,例如都由测试用例ID、测试概要、和用例描述3个部分组成,将设计好的测试用例放入测试用例库,并按照用例各自的属性特点进行多级合理的分类、组织、存储,这样,在测试用例复用时,就能够快速的检索到所需要借鉴或复用的测试用例。然后,对测试用例库中的测试用例进行维护,及时更新测试用例库,不断地进行完善,通过提供有助于复用的多种查询方式,确保测试用例的复用程度。最后,对数据库中的测试用例具体实现复用,通过测试需求分析,检索测试用例库,查找可以借鉴和复用的测试用例。同时对测试用例库做必要的更新。测试用例的复用能在保证软件测试质量的前提下提高测试效率。复用的简单流程的模式如图2。

6.4 证券行业软件测试用例复用的实现过程

金融行业中的证券行业软件复用常常发生在测试用例复用发生在系统维护阶段应急演练测试, 系统新功能上线后的系统测试,系统部分参数变更时的测试,同一测试软件在系统不同的测试阶段的测试。

(1)系统维护阶段应急演练测试。在系统维阶段,为了维护系统的在客户使用时地稳定性,会为平时运行的系统安排应急措施,这样,当主系统发生故障时,能够启用系统的备份方案,维系系统的功能仍然有效。这种测试在对系统稳定,风险较大的行业,像金融业等,经常会定期进行,其目的是让系统维护熟悉系统的应急措施,确保系统在出现问题时,能在最短的时间内恢复系统的正常功能,减少或消除客户和公司的损失。系统功能的复杂性越高,系统地风险越大,这种测试也会变得更频繁,制定详细地可复用的测试用例,放在测试库里。同时制定测试计划,当某功能测试需要实施时,从测试用例库中调用相应的测试用例进行复用。这样可以节省时间,同时也能当不同的维护人员做同一测试时,能运用以前测试人员的方法,快速实施测试。这种测试用例的复用其实也是一种有效地故障处理方法。

(2)系统升级后的系统测试。同一个系统在运维时期,功能往往不会一尘不变的。这种系统的变更往往是被动发生的。业务需求的变更是系统功能变更的主因。例如金融公司,不断会有创新业务产生,需要随着业务的需求变化,不断地增加新功能,这些新功能的增加,需要测试系统的新功能,而新功能和以前地功能往往具有相似性,我们可以查找测试用例库,具有类似功能的模块的测试用例,做一些相应的适当改动,满足新的功能的测试需求。然后将新的测试用例放入测试用例库,作为以后的定期功能测试时复用,或者其它新的相似功能模块上线时测试用例复用和测试用例设计参考使用。

(3)系统部分参数变更时的测试。系统的整体功能并没有改变,只是由于业务需求的原因,改变了一些系统参数,这种情况在金融业时有发生,例如国家的金融宏观调控,一些政策发生改变,某些收费比率会发生变更。政策的变化导致了系统参数的变更,使用该系统进行资金往来或者交易的客户往往因为政策改变交易策略,会引起交易市场的震荡,这种情况在证券市场时有发生,这就需要通过测试来检验系统的稳定性,了解市场波动给系统带来的影响,从而才取相应的应对措施。由于这些参数的改变,对系统地功能并没有大的影响,可以查找测试用例库,复用以前的测试用例进行测试,测试系统的稳定性,为系统是否需要改进,或系统的硬件是否需要升级,做评估。

(4)同一测试软件在系统不同的测试阶段的测试。证券软件从软件开发的过程按阶段划分有单元测试、集成测试、确认测试和系统测试及验收测试。在不同的开发过程中的测试所对应的对象会有许多功能模块在先前的测试阶段已经测试过,例如集成测试中的测试对象在单元测试中已经测试过,我们可以查找测试用例库,把前一个阶段使用过的测试用例拿出来继续使用,对软件进行测试。如果测试需要改进,可以稍作修改后,将新产生的测试用例做好分类

上一篇:城域网IPv6部署支持要点分析 下一篇:虚拟花卉景观可视化建模和交互技术应用研究