写点什么

大数据应用的测试发展之路(一)

  • 2020-04-27
  • 本文字数:2256 字

    阅读完需:约 7 分钟

大数据应用的测试发展之路(一)

从 IT(Information Technology)到互联网和移动互联网,再到数据技术 DT(Data Technology)时代,技术在不断地演进,从单机硬盘升级为当下主流的云+端模式的“新技术”。随着最近几年数据计算力与机器智能算法的兴起,基于大数据 AI 算法的应用愈来愈热,大数据应用在各个行业也不断涌现。测试技术作为工程技术的一部分,也随着时代的不断变化在同步演进,在当下 DT 时代,如何测试和保障一个基于大数据的应用的软件质量,成为测试界的一个难题。本文通过系统性地介绍阿里巴巴 AI 中台的技术质量体系-即搜索推荐广告应用的质量是如何测试的,来尝试回答一下这个问题。文章最后,也对这个方向的未来做了一些展望和预测。希望能给大家带来一些借鉴,也欢迎斧正,以便帮助我们改进。


随着移动互联网和智能设备的兴起,越来越多的数据被沉淀到各大公司的应用平台之上,这些包含大量用户特征和行为日志的海量数据被存储起来,先经过统计分析与特征样本提取,然后再经过训练就会产出相应的业务算法模型,这些模型就像智能的机器人,它可以精准地识别和预测用户的行为和意图。如果把数据作为一种资源的话,互联网公司与传统公司有着本质的不同,它不是资源的消耗者,而是资源的生产者,在平台运营的过程中不停地创造出新的数据资源,并且随着平台的使用时长和频率的增加,这些资源也在指数级地增长。平台通过使用这些数据和模型,又反过来带来更好的用户体验和商业价值。2016 年,AlphaGo,一个基于深度神经网络的围棋人工智能程序,第一次战胜围棋世界冠军李世石。这个由谷歌(Google)旗下 DeepMind 公司开发的算法模型,背后使用的数据正是人类棋手所有的历史棋谱数据。


阿里的搜索、推荐和广告也是非常典型的大数据应用的场景(高维稀疏业务场景),在谈如何测试之前我们需要先了解一下平台处理数据的工程技术背景。搜索推荐广告系统在工程架构和数据处理流程上比较相近,一般分为离线系统和在线系统两部分,见图 1(在线广告系统一般性架构,刘鹏《计算广告》)。离线系统负责数据处理与算法模型的建模与训练,而在线系统主要用以处理用户的实时请求。在线系统会使用离线系统训练产出的模型,用以实时的在线预测,例如预估点击率。用户在访问手机淘宝或者其他 app 的时候会产生大量的行为数据,包括用户的浏览、搜索、点击、购买、评价、停留时长等,加上商家商品维度的各类数据(广告还需要增加广告主维度的数据),这些数据经过采集过滤处理之后再经过特征提取之后生成了模型所需的样本数据,样本数据在机器学习训练平台上经过离线训练之后就可以产生用以在线服务的各类算法模型(例如深度兴趣演化网络 DIEN、Tree-based Deep Model、大规模图表示学习、基于分类兴趣的动态相似用户向量召回模型、等等)。在线系统中最主要的功能是数据的检索和在线预测服务,一般使用信息检索的相关技术。搜索推荐广告系统在使用了上述维度的大数据,经过深度学习之后,成为一个千人千面的个性化系统。对于不同的用户请求,每次展现的商品和推荐的自然结果和商业结果都不尽相同,即便是同一个用户在不同的时刻得到的结果也会随着用户的实时行为的不同而改变,这些背后都是数据和算法模型的魔力。



图 1 在线广告系统一般性架构图


在思考搜索推荐广告系统是如何测试的之前,我们首先要定义问题域,即要解决的测试问题是什么,我们的思路从以下几个方向展开。


1)功能性测试与验证。除了正常的请求与响应的检查之外,大数据的“大”,主要体现在数据的完整性或丰富性。一个搜索推荐引擎的好坏很大程度上取决于其内容是否足够丰富,召回是否足够多样。另外,算法带来搜索推荐结果的不确性,也给我们的测试验证工作造成了麻烦。所以,数据的完整性和不确定性校验也是功能测试的要点。


2)数据更新的实时性如何测试。众所周知,搜索或者广告的在线计算引擎,其内部的数据在不停地发生更新,例如商家在商品信息上的变更,广告主在创意甚至投放计划上的变化等等。这些更新需要实时反馈在投放引擎,否则会出现信息不一致甚至错误。如何测试和验证这些变更的及时性,即保证一定的并发带宽又保证更新链路的响应时间,这是需要测试重点关注的一个问题。


3)数据请求响应的及时性如何测试。在线服务都要求低延迟,每次 query 服务端需要在几十毫秒内给出响应结果,而整个服务端的拓扑会有大概 30 多个不同模块构成。如何测试后端服务的性能和容量就变得至关重要。


4)算法的效果如何验证。搜索推荐甚至广告的返回结果需要与用户的需求和兴趣匹配,这样才会保证更高的点击率与成交转化,但如何验证这种需求与结果的相关性,或者如何测试一个算法的效果,这是一个非常有趣且有挑战的话题。


5)AI 算法系统的线上稳定性如何保证。线下发布之前的测试是对代码的测试验收,并随着缺陷的发现与修复,提升的是代码质量。而线上的稳定性运营是为了提升系统运行的稳定性,解决的问题是:即便是一个代码质量一般的系统,如何通过技术运维的方法来提升系统的高可用性与鲁棒性,并降低线上故障的频次与影响,这一部分也被称为线上技术风险领域。


6)工程效率方向,这是对以上几个部分的补充,甚至是对整个工程研发体系在效率上的补充。质量与效率是一对孪生兄弟,也是同一个硬币的两面,如何平衡好两者之间的关系是一个难题,质量优先还是效率优先,不同的产品发展阶段有不同的侧重点。我们的工程效率,力在解决 DevOps 研发工具链路,用以提升研发的工程生产力。


以上就是大数据应用在测试领域的六大问题,可能有些问题已经超出了传统测试与质量的范畴,但这正是大数据应用带给我们的独特质量挑战。


2020-04-27 15:312378

评论

发布
暂无评论
发现更多内容

PoseiSwap  参赛,参与斯坦福、Nautilus等联合主办的 Hackathon 活动

鳄鱼视界

AIGC背后的技术分析 | 机器学习背后的微分入门

TiAmo

机器学习 AIGC

极光笔记 | EngageLab Push的多时区解决方案

极光JIGUANG

运营 消息推送 笔记分享 海外

CMake vs Makefile: 如何选择适合你的项目构建工具

小万哥

Linux 程序员 C/C++ 后端开发 cmake

Vue3 修改项目名称及相关信息

Andy

不止缓存!Redis这16种妙用你可能没见识过……

Java你猿哥

redis 缓存 分布式 消息队列 全局唯一ID

公司来了一个腾讯做优化的大佬,三下五除二让我程序快了200%

做梦都在改BUG

Java 性能优化 JVM 性能调优

数字化转型应该如何去做?(敏捷思维篇)

数字随行

数字化转型

设计模式之订阅发布模式

越长大越悲伤

设计模式 发布订阅模式 spring boot3 订阅发布

世界顶级级架构师编写2580页DDD领域驱动设计笔记,属实有牌面

Java你猿哥

Java 领域驱动设计 DDD crud 领域驱动

Zebec生态进展迅速,频被BitFlow、Matryx DAO等蹭热度碰瓷

鳄鱼视界

C语言编程—作用域规则

梦笔生花

关于斐波那契数列的笔记

贝湖光

PoseiSwap 参赛,参与斯坦福、Nautilus等联合主办的 Hackathon 活动

BlockChain先知

Github星标88.8k,阿里新产的Spring Cloud进阶小册!面面俱到

Java你猿哥

Java 架构 微服务 微服务架构 Spring Cloud

京东首席系统架构师教你如何搭建高可用高并发系统架构

做梦都在改BUG

Java 高可用 系统架构 高并发

Auto-GPT 迈向智能体的第一步——从信息增强和上下文理解开始

Zilliz

Milvus 向量数据库 autogpt gptcache zillizcloud

PoseiSwap  参赛,参与斯坦福、Nautilus Chain等联合主办的 Hackathon 活动

股市老人

Django笔记三十七之多数据库操作(补充版)

Hunter熊

Python django 多数据库

PoseiSwap 参赛,参与斯坦福、Nautilus等联合主办的 Hackathon 活动

西柚子

线程是如何通讯的?

Java你猿哥

Java 线程 多线程 ssm 通讯

聊聊技术变现这件事

老张

斜杠青年 技术变现 技术咨询

神册!出自阿里P8的深入理解Java虚拟机最新版,让我涨薪60%

Java你猿哥

Java JVM 虚拟机 并发 代码优化

Go 语言 map 是并发安全的吗?

AlwaysBeta

Go 面试 map

Go 语言 map 如何顺序读取?

AlwaysBeta

Go 面试 map

mac端摄影师青睐软件:ON1 Photo RAW 2023.5 中文激活版

真大的脸盆

Mac Mac 软件 图像编辑 编辑图像 照片编辑

2023-05-26:golang关于垃圾回收和析构函数的选择题,多数人会选错。

福大大架构师每日一题

golang 福大大

改变开发的未来 | 探索无服务器与人工智能的协同效应

亚马逊云科技 (Amazon Web Services)

Serverless

MySQL 正确使用带有横线“-”SQL语句

Andy

SpringBoot 整合 MyBatis 组合 Redis 作为数据源缓存

Java你猿哥

Java redis Spring Boot mybatis ssm

大数据应用的测试发展之路(一)_软件工程_公直_InfoQ精选文章