目录
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)目前自动化测试用例维护成本极高且维护人员缺乏维护“兴趣”;
2)现有自动化数据生成方案,数据质量和量级难以均衡保障;
3)公司内部测试提效平台繁多,缺乏核心部件测试数据,没有测试数据就无法很好的接入使用各类提效平台。
例子:根据天气情况预测是否可以打球
数据集:机器学习使用的数据集合被称为“数据集”
样本:数据集中的每一个数据
特征:像气象信息中的天气、温度、湿度这些数据
标签:“是否可以打球”就是机器学习根据当天数据做的一个概括性结论
模型:获得基于天气特征来判断是否适合打球的“理论依据”
学习/训练:从数据集中“学得”模型的过程
训练数据集:训练中使用的数据集
测试数据集:有了模型后需要评估模型的好坏和准确性,将模型应用到另一批有标签的数据上,通过训练的出结果,这批带标签的数据集就是测试数据集
1)通过平台可以产出基于最小集合且符合目标覆盖率的接口测试数据;
2)产出数据支持多样化存储、调用;
3)结合流量回放机制,补充完善自动化接口测试用例;
4)引入机器学习方法,尝试在测试提效中落地;
5)全面用于接口冒烟测试、回归测试。
平台整体开发可分三个阶段进行:http接口自动生成开发、RPC接口自动生成开发、接口录制功能开发。
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标准库等。
- 可以调用第三方执行模块,传入已构建的请求数据,如:现有自动化测试平台。