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

上传人:xia****o6 文档编号:4890116 上传时间:2018-11-24 格式:PDF 页数:12 大小:465.57KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110349145.9

申请日:

2011.11.07

公开号:

CN103092748A

公开日:

2013.05.08

当前法律状态:

驳回

有效性:

无权

法律详情:

登录超时

IPC分类号:

G06F11/36

主分类号:

G06F11/36

申请人:

阿里巴巴集团控股有限公司

发明人:

陈琴

地址:

英属开曼群岛大开曼岛资本大厦一座四层847号邮箱

优先权:

专利代理机构:

北京同达信恒知识产权代理有限公司 11291

代理人:

郭润湘

PDF下载: PDF下载
内容摘要

本申请公开一种确定需要进行回归测试的测试用例的方法及系统,该方法用于从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所述的方法,其特征在于,所述对开发代码进行处理,得到所述开发代码中覆盖的S个函数,具体为:
对开发代码进行函数代码的插入,得到所述开发代码中覆盖的S个函数;或
运用函数工具对开发代码进行函数覆盖,得到所述开发代码中覆盖的S个函数。
如权利要求1所述的方法,其特征在于,所述从所述S个函数中确定有过修改的N个函数,具体为:
使用svn diff命令从所述S个函数中确定出有过修改的N个函数。
如权利要求1‑3任一所述的方法,其特征在于,所述建立所述M个测试用例和所述S个函数间的函数覆盖对应关系,具体包括:
用经函数代码插入后代码或者经函数覆盖后的代码执行所述M个测试用例;
标记出所述M个测试用例中每个测试用例与所述S个函数间的覆盖信息;
基于所述覆盖信息,获得所述M个测试用例和所述S个函数间的函数覆盖对应关系。
如权利要求4所述的方法,其特征在于,所述标记出所述M个测试用例中每个测试用例与所述S个函数间的覆盖信息,具体为:
对所述M个测试用例中每个测试用例覆盖的函数,标记为1;对所述M个测试用例中每个测试用例未覆盖的函数,标记为0。
如权利要求5所述的方法,其特征在于,所述基于所述覆盖信息,获得所述M个测试用例和所述S个函数间的函数覆盖对应关系,具体为:
将所述M个测试用例和所述S个函数按列和行形成第一对应关系表;
将所述覆盖信息填入表中,获得所述M个测试用例与所述S个函数间的函数覆盖对应关系。
如权利要求6所述的方法,其特征在于,所述基于所述对应关系,从所述M个测试用例中确定出与所述N个函数对应的所述K个测试用例,具体包括:
将所述有过修改的N个函数与所述M个测试用例的对应关系从所述第一对应关系表中提取出来,形成第二关系表;
对所述第二关系表中所述N个函数与所述M个测试用例间的覆盖信息按列取或,得到所述M个测试用例中每个测试用例与所述N个函数的覆盖信息取或结果;其中,所述取或结果为0,或1;
基于所述取或结果,确定出所述K个测试用例。
如权利要求7所述的方法,其特征在于,所述基于所述取或结果,确定出所述K个测试用例,具体为:
将所述取或结果为1对应的测试用例提取出来,得到所述K个测试用例。
一种确定需要进行回归测试的测试用例的系统,用于从M个测试用例中确定出需要进行回归测试的K个测试用例,其特征在于,包括:
处理单元,用于对开发代码进行处理,得到所述开发代码中覆盖的S个函数;
函数修改确定单元,用于从所述S个函数中确定有过修改的N个函数,所述N为小于等于所述S的整数;
对应关系建立单元,用于建立所述M个测试用例和所述S个函数间的函数覆盖对应关系;
回归测试用例确定单元,用于基于所述对应关系,从所述M个测试用例中确定出与所述N个函数对应的所述K个测试用例。
如权利要求9所述的系统,其特征在于,所述处理单元,具体包括:
函数代码插入单元,用于对开发代码进行函数代码的插入,得到所述开发代码中覆盖的S个函数;或
函数覆盖单元,用于运用函数工具对开发代码进行函数覆盖,得到所述开发代码中覆盖的S个函数。

说明书

说明书一种确定需要进行回归测试的测试用例的方法及系统
技术领域
本发明涉及测试技术领域,尤其涉及一种确定需要进行回归测试的测试用例的方法及系统。
背景技术
随着软件规模的不断扩大,回归测试在测试中占据越来越大的比例。回归测试是指修改了旧代码后,重新进行测试,以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。
回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。即使是一个很小的改动,也许是几行代码,也许开发时间只是1小时或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个测试用例中每个测试用例覆盖的函数,标记为1;对M个测试用例中每个测试用例未覆盖的函数,标记为0。
在对开发代码进行函数覆盖的时候,函数覆盖工具是无法确认回归测试的测试范围的,此时我们用函数覆盖后代码,或者函数代码插入后的代码去执行M个测试用例,执行结束后,将所述M个测试用例和所述S个函数按列和行形成第一对应关系表;
再将所述覆盖信息填入表中,获得所述M个测试用例与所述S个函数间的函数覆盖对应关系。例如,如图2所示,在执行了M个测试用例之后,我们得到了M个测试用例与函数覆盖的关系图表,即上述的第一对应关系表。
进一步的,如上所述的方法,对于步骤104,所述基于所述对应关系,从M个测试用例中确定出与所述N个函数对应的K个测试用例,具体包括:
将所述有过修改的N个函数与M个测试用例的对应关系从所述第一对应关系表中提取出来,形成第二关系表;例如,利用svn diff命令比较出来的结果是函数1和函数3发生变化,那么就将函数1和函数3与M个测试用例的对应关系从第一对应关系表中提取出来,得到第二关系表,具体如图3所示。
对所述第二关系表中所述N个函数与所述M个测试用例间的覆盖信息按列取或,得到所述M个测试用例中每个测试用例与所述N个函数的覆盖信息取或结果;其中,所述取或结果为0或1;如图4所示,对函数1和函数3与每个测试用例间覆盖信息按列取或,得到取或的结果。
基于所述取或结果,确定出所述K个测试用例。
其中,所述基于所述取或结果,确定出所述K个测试用例,具体为:
将所述取或结果为1对应的测试用例提取出来,得到所述K个测试用例。如图4所示,我们可以很明显的看出,测试用例1,测试用例2,测试用例3的取或结果为1,那么属于需要进行回归测试的测试用例;反之,测试用例4,测试用例M取或结果为0,那么就不需要进行回归测试,这样我们就能清楚准确的确定出需要进行回归测试的测试用例,也就确定出了回归测试的测试范围,不用再一一进行测试,提高的测试的效率。
本领域普通技术人员可以理解实现上述事实来方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机所可读取存储介质中,该程序在执行时,包括如下步骤:
步骤101,对开发代码进行处理,得到开发代码中覆盖的S个函数;
步骤102,从S个函数中确定有过修改的N个函数,所述N为小于等于所述S的整数;
步骤103,建立M个测试用例和S个函数间的函数覆盖对应关系;
步骤104,基于所述对应关系,从M个测试用例中确定出与所述N个函数对应的K个测试用例。
所述的存储介质,如ROM/RAM、磁碟、光盘等。
如图5所示,本申请实施例二提供一种确定需要进行回归测试的测试用例的系统,用于从M个测试用例中确定出需要进行回归测试的K个测试用例,包括:
处理单元20,用于对开发代码进行处理,得到开发代码中覆盖的S个函数;
函数修改确定单元30,用于从S个函数中确定有过修改的N个函数,所述N为小于等于所述S的整数;
对应关系建立单元40,用于建立M个测试用例和S个函数间的函数覆盖对应关系;
回归测试用例确定单元50,用于基于所述对应关系,从M个测试用例中确定出与所述N个函数对应的所述K个测试用例。
进一步的,如上所述的系统中,如图6所示,所述处理单元20,具体包括:
函数代码插入单元201A,用于对开发代码进行函数代码的插入,得到开发代码中覆盖的S个函数;或
函数覆盖单元201B,用于运用函数工具对开发代码进行函数覆盖,得到开发代码中覆盖的S个函数。
进一步的,如上所述的系统中,如图7所示,所述对应关系建立单元40,具体包括:
执行单元401,用于用经函数代码插入后代码或者经函数覆盖后的代码执行M个测试用例;
标记单元402,用于标记出M个测试用例中每个测试用例与S个函数间的覆盖信息;
获得单元403,用于基于所述覆盖信息,获得M个测试用例和S个函数间的函数覆盖对应关系。
其中,如图8所示,所述获得单元403,具体包括:
第一对应关系表生成单元403A,用于将M个测试用例和S个函数按列和行生成第一对应关系表;
覆盖信息填入单元403B,用于将所述覆盖信息填入表中,获得M个测试用例与S个函数间的函数覆盖对应关系。
进一步的,如上所述的系统中,如图9所示,所述回归测试用例确定单元50,具体包括:
第二关系表生成单元501,用于将有过修改的N个函数与M个测试用例的对应关系从所述第一对应关系表中提取出来,生成第二关系表;
取或单元502,用于对所述第二关系表中所述N个函数与所述M个测试用例间的覆盖信息按列取或,得到所述M个测试用例中每个测试用例与所述N个函数的覆盖信息取或结果;其中,所述取或结果为0,或1;
确定单元503,用于基于所述取或结果,确定出所述K个测试用例。
本申请通过一个或多个实施例,具有以下优点或者有益效果之一:
1、由于确定回归测试的测试范围时不是通过测试人员是主观经验来确定,而是通过函数覆盖这一科学的理论来确定回归测试的测试范围,所以保证了测试范围的准确度;
2、由于准确的确定了回归测试的测试范围,所以在对质量提供保证的同时又提高了测试的效率。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

一种确定需要进行回归测试的测试用例的方法及系统.pdf_第1页
第1页 / 共12页
一种确定需要进行回归测试的测试用例的方法及系统.pdf_第2页
第2页 / 共12页
一种确定需要进行回归测试的测试用例的方法及系统.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《一种确定需要进行回归测试的测试用例的方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种确定需要进行回归测试的测试用例的方法及系统.pdf(12页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103092748 A (43)申请公布日 2013.05.08 CN 103092748 A *CN103092748A* (21)申请号 201110349145.9 (22)申请日 2011.11.07 G06F 11/36(2006.01) (71)申请人 阿里巴巴集团控股有限公司 地址 英属开曼群岛大开曼岛资本大厦一座 四层 847 号邮箱 (72)发明人 陈琴 (74)专利代理机构 北京同达信恒知识产权代理 有限公司 11291 代理人 郭润湘 (54) 发明名称 一种确定需要进行回归测试的测试用例的方 法及系统 (57) 摘要 本申请公开一种确定需要进行。

2、回归测试的测 试用例的方法及系统, 该方法用于从 M 个测试用 例中确定出需要进行回归测试的 K 个测试用例, 该方法具体包括 : 对开发代码进行处理, 得到所 述开发代码中覆盖的 S 个函数 ; 从所述 S 个函数 中确定有过修改的N个函数, 所述N为小于等于所 述S的整数 ; 建立所述M个测试用例和所述S个函 数间的函数覆盖对应关系 ; 基于所述对应关系, 从所述 M 个测试用例中确定出与所述 N 个函数对 应的所述 K 个测试用例。通过本申请实施例提供 的技术方案, 准确的确定出回归测试的测试范围, 进一步的提高回归测试的测试效率。 (51)Int.Cl. 权利要求书 2 页 说明书 5。

3、 页 附图 4 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书5页 附图4页 (10)申请公布号 CN 103092748 A CN 103092748 A *CN103092748A* 1/2 页 2 1. 一种确定需要进行回归测试的测试用例的方法, 用于从 M 个测试用例中确定出需要 进行回归测试的 K 个测试用例, 其特征在于, 包括 : 对开发代码进行处理, 得到所述开发代码中覆盖的 S 个函数 ; 从所述 S 个函数中确定有过修改的 N 个函数, 所述 N 为小于等于所述 S 的整数 ; 建立所述 M 个测试用例和所述 S 个函数间的函数覆盖对。

4、应关系 ; 基于所述对应关系, 从所述 M 个测试用例中确定出与所述 N 个函数对应的所述 K 个测 试用例。 2. 如权利要求 1 所述的方法, 其特征在于, 所述对开发代码进行处理, 得到所述开发代 码中覆盖的 S 个函数, 具体为 : 对开发代码进行函数代码的插入, 得到所述开发代码中覆盖的 S 个函数 ; 或 运用函数工具对开发代码进行函数覆盖, 得到所述开发代码中覆盖的 S 个函数。 3.如权利要求1所述的方法, 其特征在于, 所述从所述S个函数中确定有过修改的N个 函数, 具体为 : 使用 svn diff 命令从所述 S 个函数中确定出有过修改的 N 个函数。 4. 如权利要求 。

5、1-3 任一所述的方法, 其特征在于, 所述建立所述 M 个测试用例和所述 S 个函数间的函数覆盖对应关系, 具体包括 : 用经函数代码插入后代码或者经函数覆盖后的代码执行所述 M 个测试用例 ; 标记出所述 M 个测试用例中每个测试用例与所述 S 个函数间的覆盖信息 ; 基于所述覆盖信息, 获得所述 M 个测试用例和所述 S 个函数间的函数覆盖对应关系。 5.如权利要求4所述的方法, 其特征在于, 所述标记出所述M个测试用例中每个测试用 例与所述 S 个函数间的覆盖信息, 具体为 : 对所述 M 个测试用例中每个测试用例覆盖的函数, 标记为 1 ; 对所述 M 个测试用例中每 个测试用例未覆。

6、盖的函数, 标记为 0。 6. 如权利要求 5 所述的方法, 其特征在于, 所述基于所述覆盖信息, 获得所述 M 个测试 用例和所述 S 个函数间的函数覆盖对应关系, 具体为 : 将所述 M 个测试用例和所述 S 个函数按列和行形成第一对应关系表 ; 将所述覆盖信息填入表中, 获得所述 M 个测试用例与所述 S 个函数间的函数覆盖对应 关系。 7. 如权利要求 6 所述的方法, 其特征在于, 所述基于所述对应关系, 从所述 M 个测试用 例中确定出与所述 N 个函数对应的所述 K 个测试用例, 具体包括 : 将所述有过修改的N个函数与所述M个测试用例的对应关系从所述第一对应关系表中 提取出来,。

7、 形成第二关系表 ; 对所述第二关系表中所述 N 个函数与所述 M 个测试用例间的覆盖信息按列取或, 得到 所述M个测试用例中每个测试用例与所述N个函数的覆盖信息取或结果 ; 其中, 所述取或结 果为 0, 或 1 ; 基于所述取或结果, 确定出所述 K 个测试用例。 8. 如权利要求 7 所述的方法, 其特征在于, 所述基于所述取或结果, 确定出所述 K 个测 试用例, 具体为 : 将所述取或结果为 1 对应的测试用例提取出来, 得到所述 K 个测试用例。 权 利 要 求 书 CN 103092748 A 2 2/2 页 3 9. 一种确定需要进行回归测试的测试用例的系统, 用于从 M 个测。

8、试用例中确定出需要 进行回归测试的 K 个测试用例, 其特征在于, 包括 : 处理单元, 用于对开发代码进行处理, 得到所述开发代码中覆盖的 S 个函数 ; 函数修改确定单元, 用于从所述 S 个函数中确定有过修改的 N 个函数, 所述 N 为小于等 于所述 S 的整数 ; 对应关系建立单元, 用于建立所述 M 个测试用例和所述 S 个函数间的函数覆盖对应关 系 ; 回归测试用例确定单元, 用于基于所述对应关系, 从所述 M 个测试用例中确定出与所 述 N 个函数对应的所述 K 个测试用例。 10. 如权利要求 9 所述的系统, 其特征在于, 所述处理单元, 具体包括 : 函数代码插入单元, 。

9、用于对开发代码进行函数代码的插入, 得到所述开发代码中覆盖 的 S 个函数 ; 或 函数覆盖单元, 用于运用函数工具对开发代码进行函数覆盖, 得到所述开发代码中覆 盖的 S 个函数。 权 利 要 求 书 CN 103092748 A 3 1/5 页 4 一种确定需要进行回归测试的测试用例的方法及系统 技术领域 0001 本发明涉及测试技术领域, 尤其涉及一种确定需要进行回归测试的测试用例的方 法及系统。 背景技术 0002 随着软件规模的不断扩大, 回归测试在测试中占据越来越大的比例。回归测试是 指修改了旧代码后, 重新进行测试, 以确认修改没有引入新的错误或导致其他代码产生错 误。自动回归测。

10、试将大幅降低系统测试、 维护升级等阶段的成本。在渐进和快速迭代开发 中, 新版本的连续发布使回归测试进行的更加频繁, 而在极端编程方法中, 更是要求每天都 进行若干次回归测试。因此, 通过选择正确的回归测试策略来改进回归测试的效率和有效 性是非常有意义的。 0003 回归测试作为软件生命周期的一个组成部分, 在整个软件测试过程中占有很大的 工作量比重, 软件开发的各个阶段都会进行多次回归测试。 即使是一个很小的改动, 也许是 几行代码, 也许开发时间只是 1 小时或 2 个小时, 但是为了线上质量的稳定, 我们需要完成 整整一套相关产品回归测试和冒烟测试的工作, 这让测试的工时大大高于开发的公。

11、时, 有 些时候甚至是开发工时的好多倍的时间。 0004 那么如何合理的确认回归的范围, 如何在对质量提供保证的同时提高测试的效 率, 就成为人们很关注的话题。 就目前而言, 通常都是通过测试人员的经验来确认回归测试 的范围。 0005 发明人在发明过程中, 发现现有的技术方案至少存在以下缺点 : 0006 测试回归的范围主观因素很大, 范围估计太小会有可能出现测试遗漏和质量问 题, 范围估计面太大会降低测试效率, 很大程度上依赖于测试人员本身的素质和对代码的 了解。 发明内容 0007 本申请实施例提供一种确定需要进行回归测试的测试用例的方法和系统, 用以解 决现有技术中确定回归测试的测试范。

12、围时不准确的技术问题, 通过本申请实施例提供的技 术方案, 准确的确定出回归测试的测试范围。 0008 本申请实施例一提供一种确定需要进行回归测试的测试用例的方法, 用于从 M 个 测试用例中确定出需要进行回归测试的 K 个测试用例, 具体包括 : 0009 对开发代码进行处理, 得到所述开发代码中覆盖的 S 个函数 ; 0010 从所述 S 个函数中确定有过修改的 N 个函数, 所述 N 为小于等于所述 S 的整数 ; 0011 建立所述 M 个测试用例和所述 S 个函数间的函数覆盖对应关系 ; 0012 基于所述对应关系, 从所述 M 个测试用例中确定出与所述 N 个函数对应的所述 K 个。

13、测试用例。 0013 本申请实施例二提供一种确定需要进行回归测试的测试用例的系统, 用于从 M 个 说 明 书 CN 103092748 A 4 2/5 页 5 测试用例中确定出需要进行回归测试的 K 个测试用例, 包括 : 0014 处理单元, 用于对开发代码进行处理, 得到所述开发代码中覆盖的 S 个函数 ; 0015 函数修改确定单元, 用于从所述 S 个函数中确定有过修改的 N 个函数, 所述 N 为小 于等于所述 S 的整数 ; 0016 对应关系建立单元, 用于建立所述 M 个测试用例和所述 S 个函数间的函数覆盖对 应关系 ; 0017 回归测试用例确定单元, 用于基于所述对应关。

14、系, 从所述 M 个测试用例中确定出 与所述 N 个函数对应的所述 K 个测试用例。 0018 本申请通过一个或多个实施例, 具有以下优点或者有益效果之一 : 0019 1、 由于确定回归测试的测试范围时不是通过测试人员是主观经验来确定, 而是通 过函数覆盖这一科学的理论来确定回归测试的测试范围, 所以保证了测试范围的准确度 ; 0020 2、 由于准确的确定了回归测试的测试范围, 所以在对质量提供保证的同时又提高 了测试的效率。 附图说明 0021 图 1 为本申请实施例一中确定需要进行回归测试的测试用例的方法流程图 ; 0022 图 2 为本申请实施例一中 M 个测试用例与 S 个函数间的。

15、函数覆盖对应关系图 ; 0023 图 3 为本申请实施例一中修改过的函数与 M 个测试用例间的函数覆盖对应关系 图 ; 0024 图 4 为本申请实施例一中需要回归测试的测试用例计算结果图 ; 0025 图 5 为本申请实施例二中确定需要回归测试的测试用例系统图 ; 0026 图 6 为本申请实施例二确定需要回归测试的测试用例系统中处理单元的结构图 ; 0027 图 7 为本申请实施例二确定需要回归测试的测试用例系统中对应关系建立单元 的结构图 ; 0028 图 8 为本申请实施例二确定需要回归测试的测试用例系统中对应关系建立单元 中获得单元的结构图 ; 0029 图 9 为本申请实施例二确定。

16、需要回归测试的测试用例系统中回归测试用例确定 单元的结构图。 具体实施方式 0030 基于函数覆盖率的基本思想, 本申请实施例提供一种确定需要进行回归测试的测 试用例的方法和系统, 用以解决现有技术中确定回归测试的测试范围时不准确的技术问 题, 通过本申请实施例提供的技术方案, 准确的确定出回归测试的测试范围, 进一步的提高 回归测试的测试效率。 0031 下面将结合附图对上述技术方案进行详细的阐述和说明。 0032 如图 1 所示, 本申请实施例一提供一种确定需要进行回归测试的测试用例的方 法, 用于从 M 个测试用例中确定出需要进行回归测试的 K 个测试用例, 具体包括 : 0033 步骤。

17、 101, 对开发代码进行处理, 得到开发代码中覆盖的 S 个函数 ; 0034 步骤 102, 从 S 个函数中确定有过修改的 N 个函数, 所述 N 为小于等于所述 S 的整 说 明 书 CN 103092748 A 5 3/5 页 6 数 ; 0035 步骤 103, 建立 M 个测试用例和 S 个函数间的函数覆盖对应关系 ; 0036 步骤 104, 基于所述对应关系, 从 M 个测试用例中确定出与所述 N 个函数对应的 K 个测试用例。 0037 进一步的, 如上所述的方法, 对于步骤 101, 所述对开发代码进行处理, 得到开发代 码中覆盖的 S 个函数, 具体包括 : 0038 。

18、对开发代码进行函数代码的插入, 得到所述开发代码中覆盖的 S 个函数 ; 或 0039 运用函数工具对开发代码进行函数覆盖, 得到所述开发代码中覆盖的 S 个函数。 0040 对于程序代码提供函数覆盖工具的, 本申请实施例一中对开发代码可以运用函数 工具进行函数覆盖, 例如, 比较普遍的, 针对 JAVA 语言的函数覆盖的工具有 clover, 针对 C+ 语言的函数覆盖工具有 gcov, 这些工具都提供统计了函数覆盖的功能, 在执行任何一 个测试用例之后, 工具会统计出某个测试用例覆盖了系统中的哪些函数。 0041 对于一些没有提供函数覆盖工具的脚本, 比如 shell, php 脚本等等,。

19、 本申请实施 例提供了对开发代码进行函数代码的插入的方法, 也就是没扫描到一个函数就在函数中加 入一句 “打印函数名称” 的代码, 这样也能得到开发代码中覆盖了的函数。 0042 进一步的, 如上所述的方法, 对于步骤102, 所述从S个函数中确定有过修改的N个 函数, 具体为 : 0043 使用 svn diff 命令从所述 S 个函数中确定出有过修改的 N 个函数。 0044 Svn 的子命令 svn diff, 主要用途是用来比较两条路径的区别, 在本申请实施例 中, 我们需要用 svn diff 命令来对开发代码中使用到的 s 个函数和源代码中的函数相比 较, 确认出哪些函数作出了修改。

20、, 从而进一步确定出回归测试的范围。 0045 进一步的, 如上所述的方法, 对于步骤103, 所述建立M个测试用例和S个函数间的 函数覆盖对应关系, 具体包括 : 0046 用经函数代码插入后代码或者经函数覆盖后的代码执行所述 M 个测试用例 ; 0047 标记出 M 个测试用例中每个测试用例与 S 个函数间的覆盖信息 ; 0048 基于所述覆盖信息, 获得 M 个测试用例和 S 个函数间的函数覆盖对应关系。 0049 其中, 所述标记出 M 个测试用例中每个测试用例与 S 个函数间的覆盖信息, 具体 为 : 0050 对 M 个测试用例中每个测试用例覆盖的函数, 标记为 1 ; 对 M 个。

21、测试用例中每个测 试用例未覆盖的函数, 标记为 0。 0051 在对开发代码进行函数覆盖的时候, 函数覆盖工具是无法确认回归测试的测试范 围的, 此时我们用函数覆盖后代码, 或者函数代码插入后的代码去执行 M 个测试用例, 执行 结束后, 将所述 M 个测试用例和所述 S 个函数按列和行形成第一对应关系表 ; 0052 再将所述覆盖信息填入表中, 获得所述 M 个测试用例与所述 S 个函数间的函数覆 盖对应关系。例如, 如图 2 所示, 在执行了 M 个测试用例之后, 我们得到了 M 个测试用例与 函数覆盖的关系图表, 即上述的第一对应关系表。 0053 进一步的, 如上所述的方法, 对于步骤。

22、 104, 所述基于所述对应关系, 从 M 个测试用 例中确定出与所述 N 个函数对应的 K 个测试用例, 具体包括 : 0054 将所述有过修改的N个函数与M个测试用例的对应关系从所述第一对应关系表中 说 明 书 CN 103092748 A 6 4/5 页 7 提取出来, 形成第二关系表 ; 例如, 利用svn diff命令比较出来的结果是函数1和函数3发 生变化, 那么就将函数 1 和函数 3 与 M 个测试用例的对应关系从第一对应关系表中提取出 来, 得到第二关系表, 具体如图 3 所示。 0055 对所述第二关系表中所述 N 个函数与所述 M 个测试用例间的覆盖信息按列取或, 得到所。

23、述M个测试用例中每个测试用例与所述N个函数的覆盖信息取或结果 ; 其中, 所述取 或结果为 0 或 1 ; 如图 4 所示, 对函数 1 和函数 3 与每个测试用例间覆盖信息按列取或, 得 到取或的结果。 0056 基于所述取或结果, 确定出所述 K 个测试用例。 0057 其中, 所述基于所述取或结果, 确定出所述 K 个测试用例, 具体为 : 0058 将所述取或结果为 1 对应的测试用例提取出来, 得到所述 K 个测试用例。如图 4 所示, 我们可以很明显的看出, 测试用例 1, 测试用例 2, 测试用例 3 的取或结果为 1, 那么属 于需要进行回归测试的测试用例 ; 反之, 测试用例。

24、 4, 测试用例 M 取或结果为 0, 那么就不需 要进行回归测试, 这样我们就能清楚准确的确定出需要进行回归测试的测试用例, 也就确 定出了回归测试的测试范围, 不用再一一进行测试, 提高的测试的效率。 0059 本领域普通技术人员可以理解实现上述事实来方法中的全部或部分步骤是可以 通过程序来指令相关的硬件来完成, 所述的程序可以存储于一计算机所可读取存储介质 中, 该程序在执行时, 包括如下步骤 : 0060 步骤 101, 对开发代码进行处理, 得到开发代码中覆盖的 S 个函数 ; 0061 步骤 102, 从 S 个函数中确定有过修改的 N 个函数, 所述 N 为小于等于所述 S 的整。

25、 数 ; 0062 步骤 103, 建立 M 个测试用例和 S 个函数间的函数覆盖对应关系 ; 0063 步骤 104, 基于所述对应关系, 从 M 个测试用例中确定出与所述 N 个函数对应的 K 个测试用例。 0064 所述的存储介质, 如 ROM/RAM、 磁碟、 光盘等。 0065 如图 5 所示, 本申请实施例二提供一种确定需要进行回归测试的测试用例的系 统, 用于从 M 个测试用例中确定出需要进行回归测试的 K 个测试用例, 包括 : 0066 处理单元 20, 用于对开发代码进行处理, 得到开发代码中覆盖的 S 个函数 ; 0067 函数修改确定单元30, 用于从S个函数中确定有过。

26、修改的N个函数, 所述N为小于 等于所述 S 的整数 ; 0068 对应关系建立单元 40, 用于建立 M 个测试用例和 S 个函数间的函数覆盖对应关 系 ; 0069 回归测试用例确定单元 50, 用于基于所述对应关系, 从 M 个测试用例中确定出与 所述 N 个函数对应的所述 K 个测试用例。 0070 进一步的, 如上所述的系统中, 如图 6 所示, 所述处理单元 20, 具体包括 : 0071 函数代码插入单元 201A, 用于对开发代码进行函数代码的插入, 得到开发代码中 覆盖的 S 个函数 ; 或 0072 函数覆盖单元 201B, 用于运用函数工具对开发代码进行函数覆盖, 得到开。

27、发代码 中覆盖的 S 个函数。 0073 进一步的, 如上所述的系统中, 如图 7 所示, 所述对应关系建立单元 40, 具体包括 : 说 明 书 CN 103092748 A 7 5/5 页 8 0074 执行单元 401, 用于用经函数代码插入后代码或者经函数覆盖后的代码执行 M 个 测试用例 ; 0075 标记单元 402, 用于标记出 M 个测试用例中每个测试用例与 S 个函数间的覆盖信 息 ; 0076 获得单元 403, 用于基于所述覆盖信息, 获得 M 个测试用例和 S 个函数间的函数覆 盖对应关系。 0077 其中, 如图 8 所示, 所述获得单元 403, 具体包括 : 00。

28、78 第一对应关系表生成单元 403A, 用于将 M 个测试用例和 S 个函数按列和行生成第 一对应关系表 ; 0079 覆盖信息填入单元403B, 用于将所述覆盖信息填入表中, 获得M个测试用例与S个 函数间的函数覆盖对应关系。 0080 进一步的, 如上所述的系统中, 如图 9 所示, 所述回归测试用例确定单元 50, 具体 包括 : 0081 第二关系表生成单元501, 用于将有过修改的N个函数与M个测试用例的对应关系 从所述第一对应关系表中提取出来, 生成第二关系表 ; 0082 取或单元502, 用于对所述第二关系表中所述N个函数与所述M个测试用例间的覆 盖信息按列取或, 得到所述 。

29、M 个测试用例中每个测试用例与所述 N 个函数的覆盖信息取或 结果 ; 其中, 所述取或结果为 0, 或 1 ; 0083 确定单元 503, 用于基于所述取或结果, 确定出所述 K 个测试用例。 0084 本申请通过一个或多个实施例, 具有以下优点或者有益效果之一 : 0085 1、 由于确定回归测试的测试范围时不是通过测试人员是主观经验来确定, 而是通 过函数覆盖这一科学的理论来确定回归测试的测试范围, 所以保证了测试范围的准确度 ; 0086 2、 由于准确的确定了回归测试的测试范围, 所以在对质量提供保证的同时又提高 了测试的效率。 0087 尽管已描述了本发明的优选实施例, 但本领域。

30、内的技术人员一旦得知了基本创造 性概念, 则可对这些实施例作出另外的变更和修改。 所以, 所附权利要求意欲解释为包括优 选实施例以及落入本发明范围的所有变更和修改。 0088 显然, 本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样, 倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内, 则本发明也意图包含这些改动和变型在内。 说 明 书 CN 103092748 A 8 1/4 页 9 图 1 图 2 说 明 书 附 图 CN 103092748 A 9 2/4 页 10 图 3 图 4 图 5 说 明 书 附 图 CN 103092748 A 10 3/4 页 11 图 6 图 7 图 8 说 明 书 附 图 CN 103092748 A 11 4/4 页 12 图 9 说 明 书 附 图 CN 103092748 A 12 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1