以数据思维和技能提升数据应用测试实践

数据,思维,技能,提升,应用,测试,实践 · 浏览次数 : 182

小编点评

**作者:京东零售 周雪梅** **背景** * 主要承接黄金眼和商智中的供应链模块:PC(品牌版:商家端,运营端)和M端。 **测试策略测试策略** **1. 模型数据模型数据的测试** * 模型数据模型数据的测试前提是了解到数据安全和数据时效(特别是deadline时间)。 * 策略主要包括探测、功能测试、监控。 **2. 后台测试** * 后台测试的测试范围主要集中在功能(指标维度的准确性)、性能和安全。 * 功能(指标维度的准确性)采用手工和自动化回归的方式进行。 * 自动化是依托九数和deeptest平台建设的,流水线的方式自动生成deeptest支持的用例进行回归测试。 **3. 前台测试** * 前台测试主要聚焦在数据的输入输出和其他。 * 1)前台输入测试,现状是采用手工+录制识别的方式验证请求入参是否准确。 * 2)前台输出测试范围主要包括页面样式展示、数据映射等。 * 3)其他是指页面兼容性和资源权限等。 **4. 数据技改测试** * 数据技改测试方案是新表和老表数据对比结果是否一致,采用的方式有两种: * hivesql的join * 差集为空 **5. 后台技改测试** * 后台技改测试方案是新老应用的接口数据是否一致,采用的方式是接口测试。

正文

作者:京东零售 周雪梅

以数据思维和技能提高测试覆盖率和效率。数据应用测试,功能测试主要聚焦在数据流向(输入和输出)。

一、背景

数据质量组当前主要承接黄金眼和商智中的供应链模块,商智包括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中,里面包含了数据、后台和前台三个模块。

与以数据思维和技能提升数据应用测试实践相似的内容:

以数据思维和技能提升数据应用测试实践

以数据思维和技能提高测试覆盖率和效率。数据应用测试,功能测试主要聚焦在数据流向(输入和输出)。

实时数仓构建:Flink+OLAP查询的一些实践与思考

以Flink为主的计算引擎配合OLAP查询分析引擎组合进而构建实时数仓**,其技术方案的选择是我们在技术选型过程中最常见的问题之一。也是很多公司和业务支持过程中会实实在在遇到的问题。 很多人一提起实时数仓,就直接大谈特谈Hudi,Flink的流批一体等,但实际上,**实时数仓包括任何架构体系的构建如...

弹性伸缩:高可用架构利器(架构+算法+思维)

1 介绍 云计算资源弹性伸缩是一种根据业务需求动态调整计算资源规模的技术。它可以根据系统的性能指标(如CPU使用率、内存占用率、磁盘IO、网卡读写率、请求响应时间等)或者预定义的规则(如时间周期、业务事件等),自动增加或减少计算资源的数量,以满足业务负载的变化。这种技术可以确保系统在高峰时期拥有足够

突破自我认知的壁垒

从之前非常迷茫到现在慢慢变清晰,其实我发现很多时候看似难以逾越的问题下要突破自我认知的壁垒,需要你有打破了重建的自我革命精神!你所看到的世界并不一定是真实的世界,都是在自我认知固化和以你的生活为蓝本的大数据编织的信息茧房中,就如同黑客帝国中的Matix一样,现实迷茫的时候你必须要突破自己的理解误区。

设计模式:代理模式详解

需求场景 按着惯例,还是以一个应用场景作为代理模式的切入点。现在有一个订单系统,要求是:一旦订单被创建,只有订单的创建人才可以修改订单中的数据,其他人则不能修改。 基本实现思路 按着最直白的思路,就是查询数据库中订单的创建人和当前Session中的登录账号ID是否一致。 class Order {

[转帖]精华总结:10个问题理解 Linux epoll

epoll 是 linux 特有的一个 I/O 事件通知机制。很久以来对 epoll 如何能够高效处理数以百万记的文件描述符很有兴趣。近期学习、研究了 epoll 源码,在这个过程中关于 epoll 数据结构和作者的实现思路产生出不少疑惑,在此总结为了 10 个问题并逐个加以解答和分析。 本文基于的

Python从0到1丨图像增强及运算:形态学开运算、闭运算和梯度运算

摘要:本文主要介绍图像形态学处理,详细讲解了图像开运算、闭运算和梯度运算。数学形态学是一种应用于图像处理和模式识别领域的新方法,其基本思想是用具有一定形态的结构元素去量度和提取图像中对应形状以达到对图像分析和识别目的。 本文分享自华为云社区《[Python从零到壹] 四十八.图像增强及运算篇之形态学

带头节点的单链表的思路及代码实现

带头节点的单链表的思路及代码实现(JAVA) 一、什么是的单链表 ①标准定义 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) +指针(指示后继元素存储位置,元素就是存储数据的存储单元,指针就是连接每

SpringBoot 过滤器更改 Request body ,并实现数据解密

客户端、服务端网络通信,为了安全,会对报文数据进行加解密操作。 在SpringBoot项目中,最好使用参考AOP思想,加解密与Controller业务逻辑解耦,互不影响。 以解密为例:需要在request请求到达Controller之前进行拦截,获取请求body中的密文并对其进行解密,然后把解密后的

袋鼠云出品!数栈UI 5.0全新体验升级,设计背后的故事

我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。 前言 数栈作为云原⽣⼀站式⼤数据开发平台,从2016年发布第⼀个版本开始,数栈就始终坚持着以技术为 核⼼、安全为底线、提效为⽬标、中台为战略的思想,坚定不移地⾛国产化信