一种确定需要进行回归测试的测试用例的方法及系统技术方案

技术编号:8682628 阅读:148 留言:0更新日期:2013-05-09 02:39
本申请公开一种确定需要进行回归测试的测试用例的方法及系统,该方法用于从M个测试用例中确定出需要进行回归测试的K个测试用例,该方法具体包括:对开发代码进行处理,得到所述开发代码中覆盖的S个函数;从所述S个函数中确定有过修改的N个函数,所述N为小于等于所述S的整数;建立所述M个测试用例和所述S个函数间的函数覆盖对应关系;基于所述对应关系,从所述M个测试用例中确定出与所述N个函数对应的所述K个测试用例。通过本申请实施例提供的技术方案,准确的确定出回归测试的测试范围,进一步的提高回归测试的测试效率。

【技术实现步骤摘要】

本专利技术涉及测试
,尤其涉及一种确定需要进行回归测试的测试用例的方法及系统
技术介绍
随着软件规模的不断扩大,回归测试在测试中占据越来越大的比例。回归测试是指修改了旧代码后,重新进行测试,以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。即使是一个很小的改动,也许是几行代码,也许开发时间只是I小时或2个小时,但是为了线上质量的稳定,我们需要完成整整一套相关产品回归测试和冒烟测试的工作,这让测试的工时大大高于开发的公时,有些时候甚至是开发工时的好多倍的时间。那么如何合理的确认回归的范围,如何在对质量提供保证的同时提高测试的效率,就成为人们很关注的话题。就目前而言,通常都是通过测试人员的经验来确认回归测试的范围。专利技术人在专利技术过程中,发现现有的技术方案至少存在以下缺点:测试回归的范围主观因素很大,范围估计太小会有可能出现测试遗漏和质量问题,范围估计面太大会降低测试效率,很大程度上依赖于测试人员本身的素质和对代码的了解。
技术实现思路
本申请实施例提供一种确定需要进行回归测试的测试用例的方法和系统,用以解决现有技术中确定回归测试的测试范围时不准确的技术问题,通过本申请实施例提供的技术方案,准确的确定出回归测试的测试范围。本申请实施例一提供一种确定需要进行回归测试的测试用例的方法,用于从M个测试用例中确定出需要进行回归测试的K个测试用例,具体包括:对开发代码进行处理,得到所述开发代码中覆盖的S个函数;从所述S个函数中确定有过修改的N个函数,所述N为小于等于所述S的整数;建立所述M个测试用例和所述S个函数间的函数覆盖对应关系;基于所述对应关系,从所述M个测试用例中确定出与所述N个函数对应的所述K个测试用例。本申请实施例二提供一种确定需要进行回归测试的测试用例的系统,用于从M个测试用例中确定出需要进行回归测试的K个测试用例,包括:处理单元,用于对开发代码进行处理,得到所述开发代码中覆盖的S个函数;函数修改确定单元,用于从所述S个函数中确定有过修改的N个函数,所述N为小于等于所述S的整数;对应关系建立单元,用于建立所述M个测试用例和所述S个函数间的函数覆盖对应关系;回归测试用例确定单元,用于基于所述对应关系,从所述M个测试用例中确定出与所述N个函数对应的所述K个测试用例。本申请通过一个或多个实施例,具有以下优点或者有益效果之一:1、由于确定回归测试的测试范围时不是通过测试人员是主观经验来确定,而是通过函数覆盖这一科学的理论来确定回归测试的测试范围,所以保证了测试范围的准确度;2、由于准确的确定了回归测试的测试范围,所以在对质量提供保证的同时又提高了测试的效率。附图说明图1为本申请实施例一中确定需要进行回归测试的测试用例的方法流程图;图2为本申请实施例一中M个测试用例与S个函数间的函数覆盖对应关系图;图3为本申请实施例一中修改过的函数与M个测试用例间的函数覆盖对应关系图;图4为本申请实施例一中需要回归测试的测试用例计算结果图;图5为本申请实施例二中确定需要回归测试的测试用例系统图;图6为本申请实施例二确定需要回归测试的测试用例系统中处理单元的结构图;图7为本申请实施例二确定需要回归测试的测试用例系统中对应关系建立单元的结构图;图8为本申请实施例二确定需要回归测试的测试用例系统中对应关系建立单元中获得单元的结构图;图9为本申请实施例二确定需要回归测试的测试用例系统中回归测试用例确定单元的结构图。具体实施例方式基于函数覆盖率的基本思想,本申请实施例提供一种确定需要进行回归测试的测试用例的方法和系统,用以解决现有技术中确定回归测试的测试范围时不准确的技术问题,通过本申请实施例提供的技术方案,准确的确定出回归测试的测试范围,进一步的提高回归测试的测试效率。下面将结合附图对上述技术方案进行详细的阐述和说明。如图1所示,本申请实施例一提供一种确定需要进行回归测试的测试用例的方法,用于从M个测试用例中确定出需要进行回归测试的K个测试用例,具体包括:步骤101,对开发代码进行处理,得到开发代码中覆盖的S个函数;步骤102,从S个函数中确定有过修改的N个函数,所述N为小于等于所述S的整数;步骤103,建立M个测试用例和S个函数间的函数覆盖对应关系;步骤104,基于所述对应关系,从M个测试用例中确定出与所述N个函数对应的K个测试用例。进一步的,如上所述的方法,对于步骤101,所述对开发代码进行处理,得到开发代码中覆盖的S个函数,具体包括:对开发代码进行函数代码的插入,得到所述开发代码中覆盖的S个函数;或运用函数工具对开发代码进行函数覆盖,得到所述开发代码中覆盖的S个函数。对于程序代码提供函数覆盖工具的,本申请实施例一中对开发代码可以运用函数工具进行函数覆盖,例如,比较普遍的,针对JAVA语言的函数覆盖的工具有clover,针对C++语言的函数覆盖工具有gcov,这些工具都提供统计了函数覆盖的功能,在执行任何一个测试用例之后,工具会统计出某个测试用例覆盖了系统中的哪些函数。对于一些没有提供函数覆盖工具的脚本,比如shell,php脚本等等,本申请实施例提供了对开发代码进行函数代码的插入的方法,也就是没扫描到一个函数就在函数中加入一句“打印函数名称”的代码,这样也能得到开发代码中覆盖了的函数。进一步的,如上所述的方法,对于步骤102,所述从S个函数中确定有过修改的N个函数,具体为:使用svn diff命令从所述S个函数中确定出有过修改的N个函数。Svn的子命令svn diff,主要用途是用来比较两条路径的区别,在本申请实施例中,我们需要用svn diff命令来对开发代码中使用到的s个函数和源代码中的函数相比较,确认出哪些函数作出了修改,从而进一步确定出回归测试的范围。进一步的,如上所述的方法,对于步骤103,所述建立M个测试用例和S个函数间的函数覆盖对应关系,具体包括:用经函数代码插入后代码或者经函数覆盖后的代码执行所述M个测试用例;标记出M个测试用例中每个测试用例与S个函数间的覆盖信息;基于所述覆盖信息,获得M个测试用例和S个函数间的函数覆盖对应关系。其中,所述标记出M个测试用例中每个测试用例与S个函数间的覆盖信息,具体为:对M个测试用例中每个测试用例覆盖的函数,标记为I ;对M个测试用例中每个测试用例未覆盖的函数,标记为O。在对开发代码进行函数覆盖的时候,函数覆盖工具是无法确认回归测试的测试范围的,此时我们用函数覆盖后代码,或者函数代码插入后的代码去执行M个测试用例,执行结束后,将所述M个测试用例和所述S个函数按列和行形成第一对应关系表;再将所述覆盖信息填入表中,获得所述M个测试用例与所述S个函数间的函数覆盖对应关系。例如,如图2所示,在执行了 M个测试用例之后,我们得到了 M个测试用例与函数覆盖的关系图表,即上述的第一对应关系表。进一步的,如上所述的方法本文档来自技高网...

【技术保护点】
一种确定需要进行回归测试的测试用例的方法,用于从M个测试用例中确定出需要进行回归测试的K个测试用例,其特征在于,包括:对开发代码进行处理,得到所述开发代码中覆盖的S个函数;从所述S个函数中确定有过修改的N个函数,所述N为小于等于所述S的整数;建立所述M个测试用例和所述S个函数间的函数覆盖对应关系;基于所述对应关系,从所述M个测试用例中确定出与所述N个函数对应的所述K个测试用例。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈琴
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1