背景 &痛点

随着生态体系扩展和业务发展,数据在业务中承担的决策场景越来越多样化,一部分数据已应用在资损、高客诉等高风险场景,因此对数据质量的要求,尤其是高风险场景的质量要求非常之高。但在保障过程中往往面临以下痛点:

  1. 无标准化流程,管控能力较弱

  • 研发 QA 人力比高达 20:1,因此 QA 采用分级保障策略,QA 人力向高风险需求、资产变更倾斜,但是各业务对分级保障流程各有定义,且落地方式多为线下沟通人工约束,缺少标准化流程;

  • 基于需求的研发测试在风险识别、提测内容、QA 测试等环节依赖人工判断和互相通知,有高风险需求遗漏出错的风险;资产的变更管控策略各有不同,复查人随意可选,且复查人判断的依据只有 CodeRview 信息,整体来看管控能力较弱。

  1. 测试过程低效,测试管理杂乱

  • 研发自测、QA 测试过程多为手动写 sql 模式,效率低下且测试过程分散,需要在等多个平台操作切换,缺乏一站式的测试工具;

  • 测试用例设计多为个人经验,分散在各个测试报告中,无统一的用例管理;各业务测试报告各有不同,大多按照研发、QA 的个人经验输出,可读性不高,缺乏统一的测试管理。

解法

方案

流程标准化

整体设计

DataLeap 开放平台支持用户自定义扩展程序能力,扩展程序可以订阅 DataLeap 侧 OpenEvent 监听用户操作、通过 OpenAPI 与 DataLeap 开放平台进行丰富的交互实现用户行为管控;还提供将 N 个扩展程序以流水线的形式编排的能力。基于此,QA 测试环节以扩展程序「摩斯数据测试」落地,并且通过流水线的能力接入:

  1. 研发测试流程

  • 使用前:人工约束,需求和资产变更的研发测试流程靠人判断、登记、通知、协同;

    使用后:全自动化的分级保障,从开发、自测、QA 测试、发布过程全自动化模式。

  1. 管控能力

  • 使用前:人工判断管控粒度;

    使用后:拓展程序自动决策管控粒度,通过对项目管理平台(meego)需求、任务的风险识别,自动判断管控分级策略,分为 QA 测试的强管控和研发自测 QA 验收的弱管控。

风险识别

「摩斯数据测试」拓展程序接入流水线可实现研发测试流程自动化和管控分级,但是对强弱管控的判断依据,如何比人工判断精准度更高?这就是接下来要思考的如何做风险识别?我们围绕「新增风险」和「存量风险」,设计以下风险识别规则:

  • 新增风险:基于 Dataops 中需求管理功能的设定,所有变更的风险都来源于项目管理平台,我们把项目管理平台信息抽象成代码可识别的规则项;

  • 存量风险:围绕「资产」从质量角度对资产分级打标、风险盘点,并把任务标签、当前风险项、历史风险等作为代码可识别的规则项,作为风险识别的依据之一。

测试平台化

架构设计

从全流程测试管理能力要求出发,我们把测试过程总结为以下几个部分:

Step 1 :测试准入,提测内容,冒烟测试

Step 2:测试过程,case 生成、单元测试,集成测试,回归测试

Step 3:测试准出,测试报告,影响面评估

Step 4:上线保障,case 转监控

基于这个过程,「摩斯数据测试平台」架构设计如下:

落地实现

「摩斯数据测试平台」1.0 版本已上线,基本实现了 QA 测试全过程的自动化能力,目前落地实现效果如下:

业务案例

背景

以 QA 团队在某直播业务中参与质量保障过程为例,QA 同学面临高风险需求多、高风险资产多、变更频次多的情况,以 2023 Q3 为例,高风险需求 55+个,高风险资产 296+个(占比 2.6%),变更次数 503+次;QA 同学面临如何保障高风险变更可管控无遗漏,同时又解决 QA 人力负载高测试成本高的问题?

应用

Step 1 :基于项目管理平台、任务的高风险标签流程落地

高风险标签流程:

  • 项目管理平台要求业务提需时明确高风险场景,规范项目管理平台标签

  • 直播任务标签,由 QA 统一推进,落地「资损」「高客诉」标签

Step 2: 协同研发,共建流水线流程

直播数仓流水线采用分级管控的策略,QA 节点对变更任务全面覆盖:

  • D1~D3 任务,调试管控,提交管控 codeCT/自测检查/ QA 测试

  • D4 D5 任务快速发布,提交管控 codeCT/QA 测试

Step 3:明确高风险规则,明确 QA 触达规则

  1. 高风险规则的自定义配置:

项目管理平台需求高风险标签

  • 命中风险标签,均走流水线 QA 测试管控

  • 未命中强管控规则,自动快速跳过

任务高风险标签

  • 发布变更管控,使用发布复查能力,QA 参与变更复查

  1. QA 触达规则:明确 QA 接口人信息

同一需求任务变更过程,包括提测、修复信息全部集成流水线、机器人触达消息到指定 QA 同学

Step 4:研发团队宣讲流程,推进落地;QA 团队落地使用,助力测试提效

  1. QA 同学在直播数仓方向多个小组宣讲,推进基于流水线能力的研发测试流程落地

  2. 直播 QA 同学的测试过程由线下转向平台,节省了编写 case、case 执行、报告编写、监控配置的人工执行过程,对测试效率提升有一定帮助

收益和规划

基于扩展程序的「摩斯数据测试」1.0 版本在 7 月初上线以来,已初步具备流程标准化、测试平台化能力;截止 8 月底平台已覆盖了 DataLeap 8 个项目空间,1334 个任务管控,QA 强管控 470 例,自动转监控 380 例,粗略统计目前已经在测试过程节省 QA 同学约 30%的人力投入。

未来将围绕平台的稳定性建设,实时数据测试的支持能力,基于通用经验、语义分析和代码契约智能生成测试场景等能力等继续推进,未来向测试智能化发展。

点击跳转 大数据研发套件DataLeap 了解更多

QA团队基于DataLeap开放平台能力的数据测试实践的更多相关文章

  1. C#开发微信门户及应用(41)--基于微信开放平台的扫码登录处理

    在现今很多网站里面,都使用了微信开放平台的扫码登录认证处理,这样做相当于把身份认证交给较为权威的第三方进行认证,在应用网站里面可以不需要存储用户的密码了.本篇介绍如何基于微信开放平台的扫码进行网站的登 ...

  2. IOS基于新浪微博开放平台微博APP

    1.基于新浪微博开放平台APP源码 2.gitHub源代码下载地址 https://github.com/whzhaochao/SinaWeiBoOpen 3.用到的第三放开源库 3.1  RTLab ...

  3. Android—基于微信开放平台v3SDK,开发微信支付填坑。

    接触微信支付之前听说过这是一个坑,,,心里已经有了准备...我以为我没准跳坑出不来了,没有想到我填上了,调用成功之后我感觉公司所有的同事都是漂亮的,隔着北京的大雾霾我仿佛看见了太阳~~~好了,装逼结束 ...

  4. 基于高德开放平台的 NODE 天气信息组件

    看看了画在手上的Armani手表,马上就快到了下班的时间了,心里总觉的空唠唠的, 好像空缺了什么一样,仔细的想了一想,微微叹了一口气,觉得是时候在这里和大家分享一下原因了........ 首先: ## ...

  5. 基于高德开放平台Map Lab的数据可视化

    在Map Lab上创建可视化项目,首先需要添加数据.添加数据有4种方式,分别是: 上传CSV文件添加数据 上传Excel文件添加数据 连接在线数据库添加数据 提供在线数据API添加数据 一.数据上传说 ...

  6. EventBridge助力阿里云视觉智能开放平台AI智能存储实践

    本文作者:李建,阿里巴巴达摩院技术专家. 01 视觉智能开放平台(VIAPI)业务场景介绍 阿里云视觉智能开放平台(简称 VIAPI),是基于之前很多技术实践经验积累的 AI 能力的沉淀平台.目前整个 ...

  7. 基于olami开放语义平台的微信小程序遥知之源码实现

    概述 实现一个智能生活信息查询的小秘书功能,支持查天气.新闻.日历.汇率.笑话.故事.百科.诗词.邮编.区号.菜谱.股票.节目预告,还支持闲聊.算24点.数学计算.单位换算.购物.搜索等功能. 使用方 ...

  8. 基于MaxCompute的媒体大数据开放平台建设

    摘要:随着自媒体的发展,传统媒体面临着巨大的压力和挑战,新华智云运用大数据和人工智能技术,致力于为媒体行业赋能.通过媒体大数据开放平台,将媒体行业全网数据汇总起来,借助平台数据处理能力和算法能力,将有 ...

  9. 基于 Node.js 平台,快速、开放、极简的 web 开发框架。

    资料地址:http://www.expressjs.com.cn/ Express 基于 Node.js 平台,快速.开放.极简的 web 开发框架. $ npm install express -- ...

  10. 容联云通讯_提供网络通话、视频通话、视频会议、云呼叫中心、IM等融合通讯能力开放平台。

    容联云通讯_提供网络通话.视频通话.视频会议.云呼叫中心.IM等融合通讯能力开放平台. undefined

随机推荐

  1. JVM是如何处理反射的

    反射实现1-调用本地方法 例: 1 // v0版本 2 import java.lang.reflect.Method; 3 4 public class Test { 5 public static ...

  2. Ubuntu部署雷池Waf社区版

    安装docker环境 更新软件包 sudo apt update 安装docker环境 apt-get install docker.io docker -v 安装docker compose V2版 ...

  3. 使用MVVM Toolkit简化WPF开发

    最近. NET 8 的 WPF 推出了 WPF File Dialog改进,这样无需再引用 Win32 命名空间就可以实现文件夹的选择与存储了,算是一个很方便的改进了.顺手写了一个小的 WPF 程序, ...

  4. 分享我对DiscuzQ这款现代化开源轻社区的二次开发成果。DiscuzQ依然是站长的最佳选择!

    简要说一下二开的功能:贴文列表样式优化.增加国内 AI 大模型功能.增加社区 AI 助手(会自动发帖和回帖).编辑器功能优化.pc 端导航优化.h5 端导航优化.修复各种加载不出来加载缓慢的问题等等细 ...

  5. 在PowerShell脚本中获取程序集文件属性的指定元数据特性的方法——AssemblyMetadataAttribute

    在PowerShell脚本中获取程序集文件属性的指定元数据特性的方法--AssemblyMetadataAttribute <# .SYNOPSIS 获取程序集文件属性的指定元数据特性 .DES ...

  6. TS版LangChain实战:基于文档的增强检索(RAG)

    LangChain LangChain是一个以 LLM (大语言模型)模型为核心的开发框架,LangChain的主要特性: 可以连接多种数据源,比如网页链接.本地PDF文件.向量数据库等 允许语言模型 ...

  7. HBuilderx 创建 、运行uniapp项目

    uni-app官网介绍的 通过 HBuilderX 可视化界面 跟着小颖来创建一个自己的小程序 创建小程序 依次点击HBuilderx 左上方的按钮:文件->新建->项目 然后打开该界面, ...

  8. .NET8极致性能优化CHRL

    前言 .NET8在.NET7的基础上进行了进一步的优化,比如CHRL(全称:CORINFO_HELP_RNGCHKFAIL)优化技术,CORINFO_HELP_RNGCHKFAIL是边界检查,在.NE ...

  9. 你真的了解HashSet 和HashMap的区别、优缺点、使用场景吗?

    HashSet 和 HashMap 是 Java 集合框架中的两个常用类,它们都用于存储和管理数据,但在使用方式.功能和性能上有很大的区别. HashSet 和 HashMap 的区别 区别一:用途不 ...

  10. freeswitch如何解决sip信令的NAT问题

    概述 freeswitch是一款简单好用的VOIP开源软交换平台. 公网环境复杂多变,客户环境更是各种稀奇古怪的问题. fs在针对sip信令的NAT问题有针对性的参数设置. 本文讨论的范围限于fs的公 ...