基于接口契约图谱的跨接口一致性测试数据合成方法、系统、计算机设备和存储介质与流程

摘要: 本技术实施例涉及计算机,尤其涉及一种基于接口契约图谱的跨接口一致性测试数据合成方法、系统、计算机设备和存储介质。背景技术:1、在现代微服务架构和企业级分布式系统...
基于接口契约图谱的跨接口一致性测试数据合成方法、系统、计算机设备和存储介质与流程

本技术实施例涉及计算机,尤其涉及一种基于接口契约图谱的跨接口一致性测试数据合成方法、系统、计算机设备和存储介质。

背景技术:

1、在现代微服务架构和企业级分布式系统中,应用程序编程接口(api,applicationprogramming interface)间的数据一致性保障是测试领域的核心挑战之一;一个典型的业务流程往往横跨多个微服务的多个api接口,每个接口都有复杂的输入约束和输出契约。

2、传统的测试数据准备方法,测试人员手工构造接口测试数据时,需要逐一查阅api文档,理解每个参数的含义和约束,然后凭经验和直觉构造请求体。一条中等复杂度的接口测试用例的数据构造平均需要15至30分钟;人工倾向于使用最容易想到的正常值组合,难以系统覆盖边界值、异常值和组合边界场景;接口的测试数据往往是独立构造的,上游接口的输出数据格式可能与下游接口期望的输入格式不匹配,导致测试失败的原因是数据不一致而非真正的功能缺陷。

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、测试数据集组装与导出模块,用于将所述求解后数据按用户选择的格式组装输出,得到完整测试数据集。

40、本技术实施例又一方面提供了一种计算机设备,包括至少一个连接的处理器和存储器,其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行上述各方面所述的方法。

41、本技术实施例又一方面提供了一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

42、本技术实施例又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

43、相较于传统技术,本技术实施例的技术方案,通过契约图谱建模和双向约束传播,保障了跨接口数据的一致性;无需测试人员逐一思考数据边界,实现了边界值和异常场景的系统化,整体上提升了测试数据的合成效率和质量。