基于调用关系依赖图的回归测试方法及系统技术方案

技术编号:9872510 阅读:179 留言:0更新日期:2014-04-04 05:29
本发明专利技术提供了一种基于调用关系依赖图的回归测试方法及系统,其中的方法包括:将从版本管理库中获取的待比较版本的所有方法进行转存;将版本管理库更新至待测版本,获取待测版本的所有方法之间的调用关系,并进行存储;将待测版本的所有方法与所转存的待比较版本的所有方法进行比较,获取方法变更集;根据所存储的调用关系生成调用关系依赖图,并根据方法变更集,在调用关系依赖图中对变更的方法进行标注;根据所标注的方法确定待测版本的回归范围,并根据回归范围进行回归测试。通过本发明专利技术能够使回归测试的范围更加精准且更有目的性,同时也能够使研发人员分析出所提交测试的代码是否存在错改漏改,确保所修改的代码都能完整的覆盖其影响面。

【技术实现步骤摘要】
基于调用关系依赖图的回归测试方法及系统
本专利技术涉及软件测试
,更为具体地,涉及一种基于调用关系依赖图的回归测试方法及系统。
技术介绍
软件测试是软件生命周期的一个必要的阶段,其直接关系着软件的质量。在软件生命周期的任何一个阶段中,只要软件发生了改变,就可能给该软件带来问题。因此,每当软件发生变化时,就必须进行回归测试,以便于确定修改是否达到了预期的目的,以及检查修改是否损害了软件原有的正常功能。现有的回归测试没有一个比较精准的标准,多半都是靠测试人员的经验、习惯以及项目的特性进行回归验收,测试范围不够准确,并且大范围的回归测试耗时耗力,甚至有时候还会遗漏测试点,造成测试覆盖率不全的问题。在传统的黑盒测试中,测试人员都不太接触研发的代码,因此测试人员对研发人员所修改的代码也没有感知,测试人员只是依靠研发人员的测试建议和测试风险来评估回归测试的范围,如此便会造成以下问题:一、研发人员只是修改了几行代码,但测试人员并不清楚修改的这几行代码对其他代码的影响,只能依靠研发人员单方面的推断来评估,造成回归测试范围不够精准。二、研发人员在修改了代码之后,有可能其自身对修改的代码所产生的影响也缺乏认识,如此便会给出错误的测试建议和测试范围,导致测试风险增加,使回归测试变成无用功。三、有可能研发人员只是对一些方法中的不是很重要的代码进行了修改,但为了达到项目的上线标准,测试人员却不敢不进行回归测试,如此不仅使测试没有针对性,并且还会造成回归测试的时间太长,从而延缓项目的上线时间,甚至错过产品发布的最好良机。鉴于上述问题,如何既能缩短回归测试的测试时间,又能使回归测试的测试范围变得更加精确且更有目的性,成为测试人员亟待解决的问题。
技术实现思路
鉴于上述问题,本专利技术的目的是提供一种基于调用关系依赖图的回归测试方法及系统,以缩短回归测试的测试时间,使回归测试的测试范围变得更加精确且更有目的性。根据本专利技术的一个方面,提供一种基于调用关系依赖图的回归测试方法,包括:将从版本管理库中获取的待比较版本的所有方法进行转存;将版本管理库更新至待测版本,然后编译待测版本,获取待测版本的所有方法之间的调用关系,并进行存储;将待测版本的所有方法与所转存的待比较版本的所有方法进行比较,获取发生变更的方法,生成方法变更集;根据所存储的调用关系生成调用关系依赖图,并根据方法变更集,在调用关系依赖图中对变更的方法进行标注;根据在调用关系依赖图中所标注的方法确定待测版本的回归范围,并根据回归范围进行回归测试。其中,在将从版本管理库中获取的待比较版本的所有方法进行转存之前,还包括:利用版本管理库所提供的接口,通过持续集成工具从版本管理库中获取待比较版本的所有方法;或者,直接从版本管理库中获取待比较版本的所有方法。其中,在获取待测版本的所有方法之间的调用关系的过程中,通过java字节码框架获取待测版本的所有方法之间的调用关系。另一方面,本专利技术提供一种基于调用关系依赖图的回归测试系统,包括:方法转存单元,用于将从版本管理库中获取的待比较版本的所有方法进行转存;调用关系获取单元,用于将版本管理库更新至待测版本,然后编译待测版本,获取待测版本的所有方法之间的调用关系,并进行存储;变更集生成单元,用于将待测版本的所有方法与方法转存单元中所转存的待比较版本的所有方法进行比较,获取发生变更的方法,生成方法变更集;变更方法标注单元,用于根据所存储的调用关系生成调用关系依赖图,并根据方法变更集,在调用关系依赖图中对变更的方法进行标注;回归测试单元,用于根据在调用关系依赖图中所标注的方法确定待测版本的回归范围,并根据回归范围进行回归测试。利用上述根据本专利技术的基于调用关系依赖图的回归测试方法及系统,通过分析待测版本与待比较版本这两个版本的源码,得出两个版本之间发生变更的方法,以及待测版本的方法之间的调用关系,生成调用关系依赖图,使研发和测试人员依据该调用关系依赖图和变更的方法分析出待测版本改动的影响面,从而使得回归测试的范围更加精准且更有目的性,同时通过依赖关系图,也能够使研发人员分析出所提交测试的代码是否存在错改漏改,确保所修改的代码都能完整的覆盖其影响面。为了实现上述以及相关目的,本专利技术的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本专利技术的某些示例性方面。然而,这些方面指示的仅仅是可使用本专利技术的原理的各种方式中的一些方式。此外,本专利技术旨在包括所有这些方面以及它们的等同物。附图说明通过参考以下结合附图的说明及权利要求书的内容,并且随着对本专利技术的更全面理解,本专利技术的其它目的及结果将更加明白及易于理解。在附图中:图1为根据本专利技术实施例的基于调用关系依赖图的回归测试方法的流程示意图;图2为根据本专利技术实施例的基于调用关系依赖图的回归测试系统逻辑结构框图。在所有附图中相同的标号指示相似或相应的特征或功能。具体实施方式以下将结合附图对本专利技术的具体实施例进行详细描述。针对前述现有的回归测试方法容易造成回归测试范围不精准、测试风险大和测试缺少目的性的问题。本专利技术通过对待测版本和待对比版本两个版本之间的方法进行比较,生成方法变更集,同时获取待测版本的方法之间的调用关系,生成调用关系依赖图,并根据方法变更集,在调用关系依赖图中对变更的方法进行标注,从而使研发人员可以依据该标注对待测版本进行检查和分析,确认是否有修改遗漏,并同时给出测试人员相应的测试建议;同样的,测试人员可以依据该标注对待测版本进行分析,确定出回归测试的范围,使回归测试的范围更加精准且更有目的性。为了说明本专利技术提供的基于调用关系依赖图的回归测试方法,图1示出了根据本专利技术实施例的基于调用关系依赖图的回归测试方法的流程。如图1所示,本专利技术提供的基于调用关系依赖图的回归测试方法包括:S110:将从版本管理库中获取的待比较版本的所有方法进行转存。其中,在将从版本管理库中获取的待比较版本的所有方法进行转存之前,还包括:利用版本管理库所提供的接口,通过持续集成工具从版本管理库中获取待比较版本的所有方法;或者,直接从版本管理库中获取待比较版本的所有方法。需要说明的是,上述的待比较版本是相对于待测版本而言的。实际上,持续集成工具能够持续构建版本管理库中的所有版本。也就是说,版本管理库中的所有版本都可以被持续集成工具所托管,通过持续集成工具可以获取版本管理库中的任何一个版本的代码(即一个版本中的所有方法)。另外需要说明的是,持续集成工具包括:jenkins、CruiseControl和LuntBuild等,或者还可以根据需求构建持续集成工具。具体地,由于不同版本管理库所提供的接口都不一样,因此,通过持续集成工具便能够轻易获取待测版本的代码。例如,版本管理库提供的是SVN接口,那么持续集成工具就会使用SVN接口获取代码,如果版本管理库提供的是git接口,那么持续集成工具就会使用git接口获取代码。其中,在将从版本管理库中获取的待比较版本的所有方法进行转存的过程中,将所获取的待比较版本的所有方法转存到存储系统中。其中,该存储系统包括文件存储系统、数据库或者其他存储系统。具体地,将所获取的待比较版本的所有方法进行转存的目的是:为了避免版本管理库所提供的接口差异所造成的版本之本文档来自技高网
...
基于调用关系依赖图的回归测试方法及系统

【技术保护点】
一种基于调用关系依赖图的回归测试方法,包括:将从版本管理库中获取的待比较版本的所有方法进行转存;将所述版本管理库更新至待测版本,然后编译所述待测版本,获取所述待测版本的所有方法之间的调用关系,并进行存储;将所述待测版本的所有方法与所转存的待比较版本的所有方法进行比较,获取发生变更的方法,生成方法变更集;根据所存储的调用关系生成调用关系依赖图,并根据所述方法变更集,在所述调用关系依赖图中对所述变更的方法进行标注;根据在所述调用关系依赖图中所标注的方法确定所述待测版本的回归范围,并根据所述回归范围进行回归测试。

【技术特征摘要】
1.一种基于调用关系依赖图的回归测试方法,包括:将从版本管理库中获取的待比较版本的所有方法进行转存;将所述版本管理库更新至待测版本,然后编译所述待测版本,获取所述待测版本的所有方法之间的调用关系,并进行存储;将所述待测版本的所有方法与所转存的待比较版本的所有方法进行比较,获取发生变更的方法,生成方法变更集;根据所存储的调用关系生成调用关系依赖图,并根据所述方法变更集,在所述调用关系依赖图中对所述变更的方法进行标注;根据在所述调用关系依赖图中所标注的方法确定所述待测版本的回归范围,并根据所述回归范围进行回归测试。2.如权利要求1所述的基于调用关系依赖图的回归测试方法,其中,在将从版本管理库中获取的待比较版本的所有方法进行转存之前,还包括:利用所述版本管理库所提供的接口,通过持续集成工具从所述版本管理库中获取所述待比较版本的所有方法;或者,直接从所述版本管理库中获取所述待比较版本的所有方法。3.如权利要求1所述的基于调用关系依赖图的回归测试方法,其中,在将从版本管理库中获取的待比较版本的所有方法进行转存的过程中,将所获取的待比较版本的所有方法转存到存储系统中。4.如权利要求1所述的基于调用关系依赖图的回归测试方法,其中,在获取所述待测版本的所有方法之间的调用关系的过程中,通过java字节码框架获取所述待测版本的所有方法之间的调用关系。5.如权利要求1所述的基于调用关系依赖图的回归测试方法,其中,在获取所述待测版本的所有方法之间的调用关系,并进行存储的过程中,将所述调用关系存储在运行系统的内存或者文件存储系统中。6.如权利要求1所述的基于调用关系依赖图的回归测试方法,其中,在将所述待测版本的所有方法与所转存的待比较版本的所有方法进行比较,获取发生变更的方法,生成方法变更集的过程中,通过源代码分析框架将所述待测版本的所有方法与所转存的待比较版本的所有方法进行比较,获取发生变更的方法,生成方法变更集。7.如权利要求1所述的基于调用关系依赖图的回归测试方法,其中,所述方法变更集包括修改的方法集、新增的方法集和删除的方法集。8.一种基于调...

【专利技术属性】
技术研发人员:陈伟鸿刘威李剑
申请(专利权)人:优视科技有限公司
类型:发明
国别省市:

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

1