测试用例生成方法、装置、电子设备及存储介质与流程

摘要: 本技术涉及人工智能,应用于金融科技领域和健康医疗领域,尤其涉及一种测试用例生成方法、装置、电子设备及存储介质。背景技术:1、相关技术中,通过测试用例验证软件是否...
测试用例生成方法、装置、电子设备及存储介质与流程

本技术涉及人工智能,应用于金融科技领域和健康医疗领域,尤其涉及一种测试用例生成方法、装置、电子设备及存储介质。

背景技术:

1、相关技术中,通过测试用例验证软件是否按照预期功能运行,以确保软件的质量和可靠性。以金融科技场景为例,金融交易系统需要处理海量金融交易,可利用模拟并发交易的测试用例对金融交易系统进行压力测试,验证金融交易系统对并发交易事件的处理能力。以健康医疗场景为例,患者诊疗数据属于隐私数据,可利用模拟越权访问的测试用例对医疗业务系统进行安全性测试,验证医疗业务系统的权限鉴权与访问拦截能力。

2、传统方法主要基于预定义的测试脚本或简单功能规约生成测试用例,缺乏对业务场景的深度理解,导致生成的测试用例往往与实际业务逻辑脱节,难以验证软件在真实应用环境中的行为符合性。因此,如何提高测试用例生成的准确性,成为了亟待解决的问题。

技术实现思路

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、根据所述用例评估数据对所述目标测试用例进行更新。

40、为实现上述目的,本技术实施例的第二方面提出了一种测试用例生成装置,所述装置包括:

41、获取模块,用于获取被测系统的源代码和测试需求文本;

42、代码分析模块,用于对所述源代码进行代码分析,得到测试对象、所述测试对象的对象属性以及所述测试对象之间的对象依赖关系,并根据所述测试对象、所述对象属性和所述对象依赖关系构建所述被测系统的测试场景图谱;

43、提取模块,用于从所述测试需求文本提取测试场景和测试约束条件;

44、查询模块,用于根据所述测试场景和所述测试约束条件对所述测试场景图谱进行图谱查询,得到测试路径;

45、评估模块,用于将所述测试路径拆分为至少两个业务状态节点,从预设操作空间选取所述业务状态节点的业务操作,并通过强化学习网络对所述业务操作进行操作评估,得到操作评估数据;

46、筛选模块,用于根据所述操作评估数据对所述业务操作进行筛选,得到所述业务状态节点的目标操作;

47、拼接模块,用于对每个所述业务状态节点的目标操作进行拼接,得到目标测试用例。

48、为实现上述目的,本技术实施例的第三方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。

49、为实现上述目的,本技术实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。

50、本技术实施例提出的测试用例生成方法、测试用例生成装置、电子设备及计算机可读存储介质,获取被测系统的源代码和测试需求文本,以根据源代码确定被测系统的底层运行逻辑,根据测试需求文本确定测试需求。被测系统的程序逻辑封装在源代码内,为准确理解代码逻辑,对源代码进行代码分析,得到测试对象、测试对象的对象属性以及测试对象之间的对象依赖关系,并根据测试对象、对象属性和对象依赖关系构建被测系统的测试场景图谱。为生成贴合真实业务场景的测试用例,从测试需求文本提取测试场景和测试约束条件,根据测试场景和测试约束条件对测试场景图谱进行图谱查询,以完整挖掘所有代码执行路径和数据依赖,得到测试路径。为提升测试用例覆盖率,引入强化学习技术主动探索新路径,并对测试路径进行优化。基于强化学习技术将测试路径拆分为至少两个业务状态节点,从预设操作空间选取业务状态节点的业务操作,并通过强化学习网络对业务操作进行操作评估,得到操作评估数据,根据操作评估数据对业务操作进行筛选,得到业务状态节点的目标操作,对每个业务状态节点的目标操作进行拼接,得到贴合真实业务场景的目标测试用例,从而提高了测试用例生成的准确性。