系统整容纪:责任链设计模式的应用实战(爆灯了,研发工期由45天降为1天)

京东云开发者
• 阅读 301

引言

22年校招入职京东后,我一直在数据中台测试部从事测试开发的工作。毕业后,写的最多的文档是测试计划和测试报告,鲜有机会就自己的成长码字进行回顾和总结。借“up技术人”栏目,也终于是在工作之余回头望,对自己这近两年时光进行一个小总结。

本文是一个大数据测试小白初入职场后的成长总结,有新人入职的迷茫,也有点滴积累后的经验之谈。希望此文能够对正在迷茫的新人朋友以及对大数据测试有兴趣的同学有些帮助。

1.初入职场:站在迷茫的十字路口

我在本科和硕士阶段的专业都是计算机科学与技术,研究生时期的研究方向是网络嵌入,虽有过短暂的实习经历,但也是偏向业务测试,可以说对大数据是知之甚少。leader 只对我说:“刚开始不会很正常,在学校大概率接触不到这些,都是一点一点入门的,没关系,慢慢来。”

刚开始接触工作,只能说是一个“看不懂”。

大数据领域有很多的专有名词和英文缩写,“集群”、“队列”、“RSS”、“NN”、“DN”、“NS”等等,面对这些陌生的概念,我实在有点慌,于是我选择了最“学生”的办法--看书。

不可否认看书是有用的,但是效率太低了,而且在实际工作中,大数据存算引擎的改造很多是自研而且具有一定实际背景的,依靠专业书并不能切实地帮助我们开展测试工作。

比起专业书,团队文档和大胆提问才是我们初入职场的出路。

团队文档不仅记录了历史的需求测试记录,帮助我们了解产品背景,而且通过善用搜索功能,我们也能很快地理解陌生的名词和概念,提高沟通效率。其中,产研测团队有一些自命名的微服务和小工具,若不是通过团队搜索,或直接询问,我们可能需要花费大量不必要的精力去了解。所以一定要主动些,多问多沟通,才能更快的融入团体开展工作。

现在回头看,还是很想念“新人期”的。每天你不找 mentor,mentor也会找你问问“今天有啥问题吗”,再简单的问题也会耐心地为你解答。此外,新人月报、部门1v1沟通都是很好的机会,借着“初生牛犊”的身份,有任何疑惑和建议都可以直接和 leader 沟通。虽然那段时光有困难有挑战,但正是因为那段时间的点滴积累让我逐步走上大数据测试领域的职业道路。

2.进阶之路:打怪升级要一步步来

2.1 第一步:提交大数据计算任务

相较于传统软件测试,大数据测试的核心在于验证数据分析处理的准确性和可靠性,确保大数据系统能够高效、稳定地处理海量数据。大数据测试存在一定的门槛,要求我们不仅要具备基本的软件测试技能,还需熟悉大数据平台的使用。所以,迈出的第一步不妨是在大数据平台上提交一个计算任务

说来简单,其实准备工作有很多:

1.通过大数据平台考试:考试提供了一定的培训课程能够作为平台入门指引,能够很好地帮助我们对大数据平台有一个整体的初步认识

2.申请权限:包括数据权限,以及对数据进行操作的账号权限

3.新建一个大数据任务:权限申请通过后,可使用账号进行读数据的操作,这就是一个简单的大数据任务

至此,从用户视角已成功提交了一个任务,而对于大数据平台和作为测试人员对你来说要做的工作还有许多。

2.2 第二步:点亮大数据产品地图

从提交一个大数据任务的过程中不难看出,大数据平台提供的服务众多,不仅包括直接面向用户的数据权限管理、账号管理、流程中心等,还有任务提交后任务计算有关的计算引擎、调度引擎、存储等。

前期跟进需求时,总是会有层出不穷的问题。

“任务找不到计算环境?”

“读表怎么没权限?”

“表的元数据在哪里看?”

......

测试主体服务只有一个,但涉及到的相关服务有许多,需要了解的背景知识最初可能都不知道去哪里查、怎么查。大数据存算引擎的需求来源往往是研发,类型往往是技术改造,虽然改造的仅是数据处理长链路中的某一环节,但测试场景的梳理离不开对全链路的熟悉。 若连大数据平台的基础服务及其功能特性都不清楚的话,是无法完成质量保障工作的。

除了日常需求中的积累,我们也需主动去探索大数据平台。作为一名大数据测试开发工程师,探索和点亮自己的大数据产品地图是我们的必修课。 大数据平台的产品离不开数据和对数据处理的任务,不如从这两点出发思考这个问题。



系统整容纪:责任链设计模式的应用实战(爆灯了,研发工期由45天降为1天)



熟悉大数据平台的各服务是作为大数据测试的基本要求,借此我们能够更好地帮助产研团队进行风险评估。此外,大数据平台本身面向用户提供大一系列的数据管理工具也能成为我们工作的助力。例如元数据查询,比之自己写脚本去看表的相关信息,直接在平台上就能便捷查询到表的结构、访问、存储等详细信息。

2.3 第三步:走进大促备战工作

大促活动通常会引发流量的显著增长和数据处理需求的激增。为保障大促活动期间服务的稳定运行,大数据平台会有一些关键的备战措施,例如压测、应急演练、应急预案等。

我刚入职第一次经历双十一备战时,当时主负责的是一个新的大数据服务,所以其大促备战方案许多是从零开始的挑战。由于缺乏经验,我也体验了第一次在京东的跨夜加班。

核心时段不能压

现有的压力测试工具虽然能够支持接口级别的压力测试,但如何安排压测时间、确定压测时长和流量大小、以及压测数据的来源等问题仍然存在。由于缺乏经验前期准备时间较长,最终一直到封板日当天才开始实操。且准备开始操作的我并不知道核心时段的问题,还是经研发同学提醒当前时段有风险才及时停止了动作。压测环境通常无法完全独立于线上环境,更何况我们是一次操作新服务的压测,因此必须避免在核心时段进行压测。

读接口也会产生脏数据

在梳理压测接口时,我们区分读接口和写接口的目的是为了更好地理解和控制压测过程中可能产生的数据一致性问题。但这也会对我们产生一定的误导:由于压测接口被标识为读接口,且压测数据是独立构造的,我们没有考虑到该接口可能包含审计相关的写操作。直到压测快接近结束时,我们接到下游服务的告警电话,通知我们的压测对他们的服务产生了影响,这才意识到该读接口也会产生脏数据。

应急预案不能只有预案没有动作

应急预案是对线上问题的一种应急手段,其操作存在一定的风险。我记得在预案评审阶段,由于涉及高危操作,我们原本打算在预发环境中申请资源进行演练操作。然而,ldr 提出了一个关键的问题:如果在备战期间都不进行实际操作,大促期间真遇到问题了怎么办?他强调,只有尽早发现并解决问题,才能确保线上服务的稳定。

至今,我已经参与了三次大促的备战工作,明显感受到了大促备战方案和执行流程的日益成熟。即便在这样的背景下,我们仍然需要严格遵循备战方案,确保关键操作步骤与产品研发团队协调一致,并且提前公告相关信息,以保证上下游服务和平台用户能够预判风险。

此外,基于公司现有的平台,大促备战正逐步转变为常态化工作,备战任务已经逐渐机制化和自动化,形成了可靠的解决方案。这一系列的线上服务保障措施,不仅能够为大促提供坚实的支持,还能够对每次服务上线进行风险评估,确保问题能够被及时发现并更早解决。

3.能力回顾:给新手的几点建议

对大数据测试有兴趣的同学,以下四点是值得关注的准备方向:

1.掌握大数据基础:熟悉如Hadoop、Spark等大数据处理框架的核心概念及其在实际场景中的应用

2.编程与脚本技能:精通至少一种编程语言(例如Java或Python),并熟练运用基本的Shell命令

3.测试专业能力:具备扎实的软件测试基础知识,了解基本的质量保障手段

4.学习与解决问题的能力:拥有快速学习新技术的能力,并能以问题解决为导向,高效分析并简化复杂问题

ps. 这几点非常像招聘要求,所以大家也可以多多关注有兴趣的岗位的招聘信息,从岗位需求出发培养自己的专业能力~

4.未来在握:风起云涌的技术浪潮

在不断涌现的各种新兴应用中,应用层的测试工具和质量保障方法正在经历一个成熟和进步的过程。随着众多应用的实践检验,一个新 APP 和 Web 应用在上市前所需的基准测试,以及上线、监控和应急自愈等手段已经变得日益标准化和系统化。然而,与应用层的测试相比,大数据相关产品的测试则更加依赖于个人的专业能力,并且通常需要更高的专业门槛。因此,大数据测试的覆盖率往往低于应用层的测试。这就为我们提供了许多潜在的探索机会。

1.功能测试 -> 质量保障:测试工作已逐渐从功能测试向质量保障的方向转变。这要求测试工作不仅要关注产品本身,还要涵盖全平台的质量和稳定性。没有接触这份工作之前,我们可能会用“点点点”来描述测试的工作内容,但在质量保障的大环境下,测试工作还包括效能工具建设、安全合规保障、流程规范制定等多个维度。

2.技术效能:测试开发工程师的主要职责之一是维护和完善效能工具。对于大数据平台来说,虽然自动化测试工具至关重要,但数据生成、全程监控等环节目前也仍主要依赖人工操作。如何将这些环节自动化,是我们面临的一项挑战。

每年都有像我一样的 JD star 加入京东,加入数据中台,也许你能比我多些大数据相关的知识储备,也许你也像我一样从零开始,但我相信这里不会让你失望。不管是遇到难关,还是想要大展拳脚,都有团队站在你的身边为你助力,都有前辈们高瞻远瞩地为你指路。我们在京东等你。

点赞
收藏
评论区
推荐文章
浅梦一笑 浅梦一笑
3年前
2021软件开发专业的前景怎么样?是否还热门!
2021年的高考今天结束了,不少的家长和高三考生开始关注大学专业和规划以后从事的工作岗位。毕竟一旦高考分数揭晓,留给家长和考生谋划志愿的时间就不多了,所以早作规划,未雨绸缪是非常必要的。今天小编想跟网友们交流一下对软件开发的一些想法,供所有想从事软件开发工作的毕业生、职场人士,想进行软件开发的企业、个人进行参考。2021高考毕业后,从事软件开发工作到底还有没
Stella981 Stella981
3年前
GopherChina大会嘉宾
嘉宾简介吴小伟:花名一啸,阿里巴巴技术专家,2010年加入阿里,目前在阿里云CDN事业部,从事CDN智能流量调度系统相关的研发工作;在阿里,从事过中间件、高性能服务器(Web服务器、DNS服务器等)、大数据等相关技术产品的开发;当前主要采用C和Go语言进行开发工作。大会主题《Go在阿里云CDN中的应用》主题摘要:阿里云CDN对
Stella981 Stella981
3年前
App研发录读后总结(三)
 第三部分主要讲述了项目进度的控制,日常工作中的问题解决、无线团队的组建与管理。3.1团队结构是平行模式好,还是垂直模式好    垂直模式就是按照模块,拆分出若干小的团队,每个团队有自己的android、ios、api、测试组成,这种模式的好处是沟通效率比较高,app开发人员发现接口有问题,可以直接坐到api开发人员旁边进行联调,测试人发
新支点小玉 新支点小玉
1年前
软件测试报告具体包含哪些内容?
一、什么是测试报告?测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。二、测试执行和结束的准则1.测试执行的结束原因1)测试达到预期目的后,按计划结束2)受时间进度、资源的
京东云开发者 京东云开发者
7个月前
大数据小白的测试成长之路
引言22年校招入职京东后,我一直在数据中台测试部从事测试开发的工作。毕业后,写的最多的文档是测试计划和测试报告,鲜有机会就自己的成长码字进行回顾和总结。借“up技术人”栏目,也终于是在工作之余回头望,对自己这近两年时光进行一个小总结。本文是一个大数据测试小
京东云开发者 京东云开发者
7个月前
站在岸上学不会游泳 | 算法校招生的高效成长总结
在这个由数据编织、由算法驱动的时代,AI大模型正成为推动社会进步的重要力量。我们不仅是变革的见证者,更是推动者和塑造者。感谢零售UP技术人栏目的邀请,本文借此机会回顾一下自己的算法之路上的一些故事和思考,希望能带给读者一些帮助。介绍自己我是2020届校招生
京东云开发者 京东云开发者
5个月前
从校招新星到前端技术专家的成长之路
引言我在2018年校招进入京东,主要负责广告投放系统的前端工作。在京东,这一路走来,我经历了多种角色转换,我从学生到职场人,从校招生到校招导师,从初级前端开发到前端技术专家,也见证了京东广告业务的蓬勃发展。回顾过去的成长历程,我心中充满了感慨。首先,我要衷
京东云开发者 京东云开发者
3个月前
【我在京东做产研】校招 2 年,个人角度(成长)回顾 - 行且知
2022.6月毕业,然后入职于JD京东保险技术平台部,岗位后端开发工程师,至今已两年回顾毕业后的工作历程(文章会以现实时间为顺序来进行回顾),有很多大佬的帮助和指点。因此,想将自己的思考也分享给后来的同学们文章从个人角度(成长)出发,回顾工作点滴。会尽可能
API 小达人 API 小达人
1年前
【接口自动化测试】Eolink Apikit 如何生成与导出接口文档?
在API研发管理产品中,几乎所有的协作工作都是围绕着API文档进行的。采用文档驱动的协作模式会比先开发、后维护文档的方式更好,团队协作效率和产品质量都能得到提高。基于文档来进行工作,使用文档驱动方式可以降低大量无意义的沟通成本。创建了API文档之后,可以随时查看API的改动情况、根据API文档发起API测试、编写API测试用例、使用MockAPI等。在EolinkApikit系统中管理的API文档,可以详细的看到API的描述信息、变更历史、测试用例、MockAPI等内容。
00后如何组织双十一大促看这一篇就够了! | 京东云技术团队
引言大家好,我是王蒙恩,一名“整顿职场”的00后。作为一名去年刚刚加入京东的校招生,我有幸成为本次CDP平台的11.11备战负责人。虽然早在实习的时候就经历过大促,但是真正组织整个部门的备战还是很难忘的。于是提起笔,给自己做一个大促总结,记录下11.11大