AI赋能自动化测试:智能接口自动化测试数据生成平台设计思路

旦莫 2024-06-28 13:01:01 阅读 84

目录

1.背景

2.名词解释

3.设计目标

4.设计思路及折衷

4.1阶段性任务

4.2方案选型

4.2.1 设计方案选型

4.2.1.1 原始数据获取模块

4.2.1.2 数据构造模块

4.2.1.3 预执行模块

4.2.1.4 覆盖率反馈调整模块

4.2.1.5 预测模型

4.2.2 技术选型

5.系统设计

5.1 项目架构

5.2 流程图

​编辑

5.3 模块详细设计

5.3.1 原始数据获取模块

5.3.2 数据构造模块

5.3.3 预执行模块

5.3.4 覆盖率反馈调整

5.3.5 预测模型

5.3.5.1 定义问题

5.3.5.2 数据处理

5.3.5.3 训练模型

5.3.5.4 部署上线


1.背景


1)目前自动化测试用例维护成本极高且维护人员缺乏维护“兴趣”;

2)现有自动化数据生成方案,数据质量和量级难以均衡保障;

3)公司内部测试提效平台繁多,缺乏核心部件测试数据,没有测试数据就无法很好的接入使用各类提效平台。

2.名词解释


例子:根据天气情况预测是否可以打球

数据集:机器学习使用的数据集合被称为“数据集”

样本:数据集中的每一个数据

特征:像气象信息中的天气、温度、湿度这些数据

标签:“是否可以打球”就是机器学习根据当天数据做的一个概括性结论

模型:获得基于天气特征来判断是否适合打球的“理论依据”

学习/训练:从数据集中“学得”模型的过程

训练数据集:训练中使用的数据集

测试数据集:有了模型后需要评估模型的好坏和准确性,将模型应用到另一批有标签的数据上,通过训练的出结果,这批带标签的数据集就是测试数据集

3.设计目标


1)通过平台可以产出基于最小集合且符合目标覆盖率的接口测试数据;

2)产出数据支持多样化存储、调用;

3)结合流量回放机制,补充完善自动化接口测试用例;

4)引入机器学习方法,尝试在测试提效中落地;

5)全面用于接口冒烟测试、回归测试。

4.设计思路及折衷


4.1阶段性任务

平台整体开发可分三个阶段进行:http接口自动生成开发、RPC接口自动生成开发、接口录制功能开发。

4.2方案选型

4.2.1 设计方案选型

核心系统功能可分为:原始数据获取模块、数据构造模块、预执行模块、覆盖率反馈调整模块、预测模型。

4.2.1.1 原始数据获取模块

预选方案有三种,分别是:

通过动态获取代码变更状态,静态分析代码并识别接口数据;

基于开源接口管理平台开发平台站点,同步现有API管理平台的数据;

复用API管理平台,在原有功能基础上扩展所需功能

结论:由于方案3前后端均使用react编写,在此基础上复用学习成本高且考虑后期功能扩展不易改动所以选择方案2。

4.2.1.2 数据构造模块

平台输入(参考api管理平台)落库:

现有平台模式可以输入获取接口基本信息、参数信息、输出示例;

原有基础上增加参数值范围输入、输入示例填写、参数正确性是否强校验;

根据输入示例构建模板,利用参数值范围通过Cartesian product+Pairwise进行用例构造

4.2.1.3 预执行模块

利用内置执行模块,构建接口参数化进行请求,如:接口测试框架、http标准库等。

可以调用第三方执行模块,传入已构建的请求数据,如:现有自动化测试平台。

4.2.1.4 覆盖率反馈调整模块

提供目标覆盖率设置功能,通过预执行模块将生成的接口输入数据发送至目标系统,利用动态覆盖率统计得出实时覆盖率,对比覆盖率结果是否满足预设覆盖率目标,如果不满足则调整构造数据算法重的n元素对偶生成(2~n逐级上调),每次调整生成数据量级后随之增加,相应接口覆盖率也会增加。按照数据生成-- 请求反馈覆盖率-- 数据生成元素纬度调整形成闭环,当满足目标覆盖率后,停止元素纬度增加,即得出满足目标覆盖率的最小数据集。

4.2.1.5 预测模型

使用大量原始接口数据的输入和输出训练结果预测模型,问题:输入与输出参数较少,类型复杂且部分情况存在二义性,难以得出直接的对应关系。

在方案1基础上缩小预测目标,定位分类问题为:结果类型预测,在原始数据基础上进行



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。