本公开实施例涉及软件开发,尤其涉及一种信息处理方法、装置、设备及存储介质。
背景技术:
1、目前,越来越用的用户采用go语言程序执行并发操作,但是go语言程序内可能存在并发错误,影响go语言程序的性能。因此,为了提高go语言程序的稳定性,需要对go语言程序中的并发错误进行检测。
2、现有技术中,通过消息重排技术对go语言程序中的并发错误进行检测。具体步骤为:通过go语言程序中select语句对并发操作的执行顺序进行重新排列,然后通过重新排列的执行顺序,执行并发操作,对go语言程序中的并发错误进行检测。
3、然而,发明人发现现有技术至少存在如下技术问题:由于通过go语言程序中select语句对并发操作的执行顺序进行重新排列,得到的新的执行顺序的数量较少,可能部分并发错误无法被检测到,因此通过上述检测方法对并发漏洞进行检测的准确性较低。
技术实现思路
1、本公开实施例提供一种信息处理方法、装置、设备及存储介质,可以提高并发漏洞检测准确性。
2、第一方面,本公开实施例提供一种信息处理方法,包括:
3、从调度信息种子库中获取被测程序对应的初始调度信息,其中所述被测程序包括多个测试线程,每个测试线程用于执行多个并发操作,所述初始调度信息用于限定至少两个测试线程中的至少两个第一并发操作的执行顺序;
4、对于每个测试线程,根据所述初始调度信息执行所述每个测试线程中的多个并发操作,对所述每个测试线程中的并发漏洞进行检测,并记录所述每个测试线程中的多个并发操作各自对应的覆盖信息,其中所述覆盖信息包括并发对象标识、测试线程标识和时间戳中的一个或多个;
5、根据所述每个测试线程中的多个并发操作各自对应的覆盖信息,按预设规则对所述初始调度信息进行调整,得到第一调整调度信息,其中所述第一调整调度信息用于限定至少两个测试测试线程中的至少两个第二并发操作的执行顺序;
6、将所述第一调整调度信息添加到所述调度信息种子库中。
7、第二方面,本公开实施例提供一种信息处理装置,包括:
8、获取模块,用于从调度信息种子库中获取被测程序对应的初始调度信息,其中所述被测程序包括多个测试线程,每个测试线程用于执行多个并发操作,所述初始调度信息用于限定至少两个测试线程中的至少两个第一并发操作的执行顺序;
9、检测模块,用于对于每个测试线程,根据所述初始调度信息执行所述每个测试线程中的多个并发操作,对所述每个测试线程中的并发漏洞进行检测,并记录所述每个测试线程中的多个并发操作各自对应的覆盖信息,其中所述覆盖信息包括并发对象标识、测试线程标识和时间戳中的一个或多个;
10、调整模块,用于根据所述每个测试线程中的多个并发操作各自对应的覆盖信息,按预设规则对所述初始调度信息进行调整,得到第一调整调度信息,其中所述第一调整调度信息用于限定至少两个测试测试线程中的至少两个第二并发操作的执行顺序;
11、处理模块,用于将所述第一调整调度信息添加到所述调度信息种子库中。
12、第三方面,本公开实施例提供一种电子设备,包括:
13、处理器,以及与所述处理器通信连接的存储器;
14、所述存储器存储计算机执行指令;
15、所述处理器执行所述存储器存储的计算机执行指令,以实现如上第一方面所述的信息处理方法。
16、第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面所述的信息处理方法。
17、第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面所述的信息处理方法。
18、本实施例提供的信息处理方法、装置、设备及存储介质,该方法包括:从调度信息种子库中获取被测程序对应的初始调度信息,其中被测程序包括多个测试线程,每个测试线程用于执行多个并发操作,初始调度信息用于限定至少两个测试线程中的至少两个第一并发操作的执行顺序;对于每个测试线程,根据初始调度信息执行每个测试线程中的多个并发操作,对每个测试线程中的并发漏洞进行检测,并记录每个测试线程中的多个并发操作各自对应的覆盖信息,其中覆盖信息包括并发对象标识、测试线程标识和时间戳中的一个或多个;根据每个测试线程中的多个并发操作各自对应的覆盖信息,按预设规则对初始调度信息进行调整,得到第一调整调度信息,其中第一调整调度信息用于限定至少两个测试测试线程中的至少两个第二并发操作的执行顺序;将第一调整调度信息添加到调度信息种子库中。在本申请实施例中,由于根据并发操作的覆盖信息,对初始调度信息进行调整,得到多个调整后的调度信息,从而丰富了调度信息种子库中的调度信息的数量,这样,可以对程序中更多的并发操作进行测试,从而覆盖程序中的更多的并发操作交错情况,因此提高了并发漏洞检测的准确性。
1.一种信息处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述每个测试线程中的多个并发操作各自对应的覆盖信息,按预设规则对所述初始调度信息进行调整,得到第一调整调度信息,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据每个第一并发操作对应的第一并发操作组合和/或每个第一并发操作对应的第二并发操作组合,按预设规则对所述初始调度信息进行调整,得到第一调整调度信息,包括:
4.根据权利要求1所述的方法,其特征在于,所述被测程序中还包括位于所述并发操作之前的第一桩函数;其中所述第一桩函数用于根据所述初始调度信息限定并发操作的执行顺序;
5.根据权利要求4所述的方法,其特征在于,所述被测程序中还包括位于所述并发操作之后的第二桩函数;其中所述第二桩函数用于将所述并发操作从执行顺序中删除;
6.根据权利要求4所述的方法,其特征在于,所述对于每个测试线程,根据所述初始调度信息执行所述每个测试线程中的多个并发操作,对所述每个测试线程中的并发漏洞进行检测之前,还包括:
7.根据权利要求1所述的方法,其特征在于,所述被测程序还包括并发问题测试模块,其中所述并发问题测试模块内包括单元测试函数和并发问题检测函数;
8.根据权利要求7所述的方法,其特征在于,所述对所述每个测试线程中的并发漏洞进行检测之前,还包括:
9.根据权利要求1至8任一项所述的方法,其特征在于,其中将所述第一调整调度信息添加到所述调度信息种子库中之后,还包括:
10.一种信息处理装置,其特征在于,包括:
11.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至9任一项所述的信息处理方法。
13.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现如权利要求1至9任一项所述的信息处理方法。