本申请涉及一种测试数据生成方法、装置、计算机设备和存储介质,该方法包括:获取待测试代码中的代码标识信息,再根据代码标识信息及待测试代码的历史测试数据,生成待测试代码的初始测试数据。最后,根据待测试代码的代码控制流图中的多个执行路径对初始测试数据进行优化,生成目标测试数据。由于待测试代码的代码标识信息能够准确地反应待测试代码的编码构思,因此,将代码标识信息与待测试代码的历史测试数据结合所得到的初始测试数据就能够更好地适应待测试代码的编码构思。由于根据待测试代码的代码控制流图中的多个执行路径对初始测试数据进行优化,因此,就可以提高目标测试数据对代码控制流图中的多个执行路径的代码路径覆盖率。的代码路径覆盖率。的代码路径覆盖率。
【技术实现步骤摘要】
测试数据生成方法、装置、计算机设备和存储介质
[0001]本申请涉及测试
,特别是涉及一种测试数据生成方法、装置、计算机设备和存储介质。
技术介绍
[0002]随着信息化进程的推进,各类软件产品已经深入到人们的生活及工作中。在软件开发过程中,软件测试是软件开发中重要的环节之一,是保证软件质量的重要工序。
[0003]而在软件测试过程中需要构建测试数据,然后基于测试数据进行软件测试。传统的,采用人工方式构建测试数据,构建过程非常繁琐耗时。且由于软件的代码中存在大量的路径,采用人工方式所构建的测试数据,无法较好地覆盖软件中的各个路径。即采用人工方式所构建的测试数据,存在代码路径覆盖率较低的问题。
技术实现思路
[0004]本申请实施例提供了一种测试数据生成方法、装置、计算机设备、计算机可读存储介质,可以提高目标测试数据对代码控制流图中的多个执行路径的代码路径覆盖率。
[0005]一方面,提供了一种测试数据生成方法,所述方法包括:获取待测试代码中的代码标识信息;根据所述代码标识信息及所述待测试代码的历史测试数据,生成所述待测试代码的初始测试数据;根据所述待测试代码的代码控制流图中的多个执行路径对所述初始测试数据进行优化,生成目标测试数据。
[0006]另一方面,提供了一种测试数据生成装置,所述装置包括:代码标识信息获取模块,用于获取待测试代码中的代码标识信息;初始测试数据生成模块,用于根据所述代码标识信息及所述待测试代码的历史测试数据,生成所述待测试代码的初始测试数据;目标测试数据生成模块,用于根据所述待测试代码的代码控制流图中的多个执行路径对所述初始测试数据进行优化,生成目标测试数据。
[0007]另一方面,提供了一种计算机设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上所述的测试数据生成方法的步骤。
[0008]另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的测试数据生成方法的步骤。
[0009]另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的测试数据生成方法的步骤。
[0010]上述测试数据生成方法、装置、计算机设备和存储介质,可以获取待测试代码中的代码标识信息,再根据代码标识信息及待测试代码的历史测试数据,生成待测试代码的初
始测试数据。最后,根据待测试代码的代码控制流图中的多个执行路径对初始测试数据进行优化,生成目标测试数据。一方面,由于待测试代码的代码标识信息能够比较准确地反应待测试代码的编码构思,因此,将代码标识信息与待测试代码的历史测试数据结合,来构建待测试代码的初始测试数据。显然,所得到的初始测试数据就能够更好地适应待测试代码的编码构思。另一方面,由于根据待测试代码的代码控制流图中的多个执行路径对初始测试数据进行优化,因此,可以对初始测试数据向靠近或覆盖代码控制流图中的多个执行路径方向进行优化。最终,就可以提高目标测试数据对代码控制流图中的多个执行路径的代码路径覆盖率。
附图说明
[0011]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0012]图1为一个实施例中测试数据生成方法的应用环境图;图2为一个实施例中测试数据生成方法的流程图;图3为图2中根据代码标识信息及待测试代码的历史测试数据,生成待测试代码的初始测试数据方法的流程图;图4为一个实施例中根据代码标识信息及待测试代码的历史测试数据,生成待测试代码的初始测试数据的方法的流程图;图5为一个实施例中待测试代码的代码控制流图的示意图;图6为一个实施例中针对多个执行路径,采用遗传算法对初始测试数据进行进化迭代,生成目标测试数据方法的流程图;图7为另一个实施例中针对多个执行路径,采用遗传算法对初始测试数据进行进化迭代,生成目标测试数据方法的流程图;图8为一个示例性的实施例中测试数据生成方法的示意图;图9为一个实施例中测试数据生成装置的结构框图;图10为图9中初始测试数据生成模块的结构框图;图11为一个实施例中计算机设备的内部结构示意图;图12为一个实施例中计算机设备的内部结构示意图。
具体实施方式
[0013]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0014]随着信息化进程的推进,各类软件产品已经深入到人们的生活及工作中。在软件开发过程中,软件测试是软件开发中重要的环节之一,是保证软件质量的重要工序。
[0015]而在软件测试过程中需要构建测试数据,然后基于测试数据进行软件测试。传统的,采用人工方式构建测试数据,构建过程非常繁琐耗时。且由于软件的代码中存在大量的
路径,采用人工方式所构建的测试数据,无法较好地覆盖软件中的各个路径。即采用人工方式所构建的测试数据,存在代码路径覆盖率较低的问题。例如,白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,测试人员清楚盒子内部的东西以及盒子里面是如何运作的。通过“白盒测试”法可以全面了解软件程序内部逻辑结构,并对所有逻辑路径进行测试。因此,在对软件进行白盒测试时,需要尽可能地覆盖软件代码的所有路径。显然,采用人工方式所构建的测试数据,在执行白盒测试的过程就存在代码路径覆盖率较低的问题。
[0016]图1为一个实施例中测试数据生成方法的应用环境示意图。如图1所示,该应用环境包括计算机设备120。计算机设备120可以获取待测试代码中的代码标识信息;根据代码标识信息及待测试代码的历史测试数据,生成待测试代码的初始测试数据;根据待测试代码的代码控制流图中的多个执行路径对初始测试数据进行优化,生成目标测试数据。其中,计算机设备120可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备、智能汽车等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。另外,计算机设备120还可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0017]图2为一个实施例中测试数据生成方法的流程图。本实施例中的测试数据生成方法,以运行于图1中的计算机设备120上为例进行描述。如图2所示,测试数据生成方法包括步骤220至步骤260,其中,步骤220,获取待测试代码中的代码标识信息。
[0018]计算机设备在对待测试代码进行测试之前,需要构建测试数据。这里,待测试代码可以是待测软件对应的代码。在构建测试数据时,首先本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种测试数据生成方法,其特征在于,所述方法包括:获取待测试代码中的代码标识信息;根据所述代码标识信息及所述待测试代码的历史测试数据,生成所述待测试代码的初始测试数据;根据所述待测试代码的代码控制流图中的多个执行路径对所述初始测试数据进行优化,生成目标测试数据。2.根据权利要求1所述的方法,其特征在于,所述根据所述代码标识信息及所述待测试代码的历史测试数据,生成所述待测试代码的初始测试数据,包括:从所述历史测试数据中获取关键信息;计算所述关键信息与所述代码标识信息之间的相似度;根据所述相似度,从所述历史测试数据中获取目标关键词对应的目标历史测试数据,将所述目标历史测试数据作为所述待测试代码的初始测试数据;所述代码标识信息与所述目标关键词之间的相似度大于预设相似度阈值。3.根据权利要求2所述的方法,其特征在于,所述计算所述关键信息与所述代码标识信息之间的相似度,包括:获取所述关键信息对应的词向量及所述代码标识信息对应的词向量;计算所述关键信息对应的词向量与所述代码标识信息对应的词向量之间的余弦相似度;所述根据所述相似度,从所述历史测试数据中获取目标关键词对应的目标历史测试数据,包括:根据所述余弦相似度,从所述历史测试数据中获取目标关键词对应的目标历史测试数据;所述代码标识信息对应的词向量与所述目标关键词对应的词向量的余弦相似度大于预设余弦相似度阈值。4.根据权利要求1
‑
3中任一项所述的方法,其特征在于,所述根据所述待测试代码的代码控制流图中的多个执行路径对所述初始测试数据进行优化,生成目标测试数据,包括:获取所述待测试代码的代码控制流图中的多个执行路径;针对所述多个执行路径,采用遗传算法对所述初始测试数据进行进化迭代,生成目标测试数据。5.根据权利要求4所述的方法,其特征在于,所述针对所述多个执行路径,采用遗传算法对所述初始测试数据进行进化迭代,生成目标测试数据,包括:对所述初始测试数据执行交叉操作及变异操作,得到新的测试数据;将所述多个执行路径中的任一执行路径作为初始执行路径,针对所述初始执行路径,判断所述新的测试数据是否覆盖所述初始执行路径;若所述新的测试数据覆盖所述初始执行路径,则将所述多个执行路径中未...
【专利技术属性】
技术研发人员:刘明德,李凌,宋琦,徐峰,
申请(专利权)人:中国电信股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。