本申请涉及数据处理,尤其涉及一种数据检测方法、装置、电子设备及存储介质。
背景技术:
1、目前,智能合约已在多个领域得到广泛应用,然而,传统以太坊的交易速度极大地限制了区块链技术的发展,为了突破交易速度方面的限制,出现了新兴的区块链智能合约交易平台,但新兴的区块链智能合约交易平台却面临不稳定测试问题的挑战,不稳定测试问题极大地降低了软件开发和部署的效率。
2、而在相关技术中,为了应对不稳定测试问题,有的技术方案仅关注其工作机制与智能合约漏洞检测,忽略了不稳定测试问题;有的技术方案仅关注于传统领域中的java项目或python项目,依赖于自身的语言特性,不适用于新型编程语言编写的新型区块链平台;还有的技术方案的实现方式是重复运行测试函数,这一方法也是工业界常用的检测方法,但存在耗时长、执行效率低的缺陷。
3、综上,相关技术中存在的技术问题有待得到改善。
技术实现思路
1、本申请实施例旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本申请实施例的主要目的在于提出一种数据检测方法、装置、电子设备及存储介质,能够降低测试的重复运行次数,提高检测系统的测试效率以及降低执行时间成本。
2、为实现上述目的,本申请实施例的一方面提出了一种数据检测方法,所述方法包括以下步骤:
3、获取源程序文件;
4、对所述源程序文件进行第一数据提取处理,得到目标测试函数集;
5、对所述目标测试函数集中的若干目标测试函数进行数据分割处理,得到各个所述目标测试函数对应的词向量;
6、计算各个所述目标测试函数对应的所述词向量之间的文本相似度,得到相似度计算结果;
7、基于所述相似度计算结果生成若干测试套件,并执行各个所述测试套件得到运行结果日志;
8、根据所述运行结果日志检测出所述源程序文件中的不稳定测试数据。
9、在一些实施例中,所述对所述源程序文件进行第一数据提取处理,得到目标测试函数集,包括:
10、从所述源程序文件的测试模块中提取若干候选测试函数;
11、对各个所述候选测试函数进行过滤处理,得到若干所述目标测试函数;
12、基于各个所述目标测试函数构建所述目标测试函数集。
13、在一些实施例中,所述对所述目标测试函数集中的若干目标测试函数进行数据分割处理,得到各个所述目标测试函数对应的词向量,包括:
14、对所述目标测试函数集中的若干所述目标测试函数进行第二数据提取处理,得到各个所述目标测试函数对应的测试函数名;
15、通过正则表达式将各个所述目标测试函数对应的所述测试函数名进行数据分割处理,得到各个所述目标测试函数对应的所述词向量。
16、在一些实施例中,所述计算各个所述目标测试函数对应的所述词向量之间的文本相似度,得到相似度计算结果,包括:
17、对各个所述目标测试函数对应的所述词向量进行计算,得到各个所述目标测试函数对应的平均词向量;
18、通过目标计算模型计算各个所述目标测试函数对应的所述平均词向量之间的余弦相似度,得到所述相似度计算结果。
19、在一些实施例中,所述基于所述相似度计算结果生成若干测试套件,并执行各个所述测试套件得到运行结果日志,包括:
20、根据所述相似度计算结果将若干所述目标测试函数进行分组,得到若干测试函数分组列表,并将所述测试函数分组列表作为所述测试套件;
21、基于各个所述测试套件生成测试函数对,并以所述测试函数对的形式执行各个所述测试套件得到所述运行结果日志。
22、在一些实施例中,所述基于所述各个所述测试套件生成测试函数对,并以所述测试函数对的形式执行各个所述测试套件得到所述运行结果日志,包括:
23、基于各个所述测试套件对应的套件长度生成函数索引序列;
24、基于所述函数索引序列生成全排列运行序列;
25、基于所述全排列运行序列生成所述测试函数对,并以所述测试函数对的形式执行各个所述测试套件得到所述运行结果日志。
26、在一些实施例中,所述根据所述运行结果日志检测出所述源程序文件中的不稳定测试数据,包括:
27、对所述运行结果日志进行分类,得到成功日志结果和失败日志结果;
28、将所述成功日志结果和所述失败日志结果进行对比,检测出所述源程序文件中的所述不稳定测试数据。
29、为实现上述目的,本申请实施例的另一方面提出了一种数据检测装置,所述装置包括:
30、所述装置包括以下模块:
31、数据获取模块,用于获取源程序文件;
32、数据提取处理模块,用于对所述源程序文件进行第一数据提取处理,得到目标测试函数集;
33、数据分割处理模块,用于对所述目标测试函数集中的若干目标测试函数进行数据分割处理,得到各个所述目标测试函数对应的词向量;
34、相似度计算模块,用于计算各个所述目标测试函数对应的所述词向量之间的文本相似度,得到相似度计算结果;
35、测试套件生成模块,用于基于所述相似度计算结果生成若干测试套件,并执行各个所述测试套件得到运行结果日志;
36、数据检测模块,用于根据所述运行结果日志检测出所述源程序文件中的不稳定测试数据。
37、为实现上述目的,本申请实施例的另一方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现前面所述的方法。
38、为实现上述目的,本申请实施例的另一方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前面所述的方法。
39、本申请实施例至少包括以下有益效果:本申请提供一种数据检测方法、装置、电子设备及存储介质,该方案通过获取源程序文件;对源程序文件进行第一数据提取处理,得到目标测试函数集;对目标测试函数集中的若干目标测试函数进行数据分割处理,得到各个目标测试函数对应的词向量;计算各个目标测试函数对应的词向量之间的文本相似度,得到相似度计算结果;基于相似度计算结果生成若干测试套件,并执行各个测试套件得到运行结果日志;根据运行结果日志检测出源程序文件中的不稳定测试数据。本申请实施例通过采用文本相似度分析技术借助词向量间的相似度作为衡量不同测试函数间依赖关系的度量,减少了所需测试函数的执行次数,极大地节省了的所需时间成本,同时,基于相似度计算结果生成与测试函数功能特性相关的测试套件,并以测试套件的形式执行测试,能够减少测试的重复运行次数,从而提高检测系统的测试效率以及降低执行时间成本。本申请实施例构建的不依赖语言特性的高效检测方法,能够解决传统不稳定测试的检测方法在新型区块链平台中不足的问题,从而有利于提高软件开发和部署的效率。
1.一种数据检测方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述对所述源程序文件进行第一数据提取处理,得到目标测试函数集,包括:
3.根据权利要求1所述的方法,其特征在于,所述对所述目标测试函数集中的若干目标测试函数进行数据分割处理,得到各个所述目标测试函数对应的词向量,包括:
4.根据权利要求1所述的方法,其特征在于,所述计算各个所述目标测试函数对应的所述词向量之间的文本相似度,得到相似度计算结果,包括:
5.根据权利要求1所述的方法,其特征在于,所述基于所述相似度计算结果生成若干测试套件,并执行各个所述测试套件得到运行结果日志,包括:
6.根据权利要求5所述的方法,其特征在于,所述基于所述各个所述测试套件生成测试函数对,并以所述测试函数对的形式执行各个所述测试套件得到所述运行结果日志,包括:
7.根据权利要求1所述的方法,其特征在于,所述根据所述运行结果日志检测出所述源程序文件中的不稳定测试数据,包括:
8.一种数据检测装置,其特征在于,所述装置包括以下模块:
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法。