从应届生到测试顶会讲师,他只用了一年时间!

简介: 都说憋大招需要时间的积累,一位刚踏出校园入职阿里巴巴淘系技术质量才一年多的新同学,凭什么登上测试行业最高讲台之一的MTSC大会主会场做分享?他是怎么做到的?让我们来看看他的成长故事吧。

作者|豆豆、定源

都说憋大招需要时间的积累,一位刚踏出校园入职阿里巴巴淘系技术质量才一年多的新同学,凭什么登上测试行业最高讲台之一的MTSC大会主会场做分享?他是怎么做到的?让我们来看看他的成长故事吧。

▐ 自我介绍

大家好,我叫黄俊,阿里花名豆豆。从毕业那刻起变加入了阿里巴巴淘系技术质量团队,有幸加入到团队AI智能化测试方向的研究探索中。经过这一年多的成长,从对业务的融入、理解、思考,到质量建设上的构思、试错、突破,我受益良多。感谢于良师益友的老板指导,还有一对一师兄的辅导,更有一群志同道合的同学一起并肩作战,与善人居,如入芝兰之室,久而不闻其香,超nice的团队决定了我的现在。

对于即将毕业或者想来阿里做测试开发行业的新同学,如果你还在迷茫或者有疑问,不妨继续往下看看我的心路历程:

  • 初入职场的迷茫
  • 主动出击,找到切入点
  • 下钻深入思考
  • 聚焦并落地拿结果

▐ 初入职场,偶遇丝迷茫

还记得你的第一个测试开发场景吗?这里附上我的第一个需求&质量建设:

屏幕快照 2020-12-25 下午4.43.38.png

新人时期,我的第一个接手需求是手淘消息的搜索(如上图所示);第一次完整走完流程的需求是手淘消息的智能push,包含了评审、排期、开发、联调、提测、测试、灰度、bugfix、全量等等;第一个质量保障工具是手淘消息客户端日志的上报。

总的来说,我的新人时期,在不断学习识别业务需求的过程中,时刻洞察质量建设突破点,逐渐完成了从学生到职场的转变。不过随着业务的深入,虽然可以在相关业务上独当一面,但是如何找到测试技术和业务结合的切入点?我不禁陷入了迷茫。现在回头来看,这应该是很多测试开发的新人都会遇到的一个问题。

好在这一时期并没有太长,之后我开始多和师兄、主管、团队老同学的交流,主动走出去和不同部门的同学交流,阿里真的是一个很大的舞台,高手如林,我的眼界和思维被迅速打开,经过和师兄以及主管的反复对焦,我开始逐渐找到适合自己的场景。

▐ 主动出击,寻找点切入

在经过一段时间的适应和转变后,自身对整体消息场景已经有了一定的基础见解,对切入点的感觉开始变得懵懵懂懂,渴望着将一些新的技术融入于现有的业务场景,便踏上了寻找可以将想法落地的场景之路。

19年的春季,正值手淘消息全链路监控排查体系之际打造如火如荼之际,也是我第一次接触测试右移的道路,在和消息测试团队的师兄师姐们一起研发的同时,逐步开始沉淀通用能力,例如诸多系统间错综复杂的链路如何秒级定位能力、统一降级、统一采样等等。

随后在团队重点研究的AIOps领域,确定了多个研究方向,而其中的“智能异常检测”方向,在当时还是新兴领域,集团还没有特别好的解决方案,而异常检测本身其实是实际业务中的一项关键性需求。在Devops领域,指标监控是系统稳定性的关键,也是监控/运维平台成功的关键,成功的异常检测有助于发现异常后及时提醒用户采取相应的措施,避免更大故障的发生。

通过对国内外现状展开调研,并与达摩院同事进行了交流与合作,对智能异常检测行业现状的了解和摸底,我们的研究内容开始逐步有了线索。虽然这个任务技术挑战很大,也没有太多可以参考的先例,但是我觉得可以发挥我有算法基础喜欢技术钻研的优势,便义无反顾地ALL in到这个任务的研究探索中,并且在过程中我发现自己找到了技术和业务结合可以落地的切入点。

找到切入点并不容易,结合对阿里“六脉神剑”价值观的践行,阶段性总结一下有以下几个方面的成长:

1、经济基础决定上层建筑,业务理解决定质量建设。

2、不要怕折腾,多沟通,少情绪,有耐心。

3、Keep Learning,不为失败找借口,只为成功找方法,全力以赴拿结果。

▐ 深入思考,聚集智能化监控

在测试右移智能化的道路上,逐步找到切入点后,便开始在这个领域深入研究。如果将一个产品的上线一分为二,左移是往测试之前的开发阶段移,右移则是往上线之后移,这就要求测试开发同学需要做好指标监控。指标的监控关乎稳定性,但随着数据量的增加,加上指标的复杂周期性和模式变化的动态性,基于传统监控的阈值/同比环比的规则难以适用,而且复杂的领域知识导致为每条指标配置相应的规则费时费力,无法应用在大规模数据监控上。

在很多时候,给我的感触是,右移比左移更具有挑战性。因此,我们迫切希望传统监控向智能化监控进行转型,基于团队前期对海量系统日志数据实时计算的基础上,我通过结合百余种实时数据,尝试了20多种异常检测算法,一个全新的智能化异常检测平台呼之欲出。

然而聚焦和深入到智能异常检测方向的研究并非一帆风顺,中间经历了不少曲折克服了不少困难,比如:

场景1、在面临百余种数据类型时,当现有的业务数据跑出一个还不错的模型,而换在另外一种业务数据效果就大打折扣,如何保障这么多数据类型都有一个不错的效果?

解决思路:随着基于对业务数据的深入理解,基于团队前期对海量系统日志数据实时计算的基础上,结合百余种实时数据,尝试了20多种异常检测算,逐渐探索出对于业务数据的算法场景化能力。

场景2、当面临大量业务指标的接入,或者是一个全新场景,没有那么多时间来训练拟合该指标的模型,如何保障业务可以顺利地快速接入使用?

解决思路:提前将场景化的基础模型作为快速接入的选项,并结合无监督学习,配合完成新指标的接入使用,随后再进行逐步迭代,以适应新指标的快速接入。

场景3、当在实时检测有了一定的沉淀能力后,越来越多的业务方反馈,Holmes的报警能不能再提前一点?

解决思路:真实的业务现状使我们体会到单有检测能力是远远不够的,晚一分钟发现问题,往往也是致命的,致使我们踏上了预测的研究道路。

经过不懈的努力,智能化异常检测平台(Holmes)终于落地,并且在淘系核心战役巴拿马项目上线以及双十一大促备战的过程中发挥了作用。下面就展开简单介绍一下这个平台:

▐ 聚焦落地,福尔摩斯(Holmes)-- 淘系智能化监控平台

Holmes是一款智能化、轻量级、易接入、可扩展的异常检测平台,使用基于AI的异常检测算法,替代传统的规则监控方案。解决规则告警系统准确率低、时效性低、规则配置复杂与耗费人力等诸多问题。

特点:

  • 学习历史数据,分析当前指标曲线趋势是否异常
  • 基于以往数据,进行预测未来指标走势

优势:

  • 算法检测代替规则检测
  • 告警准确率高
  • 更早发现异常情况
  • 可适应业务发展带来的趋势变化

解决的异常场景:

屏幕快照 2020-12-25 下午4.44.45.png

MSTC大会-主会场分享

基于Holmes的落地,我和师兄董福铭(吾铭)一起在MTSC 2020大会申报了议题《手淘AIOPS实战-消息全链路智能监控》,结合Holmes平台的实战做经验分享。

介绍如何通过SDK实现应用内链路日志聚合、采样率控制、统一降级开关等功能,打通客户端到服务端链路,实现IM端到端秒级排查。通过实时计算实现消息核心指标到达率/时延的实时监控。使用AI检测算法,替代传统的规则监控方案,解决规则告警准确率低、时效性低、规则配置复杂与耗费人力等诸多问题。通过NLP进行舆情智能分类,并结合全链路数据对预警问题进行分析定位,打造全链路智能监控排查平台。

▐ Holmes异常检测平台

屏幕快照 2020-12-25 下午4.45.24.png

配置化指标接入流程

通过4步简单配置进行指标的接入和算法选择,轻松开启智能异常检测。

屏幕快照 2020-12-25 下午4.46.15.png

基本算法概览

机器学习上有一个定理,叫没有免费午餐定理(No Free Lunch,NFL),表示的是在机器学习上,不存在一种通用的最优的算法可以解决所有问题,因此在面对各类数据时,Holmes将算法场景化。

在实时检测方面,集成了无监督学习和有监督学习,主要运用了高斯分布、STL、孤立森林、XGBoost等;

在数据预测方面,集成了LSTM、Prophet、三次指数平滑等。

屏幕快照 2020-12-25 下午4.46.41.png
屏幕快照 2020-12-25 下午4.46.45.png

实践效果

目前Holmes异常检测平台已经在集团内部开放接入和运行,支持集团内常用数据源,帮助接入业务方的开发测试同学构建智能监控体系,减少繁琐的规则配置,有效提高了线上质量监控的覆盖率。今年的多次大促期间,Holmes的准确性方面也进一步得到验证,有效保障了大促的稳定性质量。

覆盖应用:淘宝、千牛、优酷、钉钉、淘宝直播、闲鱼等

接入指标:核心业务指标 300+

提前预警:有效提前预警线上问题 50+

算法调用:5000W+

展望

Holmes异常检测平台是淘系技术质量团队打造,在智能化测试领域的一次实践,未来我们希望利用AI算法实现业务全方位智能化监控和问题定位。覆盖更多的数据类型,打造通用的算法模型,同时我们也在全链路监控排查、智能舆情处理等多方面进行探索,期待后续跟大家分享。

▐ 主管点评

豆豆同学19年4月份硕士毕业后,加入阿里巴巴淘系技术质量团队,仅仅通过一年多的时间就成长为团队技术骨干之一。针对豆豆同学的特点,以及团队将19年的整体打法做了分解,将团队AIOps领域探索的智能化异常检测(智能化监控中的重要组成部分)安排给豆豆。对他有两个期望:一方面期望这个能力可以有纵深的下钻,作为整个IM消息测试中台中测试右移的主要武器之一。另一方面也期望可以横向扩展,未来逐步在阿里集团内进行推广使用。作为主管也明白这个技术探索对新人来说有一定的落地风险,当时并没有太多可以参考的先例,而且对同学的AI算法能力和工程化落地能力均有很大的挑战。这也是豆豆加入淘系技术质量团队后的第一个测试技术创新开发任务。

面对压力和挑战,我们很欣喜地发现,豆豆同学并没有被压垮。他迎难而上,查阅了大量业界和阿里集团的资料,调研开源算法、阅读论文,结合师兄吾铭的指导和消息测试团队的反复讨论,豆豆不断优化和完善技术方案,先后克服了多项技术难题。最终Holmes智能异常检测平台在手淘消息场景落地使用,为第一年阿里生涯交出一份漂亮的答卷。新财年,豆豆继续发力,不仅扩大了算法支持的场景个数、准确率,还多次提前预警线上问题,并将支持的业务系统从淘系扩大到了阿里集团多个BU,受到广泛好评。

对于豆豆来说,精彩才刚刚开始,Holmes的落地只是一个起点。今年双十一之后,一个新的保密技术创新项目又开始酝酿,豆豆同学届时又会憋一个什么样的大招?让我们拭目以待!

这里也简单展开一下,新同学除了学习基本功之外,新同学也可以在师兄和主管的引导下,逐步养成思考的好习惯。比如,如何让自己和团队产生更多的链接(多看多沟通多思考)?如何与所在团队的大方向结合(埋头干活的同时也抬头看路)?如何站在团队研究基础之上进一步构建自己的创新产品(借力)?等等,我觉得是新同学们可以思考方式上去做一些转变的。

豆豆同学只是整个淘系技术质量团队(极测)中的一位典型代表,这样优秀的新同学在我们部门还有很多。我们有非常体系化的极测新人培训课程,以及阿里非常著名的“百阿”新人培训,淘系技术质量团队(极测)会针对每一位入职的新人安排一对一的师兄指导,也会针对同学的特点设计和规划职业发展方向。在部门技术驱动的理念下,不仅会对同学的业务理解培养,同时还会在技术创新上给予同学相应的发力场景和落地辅导。结合上一对一师兄和主管在日常工作、生活中对具体的问题和项目实战中的点滴进行具体指导,相信新加入的同学们一定也会像豆豆一样快速成长!

MTSC2020中国互联网测试开发大会深圳站现场

屏幕快照 2020-12-25 下午4.47.33.png

淘系技术部-(极测)质量团队-诚招英才

屏幕快照 2020-12-25 下午4.47.51.png

我们负责所有淘系业务的质量保障。在这里:可以经历双十一等超大并发场景;可以接触到全链路压测、海量的数据处理、人工智能推荐算法等领域;可以学习到业界最前沿的测试技术、一对一指导的师兄辅导机制、定期而丰富的技术分享;还可以与层层选拔的各路优秀同学共同战斗,共同成长!我们以技术驱动,构建业界领先的质量体系。

我们的使命是让测试更简单,让研发更高效 ,让用户体验更极致。

还在等什么,快来加入我们吧!AI智能化测试新赛道,你就是下一个明日之星!邮件发送至:dingyuan.jh@alibaba-inc.com

相关文章
|
存储 测试技术
测试模型时,为什么要with torch.no_grad(),为什么要model.eval(),如何使用with torch.no_grad(),model.eval(),同时使用还是只用其中之一
在测试模型时,我们通常使用with torch.no_grad()和model.eval()这两个方法来确保模型在评估过程中的正确性和效率。
1048 0
|
17天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
52 3
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
67 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
250 7
Jmeter实现WebSocket协议的接口测试方法
|
3月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
262 3
快速上手|HTTP 接口功能自动化测试
|
3月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
49 5
|
2月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
41 0
|
4月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
5月前
|
存储
Postman 接口测试配置 Pre-request Script
Postman 接口测试配置 Pre-request Script
224 5
Postman 接口测试配置 Pre-request Script
|
4月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~