穿线测试方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:21184325 阅读:23 留言:0更新日期:2019-05-22 15:00
本发明专利技术公开了一种穿线测试方法、装置、计算机设备及存储介质,所述方法包括:获取穿线测试请求,所述穿线测试请求包括至少一个漏洞修复代码模块;对所述漏洞修复代码模块进行语法树分析,得到所述漏洞修复代码模块的链路,作为修复链路,其中,所述修复链路包括N个链路支路;将所述修复链路和所述漏洞修复代码模块通过区间树进行缺陷分布计算,得到每一所述链路支路的修复次数;获取每一所述链路支路的预设的权值,对每一所述链路支路的修复次数进行加权计算,并根据计算结果值获取对应的回归修复模块;对所述回归修复模块进行回归测试,得到测试结果。上述穿线测试方法保证了测试覆盖率得到最大化,提高了测试精度和测试效率。

Thread testing methods, devices, computer equipment and storage media

The invention discloses a threading test method, device, computer equipment and storage medium. The method includes acquiring a threading test request, the threading test request includes at least one vulnerability repair code module, parsing the vulnerability repair code module and obtaining the link of the vulnerability repair code module as a repair link, in which the repair code module includes at least one vulnerability repair code module. Complex links include N link branches; defect distribution of the repair links and the vulnerability repair code module is calculated by interval tree, and the repair times of each link branch are obtained; the preset weights of each link branch are obtained, the repair times of each link branch are weighted, and the corresponding regression repair modules are obtained according to the calculated values. The regression repair module is tested and the test results are obtained. The above threading test method ensures that the test coverage is maximized, and improves the test accuracy and efficiency.

【技术实现步骤摘要】
穿线测试方法、装置、计算机设备及存储介质
本专利技术涉及功能测试领域,尤其涉及一种穿线测试方法、装置、计算机设备及存储介质。
技术介绍
穿线测试是一种将开发者和测试者的工作组件串联起来的功能测试。开发和测试之间依托穿线测试可以进行高效的互动,实现功能测试与对应的程序源代码执行逻辑的双向穿线。穿线测试自动建立测试用例与程序源代码之间的逻辑关系,正向穿线,开发工程师可以看到测试工程师执行用例的代码细节,以方便进行缺陷的修复,测试数据可以直接为开发调试提供依据,快速定位并修复缺陷。逆向穿线,测试工程师通过修改的源码快速确定测试用例的范围,极大减少回归测试的盲目性和工作量,快速修订测试用例,达到测试覆盖率最大化。传统地,穿线测试依赖于测试人员的项目经验进行判断,效率较低,容易导致错误,影响测试的准确率,降低了测试效率。
技术实现思路
本专利技术实施例提供一种穿线测试方法、装置、计算机设备及存储介质,以解决穿线测试效率较低的问题。一种穿线测试方法,包括:获取穿线测试请求,所述穿线测试请求包括至少一个漏洞修复代码模块;对所述漏洞修复代码模块进行语法树分析,得到所述漏洞修复代码模块的链路,作为修复链路,其中,所述修复链路包括N个链路支路,N为正整数;将所述修复链路和所述漏洞修复代码模块通过区间树进行缺陷分布计算,得到每一所述链路支路的修复次数;获取每一所述链路支路的预设的权值,对每一所述链路支路的修复次数进行加权计算,并根据计算结果值获取对应的回归修复模块;对所述回归修复模块进行回归测试,得到测试结果。一种穿线测试装置,包括:测试请求获取模块,用于获取穿线测试请求,所述穿线测试请求包括至少一个漏洞修复代码模块;链路获取模块,用于对所述漏洞修复代码模块进行语法树分析,得到所述漏洞修复代码模块的链路,作为修复链路,其中,所述修复链路包括N个链路支路,N为正整数;修复次数获取模块,用于将所述修复链路和所述漏洞修复代码模块通过区间树进行缺陷分布计算,得到每一所述链路支路的修复次数;修复模块获取模块,用于获取每一所述链路支路的预设的权值,对每一所述链路支路的修复次数进行加权计算,并根据计算结果值获取对应的回归修复模块;测试结果获取模块,用于对所述回归修复模块进行回归测试,得到测试结果。一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述穿线测试方法。一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述穿线测试方法。上述穿线测试方法、装置、计算机设备及存储介质中,本实施例中,首先获取穿线测试请求;然后对漏洞修复代码模块进行语法树分析,得到漏洞修复代码模块的链路,作为修复链路;接着,将修复链路和漏洞修复代码模块通过区间树进行缺陷分布计算,得到每一链路支路的修复次数,有利于提高后续对缺陷分布计算的效率和准确度;接下来,获取每一链路支路的预设的权值,对每一链路支路的修复次数进行加权计算,并根据计算结果值获取对应的回归修复模块,从而明确回归测试的重点,以便后续对回归修复模块进行回归测试;最后,对回归修复模块进行回归测试,得到测试结果,保证了覆盖率能达到最大化,进而提高了测试结果的准确性和测试效率。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的穿线测试方法的应用环境示意图;图2是本专利技术实施例提供的穿线测试方法一示例图;图3是本专利技术实施例步骤S30中修复链路的一示例图图4是本专利技术实施例提供的穿线测试方法的另一示例图;图5是本专利技术实施例提供的穿线测试方法的另一示例图;图6是本专利技术实施例提供的穿线测试方法的另一示例图;图7是本专利技术实施例提供的穿线测试方法的另一示例图;图8是本专利技术实施例提供的穿线测试装置的一原理框图;图9是本专利技术实施例提供的穿线测试装置的另一原理框图;图10是本专利技术实施例提供的穿线测试装置的另一原理框图;图11是本专利技术实施例提供的计算机设备的一示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本申请提供的穿线测试方法,可应用在如图1的应用环境中,其中,客户端(计算机设备)通过网络与服务端进行通信。客户端发送穿线测试请求到服务端,服务端对漏洞修复代码模块进行语法树分析,得到漏洞修复代码模块的链路,作为修复链路;然后,将修复链路和漏洞修复代码模块通过区间树进行缺陷分布计算,得到每一链路支路的修复次数;接着,获取每一链路支路的预设的权值,对每一链路支路的修复次数进行加权计算,并根据计算结果值获取对应的回归修复模块;最后,对回归修复模块进行回归测试,得到测试结果。其中,客户端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。在一个实施例中,如图2所示,以该方法应用于图1中的服务端为例进行说明,包括如下步骤:S10:获取穿线测试请求,穿线测试请求包括至少一个漏洞修复代码模块。其中,穿线测试请求为对测试代码进行穿线测试的请求。而穿线测试是一种自动建立测试用例与程序源代码之间的逻辑关系的测试方法,用于对缺陷分布代码进行缺陷修复。具体地,可以为客户端通过预定动作触发该穿线测试,例如通过点击预定按键或者输入预定指令来实现,客户端在检测或识别到上述动作对应的指令时,触发生成穿线测试请求,并将该穿线测试请求发送到服务端,服务端获取到该穿线测试请求。穿线测试请求包括至少一个漏洞(bug)修复代码模块,漏洞修复代码模块是指静态的代码文件中存在缺陷的代码段(落),用于作为穿线测试的基础作用对象,在漏洞修复代码模块上进行穿线测试。该至少一个漏洞修复代码模块可以是测试人员手工测试或者自动化测试获取,也可以是通过静态代码扫描获取,还可以是通过自动化测试输出的缺陷获取。优选地,本实施例中,通过静态代码扫描获取漏洞修复代码模块。在一个具体实施方式中,漏洞修复代码模块为复数个,即可以在一个穿线测试中进行复数个漏洞修复代码模块的穿线测试。例如,在对代码进行功能测试时,测试人员可能依赖于项目经验,也可能是对问题的聚类停留在页面或者功能清单的级别,认为大量的漏洞(bug)出现“登录模块”,因而可能围绕登录模块做重点回归的部署,难以检测到准确地漏洞位置。而通过获取漏洞修复代码模块,分析代码段落存在缺陷的位置,如在问题修复后的代码关联到的代码是login.java(基于java语言的登录模块),从而通过漏洞修复代码模块反推漏洞位置在与登录相关的功能,进而提高了穿线测试的针对性。S20:对漏洞修复代码模块进行语法树分析,得到漏洞修复代码模块的链路,作为修复链路,其中,修复链路包括N个链路支路,N为正整数。其中,语本文档来自技高网...

【技术保护点】
1.一种穿线测试方法,其特征在于,所述穿线测试方法包括:获取穿线测试请求,所述穿线测试请求包括至少一个漏洞修复代码模块;对所述漏洞修复代码模块进行语法树分析,得到所述漏洞修复代码模块的链路,作为修复链路,其中,所述修复链路包括N个链路支路,N为正整数;将所述修复链路和所述漏洞修复代码模块通过区间树进行缺陷分布计算,得到每一所述链路支路的修复次数;获取每一所述链路支路的预设的权值,对每一所述链路支路的修复次数进行加权计算,并根据计算结果值获取对应的回归修复模块;对所述回归修复模块进行回归测试,得到测试结果。

【技术特征摘要】
1.一种穿线测试方法,其特征在于,所述穿线测试方法包括:获取穿线测试请求,所述穿线测试请求包括至少一个漏洞修复代码模块;对所述漏洞修复代码模块进行语法树分析,得到所述漏洞修复代码模块的链路,作为修复链路,其中,所述修复链路包括N个链路支路,N为正整数;将所述修复链路和所述漏洞修复代码模块通过区间树进行缺陷分布计算,得到每一所述链路支路的修复次数;获取每一所述链路支路的预设的权值,对每一所述链路支路的修复次数进行加权计算,并根据计算结果值获取对应的回归修复模块;对所述回归修复模块进行回归测试,得到测试结果。2.如权利要求1所述的穿线测试方法,其特征在于,在所述获取穿线测试请求,所述穿线测试请求包括至少一个漏洞修复代码模块之前,所述穿线测试方法还包括:获取原始模块代码和变更模块代码;采用对比工具对比原始模块代码和变更模块代码的变更区域,得到差异模块,将所述差异模块确定为所述漏洞修复代码模块。3.如权利要求1所述的穿线测试方法,其特征在于,所述对所述漏洞修复代码模块进行语法树分析,得到所述漏洞修复代码模块的链路,作为修复链路,包括:对所述漏洞修复代码模块进行遍历,获取测试代码信息;对所述测试代码信息进行语法树分析,得到所述修复链路。4.如权利要求1所述的穿线测试方法,其特征在于,所述对将所述修复链路和所述漏洞修复代码模块通过区间树进行缺陷分布计算,得到每一所述链路支路的修复次数,包括:对所述漏洞修复代码模块构建区间树;在所述区间树中依据每一所述链路支路对所述漏洞修复代码模块进行重叠区间查找,得到重叠区间;计算所述重叠区间最大范围值,作为所述每一所述链路支路的修复次数。5.如权利要求1所述的穿线测试方法,其特征在于,所述对所述回归修复模块进行回归测试,得到测试结果,包括:采用代码覆盖率工具对所述回归修复模块的覆盖率进行统计,得到回归覆盖率;根据回...

【专利技术属性】
技术研发人员:刘慧众
申请(专利权)人:深圳壹账通智能科技有限公司
类型:发明
国别省市:广东,44

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

1