代码测试方法、装置和电子设备与流程

摘要: 本公开涉及人工智能,尤其是涉及一种代码测试方法、装置和电子设备。背景技术:1、在大型网络游戏的持续运营过程中,代码热更新已成为快速响应玩家需求和修复线上问题的重...
代码测试方法、装置和电子设备与流程

本公开涉及人工智能,尤其是涉及一种代码测试方法、装置和电子设备。

背景技术:

1、在大型网络游戏的持续运营过程中,代码热更新已成为快速响应玩家需求和修复线上问题的重要手段。然而,由于游戏业务逻辑复杂、协议交互频繁、配置数据多变,热更代码常因边界条件考虑不周、空值访问、时序不一致等问题导致客户端崩溃或功能异常,进而引发紧急回滚和二次热更,严重影响用户体验并增加研发成本。现有代码测试方法主要依赖人工编写单元测试或集成测试用例,难以覆盖真实运行环境中的各类边界条件和异常场景,且测试用例编写成本高、维护难度大。

技术实现思路

1、有鉴于此,本公开的目的在于提供一种代码测试方法、装置和电子设备,以提升代码测试和代码热更效率。

2、第一方面,本公开实施例提供了一种代码测试方法,该方法包括:对测试代码进行代码分析,并根据分析结果获取测试测试代码所需的目标数据;向多个第一智能体发送攻击分析任务,以使多个第一智能体基于目标数据对测试代码并行进行多视角的攻击分析,得到每个第一智能体输出的潜在漏洞表;其中,不同第一智能体进行不同视角的攻击分析;潜在漏洞表用于指示测试代码可能存在的漏洞和漏洞特征;对多个潜在漏洞表指示的漏洞进行评分,得到多个漏洞分别对应的评分结果,根据评分结果从多个漏洞中确定目标漏洞;向第二智能体发送脚本生成与执行任务,以使第二智能体生成目标漏洞对应的攻击脚本,并建立与游戏客户端的连接,向游戏客户端发送攻击脚本并监听攻击脚本在游戏客户端的执行状态,如果监听到游戏客户端在执行过程中崩溃或者超时,确定并返回测试代码存在目标漏洞;其中,攻击脚本用于复现测试代码潜在的目标漏洞;根据目标漏洞的漏洞信息生成防御代码,并将防御代码插入测试代码中,生成更新后的测试代码;验证更新后的测试代码,得到验证结果。

3、第二方面,本公开实施例还提供一种代码测试装置,该装置包括:数据获取模块,用于对测试代码进行代码分析,并根据分析结果获取测试测试代码所需的目标数据;攻击分析模块,用于向多个第一智能体发送攻击分析任务,以使多个第一智能体基于目标数据对测试代码并行进行多视角的攻击分析,得到每个第一智能体输出的潜在漏洞表;其中,不同第一智能体进行不同视角的攻击分析;潜在漏洞表用于指示测试代码可能存在的漏洞和漏洞特征;评分模块,用于对多个潜在漏洞表指示的漏洞进行评分,得到多个漏洞分别对应的评分结果,根据评分结果从多个漏洞中确定目标漏洞;攻击执行模块,用于向第二智能体发送脚本生成与执行任务,以使第二智能体生成目标漏洞对应的攻击脚本,并建立与游戏客户端的连接,向游戏客户端发送攻击脚本并监听攻击脚本在游戏客户端的执行状态,如果监听到游戏客户端在执行过程中崩溃或者超时,确定并返回测试代码存在目标漏洞;其中,攻击脚本用于复现测试代码潜在的目标漏洞;防御设计模块,用于根据目标漏洞的漏洞信息生成防御代码,并将防御代码插入测试代码中,生成更新后的测试代码;验证更新后的测试代码,得到验证结果。

4、第三方面,本公开提供了一种电子设备,该电子设备包括处理器和存储器,该存储器存储有能够被处理器执行的机器可执行指令,该处理器执行机器可执行指令以实现上述代码测试方法。

5、第四方面,本公开提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述代码测试方法。

6、本公开实施例带来了以下有益效果:

7、本公开提供的一种代码测试方法、装置和电子设备,首先对测试代码进行代码分析,并根据分析结果获取测试测试代码所需的目标数据;进而向多个第一智能体发送攻击分析任务,以使多个第一智能体基于目标数据对测试代码并行进行多视角的攻击分析,得到每个第一智能体输出的潜在漏洞表;其中,不同第一智能体进行不同视角的攻击分析,潜在漏洞表用于指示测试代码可能存在的漏洞和漏洞特征;对多个潜在漏洞表指示的漏洞进行评分,得到多个漏洞分别对应的评分结果,根据评分结果从多个漏洞中确定目标漏洞;向第二智能体发送脚本生成与执行任务,以使第二智能体生成目标漏洞对应的攻击脚本,并建立与游戏客户端的连接,向游戏客户端发送攻击脚本并监听攻击脚本在游戏客户端的执行状态,如果监听到游戏客户端在执行过程中崩溃或者超时,确定并返回测试代码存在目标漏洞;其中,攻击脚本用于复现测试代码潜在的目标漏洞;根据目标漏洞的漏洞信息生成防御代码,并将防御代码插入测试代码中,生成更新后的测试代码;验证更新后的测试代码,得到验证结果。该方式中,通过多个第一智能体对测试代码进行不同角度的攻击分析,提升了漏洞检测精准度和覆盖率,另外,该方式提供了完整的自动化测试流程,提升了代码测试和热更效率。

8、本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

9、为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

1.一种代码测试方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述对测试代码进行代码分析,并根据分析结果获取测试所述测试代码所需的目标数据的步骤,包括:

3.根据权利要求2所述的方法,其特征在于,所述攻击模式库中包括多种攻击模式;所述多种攻击模式通过下述方式确定:

4.根据权利要求2所述的方法,其特征在于,所述多个第一智能体基于所述目标数据对所述测试代码并行进行多视角的攻击分析,得到每个所述第一智能体输出的潜在漏洞表的步骤,包括:

5.根据权利要求4所述的方法,其特征在于,所述根据所述第一智能体对应的攻击分析视角,从所述目标数据中获取所述第一智能体所需的分析数据的步骤,包括:

6.根据权利要求1所述的方法,其特征在于,所述对多个所述潜在漏洞表指示的漏洞进行评分,得到多个漏洞分别对应的评分结果,根据所述评分结果从所述多个漏洞中确定目标漏洞的步骤,包括:

7.根据权利要求6所述的方法,其特征在于,所述基于所述多个漏洞分别对应的评分值,从所述多个漏洞中确定目标漏洞的步骤,包括:

8.根据权利要求7所述的方法,其特征在于,所述根据所述第一智能体行使的否决权和所述多个漏洞分别对应的评分值,重新计算所述多个漏洞分别对应的评分值的步骤,包括:

9.根据权利要求1所述的方法,其特征在于,所述第二智能体生成所述目标漏洞对应的攻击脚本,并建立与游戏客户端的连接,向所述游戏客户端发送所述攻击脚本并监听所述攻击脚本在所述游戏客户端的执行状态,如果监听到所述游戏客户端在执行过程中崩溃或者超时,确定并返回所述测试代码存在所述目标漏洞的步骤,包括:

10.根据权利要求1或9所述的方法,其特征在于,在确定并返回所述测试代码存在所述目标漏洞的步骤之后,所述方法还包括:

11.根据权利要求1所述的方法,其特征在于,所述根据所述目标漏洞的漏洞信息生成防御代码的步骤,包括:

12.根据权利要求11所述的方法,其特征在于,所述将所述防御代码插入所述测试代码中,生成更新后的测试代码的步骤,包括:

13.根据权利要求12所述的方法,其特征在于,所述方法还包括:

14.根据权利要求1所述的方法,其特征在于,所述验证所述更新后的测试代码,得到验证结果的步骤,包括:

15.根据权利要求14所述的方法,其特征在于,所述攻击重放验证包括:

16.根据权利要求14所述的方法,其特征在于,所述正常功能验证包括:

17.根据权利要求1所述的方法,其特征在于,所述方法还包括:

18.一种代码测试装置,其特征在于,所述装置包括:

19.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1-17任一项所述的代码测试方法。

20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使所述处理器实现权利要求1-17任一项所述的代码测试方法。