乐趣区

关于测试:以数据思维和技能提升数据应用测试实践-京东云技术团队

作者:京东批发 周雪梅

以数据思维和技能进步测试覆盖率和效率。数据利用测试,功能测试次要聚焦在数据流向(输出和输入)。

一、背景

数据品质组以后次要承接黄金眼和商智中的供应链模块,商智包含 PC(品牌版: 商家端,经营端)和 M 端。各模块的产品特色和测试范畴和策略的通用模式如下图所示,图中灰色局部是待建设中。

从图中可见,产品的数据流向次要包含业务数据、模型数据、后盾利用、前台利用四个模块,更细一点数据流向包含以下几步

  • 利用离线(T+1)和实时(大促控制台当日和实时库存)数据加工到 app 层表中,而后推到 ck 中;
  • 用户在前台操作确定查问条件后查问,前台会将该查问申请到后盾,后盾解析出指标维度,查问 ck 后同步指标后果给前台,而后给用户展现。

二、测试策略

测试策略,首先聚焦在从 0 到 1 的测试场景,前面会针对一些非凡场景进行独自的介绍。

1、模型数据

模型数据的测试前提是理解到数据安全和数据时效(特地是 deadline 工夫),策略次要包含探测、功能测试、监控。

  • 探测次要采纳自动化的形式,按模式校验输入 html 的报告。以后实现了分区连续性探测、NULL 占比、统计变量、枚举字段的散布三种模式,后续打算加上环比,以及蕴含部门、金额、数量等供应链波及的关键字的非凡校验;
  • 1)分区连续性探测辨认:分区总数、完结和开始工夫的天数差距去辨认分区类型,来判断分区是否间断
  • 2)最近三个 dt 的总数环比(环比差距 0.1 会主动标红)
  • 3)最近三个 dt 的 NULL 占比和环比(NULL 环比差距 0.1 会主动标红)
  • 4) 最近三个 dt 的统计值状况
  • 功能测试次要采纳手工和自动化的形式,自动化次要是针对通用的数据属性测试,手工次要是针对业务属性和非通用数据属性的测试。
  • 监控待建设,后续的打算是把探测和功能测试积淀的自动化积淀为工作进行频次监控

2、后盾测试

后盾测试的测试范畴次要集中在性能(指标维度的准确性)、性能和平安。

  • 性能(指标维度的准确性),采纳手工和自动化回归的形式进行。自动化是依靠九数和 deeptest 平台建设的,流水线的形式主动生成 deeptest 反对的用例进行回归测试。将来布局是晋升接口验证的覆盖率和适应场景。
  • 平安,把平安的测试点建设到后盾的功能测试中,权限内可查非权限内不可查。
  • 性能

3、前台测试

前台测试聚焦在数据的输入输出和其余。输出指前台的申请入参是否精确;输入是指前台款式展现和数据取值(即后盾接口返回的 key 和前台展现的映射关系)。其余是指页面兼容性和资源权限等。

1)前台输出测试,现状是采纳手工 + 录制辨认的形式验证申请入参是否精确。录制辨认的形式采纳 chrome 插件 MeterSphere JMX Recorder 录制前台申请并导出为 jmx 文件,录制的形式倡议每次扭转一个查问条件触发后盾查问。对导出的 jmx 文件进行辨认转换为 df,利用窗口函数去验证这一申请和上一次申请的不同之处是否只有 1 处。上面两图别离为文件解析后的 df 对象和检测入参变动的后果(rank 非 1 的变动数大于等于 2 就须要细化查看是否有问题,其中变动项 change\_value,变动数 change\_n,申请的程序 rank),执行命令 #python test\_web\_input.py jmx 文件(autotest-data/ 公共 / 前端)

2)前台输入测试范畴次要包含页面款式展现、数据映射等。以后在继续建设用例模板。

  • 款式展现次要是文本和数值的展现款式,次要采纳人工验证积淀冀望后果,而后自动化回归,采纳的 cypress(反对接口 mock)可视化的测试。以后的建设是梳理包含的数据款式的模式,通过 mock 的形式疾速返回款式下的多场景,如下图可见,接口为输出项,抉择接口中包含的款式范畴,输入须要多少种测试场景能笼罩所有的款式场景。
  • 数据映射是后盾接口中数据和前台展现数据的映射关系正确,次要采纳人工验证积淀冀望后果,而后自动化回归,采纳的 cypress 可视化的测试。

3)前台的其它测试,兼容和权限

  • 兼容是浏览器或者手机版本的兼容性测试;
  • 权限包含菜单和数据权限

4、技改

数据利用的技改指数值未变,架构降级。

4.1 数据技改

测试计划是新表和老表数据比照后果是否统一,采纳的形式有两种,1)hivesql 的 join;2)差集为空

4.2 后盾技改

测试计划是新老利用的接口数据是否统一,采纳的形式是接口测试。抉择入参列表,循环遍历新老接口,对接口返回转换为 df,df 比照是否统一

三、测试积淀

自动化积淀到中 coding 中,外面蕴含了数据、后盾和前台三个模块。

退出移动版