写点什么

降本增效的大环境下,该不该砍掉测试工程师?| 展望测试工程师的 2023

  • 2023-01-18
    北京
  • 本文字数:5821 字

    阅读完需:约 19 分钟

降本增效的大环境下,该不该砍掉测试工程师?| 展望测试工程师的2023

提起软件测试工程师,更多人联想到的是工作轻松,不需要敲代码、工资高、涨薪快,甚至可以发展成为管理层,那么现实真的是这样吗?

 

刚刚过去的 2022 年,测试工程技术领域又有哪些重要进展?在未来的发展中又面临着哪些机遇与挑战?InfoQ 年度技术盘点与展望栏目特别邀请到了腾讯技术工程事业群,米大师计费测试负责人朱志杰,请他来和大家分享并展望测试工程师的2023年

 

朱志杰,15 年腾讯米大师计费服务端测试及团队管理经验。专注于米大师分布式计费、营销、风控、账户以及 TDSQL 数据库等产品的高一致性测试能力构建,支持公司游戏、腾讯云、广告、视频号等业务的计费测试工作;牵头构建了计费完整的质量支持体系,建设了基于服务端的自动化功能/性能测试、现网引流对比应用、环境治理等测试能力。目前聚焦于基于 DevOps 的研效改进工作。

 

视频回放地址:https://www.infoq.cn/video/z0xL4IhkjkFQiWp5eq50

 

以下内容节选自当天的分享,InfoQ 做了不改变原意的编辑:

 

InfoQ:志杰老师您好,您当时为什么会选择测试工程师这样一个职位,可以分享以下您的成长经历吗?

 

朱志杰:其实我选择从事测试岗位是具有偶然性的。 我在大学期间主要学习.NET、Java 以及 PHP 等开发,也做过 OA 类的项目,一直想从事应用开发工程师。毕业进入华为后,被内部分配到了华为智能网平台的平台测试部,也是在工作之后才发现原来测试没有想象中的基础、简单。我当时做的是在 Linux 服务器平台上进行大数据量实时处理的系统,而这之后也做过一些跨城容灾性等非常具有挑战性的项目,慢慢地就扎根在测试的行业之中了。

 

我在华为做了两年测试后,后面来到腾讯。和在华为智能网中做电信的计费测试相类似,我在腾讯也恰好是在一个做聚合支付的内部计费部门。直白点来说就是早期的 Q 币计费,是与我个人蛮契合的产品和项目。

 

我在腾讯计费团队,从最初没有 DTO 分离,与开发相捆绑,给开发做辅助的测试角色,慢慢地将自己的测试能力、测试流程化都发展了起来。随着公司的业务开展,我也参与了公司开放平台、国际化、腾讯云等产品,渐渐地在这里扎下了根。部门的项目在发展,团队也在发展,我个人收获了很多锻炼和成长。

 

InfoQ:您从事多年测试行业,是如何从普通工程师成长为资深工程师的,中间又付出了那些努力呢?

 

朱志杰:随着业务的发展,我个人得到了很多锻炼和提升的机会,逐渐获得成长。

 

同每一位刚进入职场的人一样,刚开始也面对团队缺乏测试方法论、测试能力、测试平台,以及流程规范,这时我就主动站出来推进测试的流程化、工具平台化,完善测试能力,这也是我收获的个人第一阶段成长。

 

在第二阶段中,随着腾讯的业务做大,我们迎来了开放平台、腾讯云的产品接入,以及王者荣耀等国民级游戏的出现,数据量的增长也给我们带来了非常多的挑战。开放平台的服务质量问题,以及随着王者荣耀所带来的线上最大容量支撑问题,这些涉及到线上拨测、压测等技术,促使我们在这方面能力体系上进一步打磨夯实。随着这些能力的构建和打造,我个人的技术能力在成长,测试团队也随着发展和建设起来。

 

至于第三阶段,目前我的工作重心主要在于团队的测试效率建设,随着业务服务化发展后,在研发体系上会更倡导测试能力左移、组织效率提升、DevOps的转变等新模式去契合。

 

从我个人角度来说,随着业务的发展,我们需要去解决伴随业务出现的问题,去构建测试能力,并在这过程中收获技术上的成长与经验的提升。此外,随着团队规模壮大,也拥有了自己的团队、参与公司测试通道与人才能力的培养,以及公司层面上技术的协同,这一路上持续发现有很多锻炼与发挥的机会。

 

InfoQ:在刚才提到的许多测试工程的细分方向,您平时的工作内容,或者说最具有挑战的是哪些部分呢?

 

朱志杰:我们是服务端的测试,因此会更偏向于基础架构上模块化的测试。

 

从技术层面来说,我认为要想做好这方面的测试,必须要能深刻理解架构。以高并发存储模块为例,我们需要对其架构进行评估:其数据更新应用、缓存能力的设计能否满足高并发的查询?热点是否过于集中?高并发时数据如何防重?如何进行服务降级?是否会发生内存数据错位?在分布式容灾能力下要如何保证数据的一致性?这些都需要对架构有较好的理解。

 

我们还要考虑应用场景。新老业务的版本迭代中要如何保证向前的持续兼容?团队应保证有自动化的能力覆盖。

 

此外,在业务方面,将业务从旧模块割接到新架构时,要如何做到百分百的兼容?人工测试是否会导致的场景覆盖不充分?是否会有场景遗漏?其中的数据多样性与真实性要如何考虑?一个很好的方法是借助线上场景的对比模拟来解决这些问题。

 

以上这些都是我们在模块测试中会更多考虑的方面。

 

InfoQ:我们平时提起测试岗位可能都会觉得很厉害,是需要掌握很多技术的。那么作为多年从业的老开发者,您觉得实际是如此吗?

 

朱志杰:其实在互联网行业中,测试都是蛮苦逼的。我们的定位是项目中承前启后、非常重要的助手,不仅要支撑研发交付高质量的版本及功能,同时也要协助线上运营,提前排查相关风险及问题。因此,我们的工作就是解决问题,是非常务实的。

 

InfoQ:会感觉压力很大吗?

 

朱志杰:每个岗位都有各自的压力,侧重点不一样而已。我们作为互联网服务端的测试,和一般业务测试不同。简单点点鼠标、理解测试理论、设计测试用例,这些对于我们来说都是非常基础的。

 

我们希望同事们能成为更全栈的工程师,去了解更多、更广的方面。

 

  • 业务相关能力。由于我们是基于服务端的业务,如 Linux、Docker 容器、Kubernetes、MQ 或卡夫卡消息队列等组件,这些都是我们需要掌握的服务器组件。

  • 测试开发的能力。针对 Go、C++、Python,以及 Java 等业务服务做自动化时,要根据业务的测试需要去应用,熟悉相关开发语言及其 IDE。

  • 熟悉 JMeter、CPP check 等市面上常见的测试工具,以及针对特定业务场景所需的工具,如数据库 ACID 场景的测试方法。

  • 流程管控。掌握代码库 Git 的管理、流水线,甚至是 Excel 的度量分析等技能。

 

InfoQ:在您看来,作为一名优秀的技术工程师,除了前面提及的技能掌握,还需要逻辑性、思考能力等特征吗?

 

朱志杰:我认为优秀的测试人员需要具备三个通用素质。

 

  • 沟通与思辨能力。作为开发与后端运维间承前启后的角色,测试要积极对开发运维与产品进行沟通协调。此外,也要能快速把握业务需求,明确业务需求从开发端传递的是否准确,要如何从前往后进行信息传导,抓住问题本质及需求改造点,评估其可能造成的影响。

  • 快速学习能力。无论是校招还是社招,学习能力对测试都是非常重要的。面对业务测试时要能快速熟悉架构、掌握需求,快速将复杂场景环境构建起来。如果新业务需要用到卡夫卡或 RabbitMQ 消息队列,测试人员要能快速掌握对应工具。

  • 主动性。成绩突出的人往往拥有更强的主动性。主动思考所负责项目产品的痛点,主动发现问题,找到解决问题的机会点。此外,在交付版本或业务后,要有将其中的能力或问题提炼出来,作为公共能力或公共模块的意识。

 

InfoQ:如果您面试的求职者具备了以上三点通用素质,会是加分项吗?

 

朱志杰:可以是加分项,但对技术岗位而言,测试开发能力也是很重要的加分项。

 

InfoQ:测试开发工程师要如何做好职业规划?职业的发展路径又是怎样的呢?

 

朱志杰:腾讯有设计技术与管理两个能力提升通道,我个人同绝大多数人一样是走技术通道。但如果公司没有较强的职业指引或规范化工程师培养,可先以全栈的能力做自我要求。

 

测试理论只是个非常基础的概念,我们要在此基础上深刻掌握所负责的业务。要能从开发或产品的角度掌握业务,也要从运维的角度使用业务,我们才能在评审会议上提出有价值的问题,才能发现项目潜在的问题和风险点。

 

我们也要能结合业务需求,在具体问题解决上深入掌握相关技术。在遇到问题时,不能死读书,而是要从公司内部或外界同行中寻找好的解决方案。以数据库产品为例,我们要参考并尝试完善别人在面对 ACID 或高一致性问题上的方案,研究 ACID 场景上的差别,最终用其解决了实际问题,才能算是真正掌握了一项技术。

 

从长期来看,我们个人也需要打造自己的专长。可以深入研究自动化,做服务端接口自动化、基于接口协议自动化生成、通过模型化场景生成用例,甚至可以做流量自动化,将线上流量引入测试环境中进行回放。我们也可以将自己打造为效能专家,通过全流程进行效能分析,从而推动提升效能。

 

InfoQ:工程师常常要与产品经理及同僚交流,但很多技术人实际并不擅长沟通。您是如何看待沟通能力对技术人的重要性呢?我们又要如何提升自己的沟通能力?

 

朱志杰:我在回答前面问题时,将沟通思辨放在了第一位。我认为沟通会影响很多方面:

 

  • 有效沟通可以快速把握需求,把握改动。

  • 快速准确地将所发现的问题同步给相关人员。

  • 推动问题或改进流程化需要通过沟通调用开发、PM,及相关业务人员的配合完成。

  • 有利于合作关系的维护,互利互补开发与测试的关系。

  • 个人能力的呈现。

 

好的沟通不一定需要出口成章的能力,我个人的沟通能力也不算很好,关键是要能表达清楚问题和做事的思路,这是非常值得从日常工作中锻炼和提炼的。

 

InfoQ:对于善于埋头做事、不爱表达的技术人而言,您有什么可以让人走出舒适距离的方法论吗?

 

朱志杰:这受个人性格方面的影响,自驱力很强的人会强迫自己进行表达,或许很有帮助,但对我而言却不一定要这样。在工作的小团体中,大家都非常熟悉、没有太多戒备,我们能将事情讲清楚,在向上级表达问题时有很好的呈现,就是一个很好的沟通形式了。

 

InfoQ:您认为测试开发工程师在 2023 年所面对的最大技术挑战是什么呢?

 

朱志杰:技术上可能没有什么太大的挑战。从大环境而言,近两年行业上都在关注降本增效,这对测试而言也是较大的挑战。大厂相对会看得更全面,但对中小公司或团队而言,如果测试左移、开发自测,或者产品运维自测上线,那么我们是否还需要测试呢?这个问题我觉得关键在于测试的价值与产出的呈现,在于项目对测试的依赖。

 

举例来说,项目的左移意味着开发要在较好的测试环境中进行测试,但这对开发而言是具有困难的,如果测试可以提供平台化工具、保持流程通顺,并提供验证、引流的能力,协助项目左移,那这不失为一个很好的解法。

 

测试的价值也体现在 Ops 运营类的项目中。测试可以为运营的灰度减少问题出现,提供上线后除监控外的其他测试手段快速发现问题,通过拨测、上线后压测、容量评估等手段,对 Ops 环境右移的能力给予有力支持。

 

在 2023,甚至是 2024 年,测试人员可能都要面临这一挑战,但我们也可以借此重新定位自己的价值,调整提供价值或服务能力的方向,主动适应环境。

 

InfoQ:在降本增效的大环境下,在职的测试人员也会面临就业压力。那么对于想要成为测试工程师的年轻人,您会给出什么建议或忠告呢?

 

朱志杰:持有“测试比开发简单、轻松”想法的人,所能做的测试内容是有限的,在测试中产生的价值也是有限的。我们也要将自己培养为全栈工程师,找出项目的问题所在,并随时准备为其提供解决问题的能力。

 

InfoQ:您反复强调了全栈的能力,那么除了测试工程师之外,您会建议不适合做测试开发的人,求职 PM 等岗位吗?

 

朱志杰:每个人大概都要找到合适自己的工作。我前面的建议对刚毕业,或刚刚走上测试工程师的人而言会更合适。如果你具有沟通推动,以及很好的组织协调能力,那么转职 PM 未尝不是一个好的方向。如果你对产品比较敏感,那么产品方向也是可以的。但如果你只想做业务测试,也可以走交付测试的方向。因为我个人主要关注服务端模块化测试,因此会更强调全栈的能力,要求有更高的平台化能力。

 

InfoQ:过去一年中,在事业上您比较有成就感,印象较深的有什么呢?

 

朱志杰:我做过的很多事情都是微不足道的。比较有成就感: 一是在过去大环境动荡的 2022 年中,我们团队上下二十余人整体都比较稳定,大家携手共进攻克挑战、提升效能,没有因为过多的冲击而动摇想法或信心。

 

二是我们在去年成功承担了腾讯广告计费能力下沉项目。我们通过完备的测试方案、测试引流对比、反向对比验证,完成了系统架构和计费能力的合并融合,整体构建过程没有出现故障,我认为是非常了不起的。项目历时一年半,从 2021 年下半年直到 2022 年上半年完成的主要项目进展,并在 2022 年下半年完成了收尾工作。在这一年半的时间中,大家心里的弦一直都没有放下来。

 

InfoQ:在这样的大环境中承担如此重的任务量,您是如何缓解团队紧绷的情绪呢?

 

朱志杰:我认为测试首先需要有一个很好的抗压能力,其次也要能正确地分析工作,让团队成员在面对问题时有章法,有思路。在确定方案与策略后,按照节奏推进,大家都会心里有底。


此外,我们其实负责了腾讯收入的百分之七十的虚拟计费,每分每秒都有很高的交易量,因此基于我们测试保障体系、自动化能力、引流能力、代码安全性能力,包括线上拨测与压测等比较完备的保障能力,让大家还是比较放心的,没有感到特别大的压力。


最后,我也会给团队一些宽松度,让大家能较好地劳逸结合,不会产生过多的疲惫感。不会紧盯进度,但如果成员告诉我卡进度了,去协调人力,涉及较大的方案时协助拉相关的专家一起评审,帮助给出建议。

 

InfoQ:您可以给我们推荐一些您最近在看的,比较有启发性的测试相关书籍吗?

 

朱志杰:前面提到过技术基础,那么《Linux 从入门到精通》这本我十年前看过的书还是很值得看的。此外,《谷歌软件测试之道》这本书中介绍的很多谷歌测试的思想也很值得借鉴。达里欧的《原则一》我看过,《原则二》还没看,但书中介绍的关于工作透明化、管理方式也很具有启发性。

 

InfoQ:网友提问,2023 年测试工程师要如何做职业规划?您可以说得更具体些吗?

 

朱志杰:在未来两年中,我个人会更侧重于测试支持研效的建设,通过提高测试效率帮助研发提效。不止腾讯,对业界内很多公司来说,我觉得在这个方向上都可能在做一些事情,我觉得往这个方向可以去努力一下。比如你怎么样把自动化变得更简单一些,将自动化的成本降得更低; 怎么样把一个线上的流量用起来。

 

通过用流量建设减少自动化,或者说怎么样去除了满足自己的测试需要,去帮助开发去做测试左移,开发自测,支持他在测试环境,自动化的能力,支持他一些工具化的能力,帮他把整个理顺拉通。这个也是我个人 23 年要去做的一个方向。

 

InfoQ:在 2023 年的开端,您能为测试工程师们送上一些祝福吗?

 

朱志杰:2023 年是新的一年,祝大家能在测试的工作中找到自己的成就感,找到让自己变强的方法和钥匙,也希望 2023 年测试人员们能更自信。最糟糕的时候已经过去了,未来是美好的,我们要充满憧憬。

 

2023-01-18 17:0610548
用户头像
李冬梅 加V:busulishang4668

发布了 792 篇内容, 共 365.5 次阅读, 收获喜欢 992 次。

关注

评论

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

(28DW-S8-Day28) 战略流程重整

mtfelix

28天写作

永动金融EGG公链去中心化社交平台与通证EFTalk全球正式亮相

币圈那点事

区块链

国内可用镜像站整理

弘毅

28天

ES_her0

28天写作 3月日更

Python 随机字符串

HoneyMoose

Python 随机数函数 choices

HoneyMoose

《Redis 核心技术与实战》学习笔记 04

escray

redis 学习 28天写作 3月日更 Redis 核心技术与实战

我从外包辞职了,10000小时后,走进字节跳动拿了offer

Java 编程 程序员 架构 面试

最近的一点思考「Day 28」

道伟

28天写作

有利可图的NFT,NA公链(Nirvana Chain)NAC公链怎么面对高额Gas费的?

区块链第一资讯

区块链 公链 挖矿

TCP 三次握手与四次挥手

insight

TCP 3月日更

基于SpringCloud,支持安卓、IOS、包含前后端等等完整网约车项目

Java架构追梦

Java 架构 面试 SpringCloud 网约车项目

linux下七种文件类型

xiezhr

Linux linux操作 linux运维 linux 文件权限控制

Python 分通道读取图像数据,取经之路第 4 天

梦想橡皮擦

28天写作 3月日更

你是否觉得上级的能力不如你?

石云升

心理学 28天写作 职场经验 管理经验 3月日更

Hadoop UI 系统 -HUE 详细剖析

大数据技术指南

大数据 hadoop 28天写作 3月日更

我们为什么需要云原生?

脑极体

翻译:《实用的Python编程》07_00_Overview

codists

Python

Wireshark数据包分析学习笔记Day16

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

C/C++Linux服务器开发完整学习路线(含免费学习资料下载地址)

Linux服务器开发

Linux 后端 C/C++ Linux服务器开发 Linux后台开发

Go语言学习笔记:数组

worry

数组 Go 语言

源码分析-Netty: 架构剖析

程序员架构进阶

架构 Netty 源码剖析 28天写作 3月日更

多队列网卡简介

依旧廖凯

28天写作 3月日更

翻译:《实用的Python编程》07_01_Variable_arguments

codists

Python

老板要我开发一个简单的工作流引擎

Java小咖秀

架构 工作流 开发 工作流调度 工作流引擎

你真的懂Spring解决循环依赖吗?

Java 架构 Spring Boot

我是如何拿到5大银行offer

小舰

面试 银行 笔试 校园招聘

并发编程:一次搞定单例模式

Java架构师迁哥

面试现场:遇到不会回答的问题,如何力挽狂澜 ?

xcbeyond

面试 3月日更

思考需要大声,写下便是永恒——未完待续

Justin

总结 28天写作

2020年张小龙非公开课的一点思考

lenka

3月日更

降本增效的大环境下,该不该砍掉测试工程师?| 展望测试工程师的2023_文化 & 方法_李冬梅_InfoQ精选文章