基于路径差异的代码测试方法技术

技术编号:20025438 阅读:49 留言:0更新日期:2019-01-06 04:24
本发明专利技术公开了一种基于路径差异的代码测试方法,包括:针对任一待检测代码,获取所述待检测代码与其对应的旧版本代码之间的路径差异信息;根据所述路径差异信息,获取相应的测试用例;以及使用所述测试用例对所述待检测代码进行测试,并获取该次测试中的待检测代码各组成部分的代码覆盖率信息;根据所述代码覆盖率信息,筛选出在该次中代码覆盖率为0%的功能包;根据所述功能包的内容,获取相应的再测试用例,并使用该再测试用例再次测试所述待检测代码。本方法避免了系统功能点测试的遗漏,提供了稳定的测试质量。

【技术实现步骤摘要】
基于路径差异的代码测试方法
本申请涉及检测技术,特别涉及基于路径差异的代码测试方法。
技术介绍
随着科技的发展,运行在服务器或者终端上,提供各类服务的软件系统越来越多,这些系统投入使用之前都会针对软件系统的源代码进行功能测试,通常会设计测试用例来模拟系统运行时会出现的各种情况以测试系统的每个功能是否能够正常而稳定的工作,而系统的每次更新通常会修改源代码以带来新的功能或是删减掉某些功能,这都需要在系统上线前重新进行功能测试,也就需要设计新的测试用例以覆盖到新的功能或是避免涉及已经删除的功能。另一方面,以JAVA类语言开发的软件系统,其源代码的结构通常是一个项目(Project)下包含了多个实现具体功能的功能包(Package),功能包下又包含多个类(class),类下又包含多个方法(method);具体运行时,在代码层面所形成的package-class-method层层调用的关系,就称之为路径。传统的功能测试过程极其不稳定,特别依赖于测试人员的业务能力和临场发挥能力,即使很优秀的测试人员也会因为状态问题而导致测试用例设计水准出现波动,更不要提有经验人员和经验欠缺人员在测试用例设计上的巨大差别。这就导致了随着系统的更新,测试用例不断增加,却仍旧无法得知系统功能点测试是否有遗漏,测试质量是否得到了保障。
技术实现思路
本专利技术提供了基于路径差异的代码测试方法,以避免系统功能点测试的遗漏,提供稳定的测试质量。为达到上述目的,本专利技术的技术方案是这样实现的:基于路径差异的代码测试方法,包括:针对任一待检测代码,获取所述待检测代码与其对应的旧版本代码之间的路径差异信息;根据所述路径差异信息,获取相应的测试用例;以及使用所述测试用例对所述待检测代码进行测试,并获取该次测试中的待检测代码各组成部分的代码覆盖率信息;根据所述代码覆盖率信息,筛选出在该次中代码覆盖率为0%的功能包;根据所述功能包的内容,获取相应的再测试用例,并使用该再测试用例再次测试所述待检测代码。本方案通过对新旧代码的路径对比,得到待测试代码相对于旧代码新增/删减的功能,从而知道新的测试用例的设计,从而在第一版代码设计并通过测试后,通过迭代的方法,确保每次新增/删减的功能得以测试,并通过代码覆盖率作为验证手段,筛选出没有被测试到的功能包,并针对性的执行再测试用例,保证测试中没有功能点被遗漏,保证了测试质量的稳定。进一步,还包括,将所述再测试用例存入测试用例库。通过案例集成,为以后的测试用例编写提供参考,利用经验的可视化集成确保不同水平的测试人员均能做到基本一致的测试质量。进一步,通过Jdepend工具获取所述待检测代码与其对应的旧版本代码各自的路径信息,进而对比出所述路径差异信息。该工具可以对代码包进行结构分析,从而获得所需的路径信息。进一步,通过JaCoCo工具获取所述代码覆盖率信息。JaCoCo工具包含了多种尺度的覆盖率计数器,包含指令级覆盖(Instructions,C0coverage),分支(Branches,C1coverage)、圈复杂度(CyclomaticComplexity)、行覆盖(Lines)、方法覆盖(non-abstractmethods)、类覆盖(classes),非常适用于本专利技术中针对路径的代码测试。进一步,通过EMMA工具获取所述代码覆盖率信息。EMMA支持对类,方法,代码行和基本的分支语句的覆盖率测试,并提供了多种格式的报告,包括纯文本,HTML和XML,所有的报告都可以进行详细设置以获得定制报告。而且,使用EMMA时,不需要获得源代码就可进行覆盖率测试,更为方便。附图说明图1为本专利技术实施例中的源代码测试的工作流程示意图。图2为本专利技术实施例中的基于路径差异的代码测试系统的示意性框图。具体实施方式为使本专利技术的技术方案更加清楚、明白、以下参照附图并举实施例,对本专利技术所述方案作进一步地详细说明。图1为本实施例的流程图。如图1所示,包括以下内容:首先是针对任一待检测代码,获取所述待检测代码与其对应的旧版本代码之间的路径差异信息;路径的形式是package-class-method,得到差异信息的方法可以是:通过Jdepend工具获取所述待检测代码与其对应的旧版本代码各自的路径信息,进而对比出所述路径差异信息。该工具可以对代码包进行结构分析,从而获得所需的路径信息。于是测试人员明确了在主案例里应该包括哪些内容,从而根据这些路径差异信息,制定出测试用例;该测试用例经过审核后,交测试平台进行平台扫描,也就是使用所述测试用例对所述待检测代码进行测试。测试结束后,便同步可以得到测试中的待检测代码各组成部分的代码覆盖率信息;得到代码覆盖率信息的方法可以是:通过JaCoCo工具获取所述代码覆盖率信息。JaCoCo工具包含了多种尺度的覆盖率计数器,包含指令级覆盖(Instructions,C0coverage),分支(Branches,C1coverage)、圈复杂度(CyclomaticComplexity)、行覆盖(Lines)、方法覆盖(non-abstractmethods)、类覆盖(classes),非常适用于本专利技术中针对路径的代码测试。或者通过EMMA工具获取所述代码覆盖率信息。EMMA支持对类,方法,代码行和基本的分支语句的覆盖率测试,并提供了多种格式的报告,包括纯文本,HTML和XML,所有的报告都可以进行详细设置以获得定制报告。而且,使用EMMA时,不需要获得源代码就可进行覆盖率测试,更为方便。根据得到的代码覆盖率信息,筛选出在该次中代码覆盖率为0%的功能包;根据所述功能包的内容,在原有测试用例的基础上补充相应的自动化脚本,从而获取相应的再测试用例;可以由测试人员自己走读代码,也可以咨询相应对模块的开发人员以确定具体需要新增怎样的自动化脚本。并使用该再测试用例再次测试所述待检测代码。最后核查本次测试是否覆盖所有的主业务流程,以及所有新增/删减功能。本实施例通过以下系统实现:基于路径差异的代码测试系统,基本如图2所示,包括:路径分析模块,用于针对任一待检测代码,获取所述待检测代码与其对应的旧版本代码之间的路径差异信息;测试用例获取模块,用于获取根据所述路径差异信息所指定的测试用例;测试平台,用于使用所述测试用例对所述待检测代码进行测试,并获取该次测试中的待检测代码各组成部分的代码覆盖率信息;筛选模块,用于根据所述代码覆盖率信息,筛选出在该次中代码覆盖率为0%的功能包;测试用例再次获取模块,用于获取根据所述功能包的内容所制定的再测试用例,并发送该再测试用例至测试平台再次测试所述待检测代码。测试用例库,用于存储所述再测试用例。最后将所述再测试用例存入测试用例库,入库前可由相关人员对本次使用的案例进行评述,或是以代码覆盖率的高低做过评价标准,对案例加以筛选,通过案例集成,为以后的测试用例编写提供参考,利用经验的可视化集成确保不同水平的测试人员均能做到基本一致的测试质量。本实施例通过对新旧代码的路径对比,得到待测试代码相对于旧代码新增/删减的功能,从而知道新的测试用例的设计,从而在第一版代码设计并通过测试后,通过迭代的方法,确保每次新增/删减的功能得以测试,并通过代码覆盖率作为验证手段,筛选出没有被测试到的功能包,并针对性的本文档来自技高网...

【技术保护点】
1.一种基于路径差异的代码测试方法,其特征在于,包括:针对任一待检测代码,获取所述待检测代码与其对应的旧版本代码之间的路径差异信息;根据所述路径差异信息,获取相应的测试用例;以及使用所述测试用例对所述待检测代码进行测试,并获取该次测试中的待检测代码各组成部分的代码覆盖率信息;根据所述代码覆盖率信息,筛选出在该次中代码覆盖率为0%的功能包;根据所述功能包的内容,获取相应的再测试用例,并使用该再测试用例再次测试所述待检测代码。

【技术特征摘要】
1.一种基于路径差异的代码测试方法,其特征在于,包括:针对任一待检测代码,获取所述待检测代码与其对应的旧版本代码之间的路径差异信息;根据所述路径差异信息,获取相应的测试用例;以及使用所述测试用例对所述待检测代码进行测试,并获取该次测试中的待检测代码各组成部分的代码覆盖率信息;根据所述代码覆盖率信息,筛选出在该次中代码覆盖率为0%的功能包;根据所述功能包的内容,获取相应的再测试用例,并使用该再测试用例再次测试...

【专利技术属性】
技术研发人员:赵辰
申请(专利权)人:重庆富民银行股份有限公司
类型:发明
国别省市:重庆,50

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

1