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

news2024/11/19 3:47:47

作者:京东零售 周雪梅

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

一、背景

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/517107.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Access、Foxpro、Foxbase,2023年找到完美代替,有Excel基础即可

你还记得上世纪80年代的Foxbase和Foxpro吗? 数据库软件作为基础软件是计算机系统稳定运行的基石。 像Foxbase和Foxpro,很多计算机专业的前辈都应该听说过,当时的风靡程度一点也不亚于现在的微软office。 FoxPro和Foxbase是诞生于1984年。具…

玩机搞机-----安卓全机型 ADB FAST 各种指令解析说明与操作【二】基础联机

安卓全机型 玩机 搞机 ADB FAST 各种指令解析说明与操作_adb线刷命令_安卓机器的博客-CSDN博客 今天对上个帖子不足的地方进行补正。方便友友进行基础的联机操作,很多时候我们用adb指令的时候会有各种奇奇怪怪的问题。例如同一个机型,同一个指令。有时候…

使用svg在元素直接绘制连线箭头

注意&#xff1a;svg的图形绘制的点位置坐标是基于画布的位置坐标&#xff0c;相当于从左上角的点为起点。 先来个简单示例&#xff1a; 在点与点之间绘制连线箭头 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…

cookie、session、token的区别是什么

前言 今天就来说说session、cookie、token这三者之间的关系&#xff01;最近这仨玩意搞得头有点大&#x1f923; 1.为什么会有它们三个&#xff1f; 我们都知道 HTTP 协议是无状态的&#xff0c;所谓的无状态就是客户端每次想要与服务端通信&#xff0c;都必须重新与服务端链接…

JUC并发编程18 | AQS分析

尚硅谷&#xff08;140-155&#xff09; 18 AQS 前置知识 公平锁和非公平锁可重入锁自旋思想LockSupport双向链表设计模式——模块设计 18.1 AQS入门级别理论知识 AQS一般指的是 AbstractQueuedSynchronized AQS 是用来实现锁或者其他同步器组件的公共基础部分的抽象实现…

【企业信息化】第3集 世界排名第一的免费开源ERP: Odoo 16 POS终端管理系统

文章目录 前言一、概览二、硬件三、使用功能 前言 世界排名第一的免费开源ERP: Odoo 16 POS终端管理系统。几分钟内完成设置&#xff0c;几秒内完成销售。 一、概览 Odoo POS 基于智能界面&#xff0c;任何零售公司均可毫不费力地使用 因为其极具灵活性&#xff0c;您可配置 …

普通的项目非分布式项目中的技术点思考(学习随记)

学习路线 在学习Java的路程中&#xff0c;最开始学习JavaSe&#xff0c;在Java基础学完后&#xff0c;开始接触JavaWeb&#xff0c;开始接触框架&#xff0c;Spring框架&#xff0c;SpringBoot框架、数据库框架、在学习一下中间件&#xff0c;就可以完成工作中crud的基础操作&…

聚观早报|谷歌:全新大模型赋能「全家桶」;阿里巴巴取消CTO职位

今日要闻&#xff1a;谷歌 I/O&#xff1a;全新大模型赋能「全家桶」&#xff1b;阿里巴巴取消CTO职位&#xff1b;马斯克打造「美国微信」&#xff1b;奔驰将召回部分进口CLA汽车&#xff1b;奔驰将召回部分进口CLA汽车 谷歌 I/O&#xff1a;全新大模型赋能「全家桶」 北京时…

大模型也内卷,Vicuna训练及推理指南,效果碾压斯坦福羊驼

2023开年以来&#xff0c;大模型进入疯狂内卷状态&#xff0c;大模型的发布都要以“天”为单位进行迭代。 之前&#xff0c;尝试了从0到1复现斯坦福羊驼&#xff08;Stanford Alpaca 7B&#xff09; &#xff0c;下面我们来尝试从0到1复现Vicuna训练及推理。 Vicuna简介 继斯坦…

AOP深度学习

代理模式 静态代理&#xff1a;静态代理确实实现了解耦&#xff0c;但是由于代码都写死了&#xff0c;完全不具备任何的灵活性。就拿日志功能来说&#xff0c;将来其他地方也需要附加日志&#xff0c;那还得再声明更多个静态代理类&#xff0c;那就产生了大量重复的代码&#…

wps js宏编辑器案例2-单元格读写-随机选人

本案例讲述某企业的一个真实案例&#xff0c;该企业每周二早上有安全宣贯会议&#xff0c;差不多10来分钟左右&#xff0c;每次安全会上人事部门都会点名&#xff0c;那么问题来了&#xff0c;点名的名单哪儿来&#xff1f;为此&#xff0c;编写了一个简单js宏应用&#xff0c;…

易基因:DNA甲基化和转录组分析揭示野生草莓干旱胁迫分子调控机制|植物抗逆

大家好&#xff0c;这里专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 干旱胁迫是对农业生产产生不利影响的关键环境因素。为此&#xff0c;植物发展出各种响应机制&#xff08;干旱逃逸、避免、耐受和回复&#xff09;&#xff0c;以通过进化增强抗旱性&#…

2022年下半年软件设计师下午试题

试题四&#xff08;共15分&#xff09; 排序是将一组无序的数据元素调整为非递减顺序的数据序列的过程&#xff0c;堆排序是一种常用的排序算法。用顺序存储结构存储堆中元素。非递减堆排序的步骤是&#xff1a; (1)将含n个元素的待排序数列构造成一个初始大顶堆&#xff0c;…

种棉12载的他,为何最终选择千耘导航?

边休息边种地&#xff0c;每天还能提升近四十亩作业量&#xff0c;是怎么做到的&#xff1f; 种地十二三年&#xff0c;为何最终选择了千耘农机导航&#xff1f; 千耘导航使用前后的工作状态究竟相差了多少&#xff1f; 让我们走进新疆阿克苏&#xff0c;听一听任师傅的“种…

【WebGIS实例】(8)MapboxGL绘制闪烁的点

官网示例&#xff1a; Add an animated icon to the map | Mapbox GL JS 实现 示例数据 const sampleData {"type": "FeatureCollection","features": [{"type": "Feature","properties": {},"geometry&q…

5G干扰排查优化方案介绍!

干扰成因 干扰源的发射信号&#xff08;阻塞信号、加性噪声信号&#xff09;从天线口被放大发射出来后&#xff0c;经过了空间损耗L&#xff0c;最后进入被干扰接收机。如果空间隔离不够的话&#xff0c;进入被干扰接收机的干扰信号强度够大&#xff0c;将会使接收机信噪比恶化…

【教程】安装VSCode-Server

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 前景提要 jupyter虽然好用&#xff0c;但他只能运行ipynb文件&#xff0c;对于py文件还是只能通过命令行来运行&#xff0c;不是很方便。 因此&#xff0c;通过安装vscode来运行py文件。而vscode-server支持像jup…

Centos-7安装步骤教程

提示&#xff1a; 鼠标移动到虚拟机内部单击或者按下Ctrl G&#xff0c;鼠标即可移入到虚拟机中&#xff0c;按下Ctrl Alt&#xff0c;鼠标即可移出虚拟机 目录 一、虚拟机的创建 1、创建新的虚拟机 2、选择典型&#xff0c;也可以自定义 3、安装程序光盘映像文件&#x…

618大促即将来临,速卖通、Lazada等平台如何快速提高排名和转化率?

速卖通每年三大促&#xff0c;328、618、双11。618马上就要来临&#xff0c;卖家朋友们都准备好了吗&#xff1f;今天陈哥就和大家聊聊怎么快速提高产品转化率。转化率是卖家在分析复盘时非常关键的因素&#xff0c;转化率的高低直接影响着卖家目前的关键词listing或者商品描述…

4.5 队列实现及其应用(上)

目录 顺序队列 创建空队列&#xff1a; 判断队列空&#xff1a; 入队&#xff1a; 队列 队列是限制在两端进行插入操作和删除操作的线性表 允许进行存入操作的一端称为“队尾” 允许进行删除操作的一端称为“队头” 当线性表中没有元素时&#xff0c;称为“空队” 特点 &am…