产品研发之众生相:测试工程师

产品研发之众生相:测试工程师

01

角色定义

笔者从事产品研发几十年,写代码也有几十年,在印象里面,自己写的代码几乎没有一次是写完就跑起来的,总要测试修改以后才能慢慢完善。

任何软件都需要测试。与消费级软件相比,工业软件复杂性高、对可靠性要求高,一旦出现故障,可能导致生产停滞、设备损坏甚至人员伤亡。所以,工业软件测试尤为重要。

测试工作,一部分是由研发人员完成的,还有重要的一部分,是由测试工程师专门执行的。

由于工控产品许多带有硬件,所以测试工程师又分为硬件测试工程师和软件测试工程师。

02

术业有专攻

说到测试,不得不说一下V-模型(V-Model)。V-模型是软件开发中一种将验证(Verification)和确认(Validation) 活动与开发阶段一一对应,形成 “V” 形结构的模型,强调在开发的每个阶段都进行相应的测试,保证最后产品的质量。

V-模型

单元测试:对应 “编码” 阶段,对最小的可测试单元(如函数、类)进行测试,验证其是否符合详细设计。

集成测试:对应 “架构设计” 和 “概要设计” 阶段,将已测试的单元按模块组合,测试模块间接口是否正确,验证是否符合概要设计。

系统测试:对应 “需求分析” 阶段,将软件作为整体与硬件、外设等集成,测试是否满足《需求规格说明书》中的功能、性能等需求。

验收测试:由用户或客户执行,验证软件是否符合实际业务需求,是否可交付使用(包括 α 测试:内部验收;β 测试:用户实际环境测试)。

V-模型由来已久,是早期软件开发的标准模型。后来软件开发流程演变,进入敏捷开发时代,V-模型被人诟病,最重要的原因是“反射弧“太长,从用户需求到验收测试,中间可能已经间隔大半年一年,找到的问题物是人非,如果要改需求,就必须推倒重来,或者等下一个版本,根本无法适应现代软件开发的快速迭代,快速改变适应的需求。

其实V-模型的核心思想是研发的所有阶段都需要有相应的验证,并没有规定一定要按部就班,顺序进行。

现代敏捷开发,是一种迭代式、增量式的开发方法,通过快速响应需求变化、团队协作和持续交付有价值的软件,来应对复杂多变的业务环境。敏捷开发把瀑布式的顺序开发切成许多小片瀑布,每一个小片(迭代,冲刺)都是一个小V-模型,麻雀虽小五脏俱全,包括了需求,设计,实现到单元测试,集成测试和系统测试。最后的产品是由一个一个小V-模型叠加出来的。

敏捷开发中的V-模型

测试左移(Shift-Left)

敏捷开发的测试是基于测试左移(Shift-Left)。测试左移的基本思路,是缺陷在研发的越早期被发现,修复成本越低。一个缺陷,如果是在程序员自己的单元测试被发现,它被修复可能只需要几分钟。到了集成测试,可能需要一天到几天,因为系统集成了,你首先要找到真正引起缺陷的子系统,然后再继续分析,无论是复现,分析,修复和验证,时间都要长。到了系统测试,修复缺陷可能需要几天到数周。最昂贵的是产品出厂在现场发生故障,不仅仅损失巨大,而且现场环境非常复杂,复现极为困难。

传统测试方法,功能测试会放在独立的系统测试组,大多数缺陷在研发后期阶段被发现,成本高昂。

传统测试方法

测试左移,是让测试尽量在研发前期介入,缺陷早发现,早定位,早修复。节约成本,及时响应。所以在敏捷开发时代,许多团队不仅仅做单元测试,也会执行集成测试和功能测试,保证在一个迭代中完成的产品功能基本可用。

测试左移

在敏捷开发中,单元测试往往由开发工程师自己完成,而集成测试即可以是开发工程师的工作,也可以由测试工程师完成。我们在实践中,鼓励敏捷团队所有的研发工程师,既可以写代码,也可以作测试,初衷是让团队均衡发展。有的团队这样实践了,有的团队还是分出来了研发工程师和测试工程师,分别负责单元测试和集成测试。

大型研发项目有多个团队协同开发,不同的团队有不同的测试分工并不奇怪,因为业务不同,人员的技术水平不同,每个团队都会在实践中尝试找到自己的最佳解,不可拘泥书本教条。

测试左移对硬件同样适用,甚至更加重要。和软件相比,硬件设计的修改周期更长,更加昂贵。所以测试如果能够在设计前期介入,会大大节省硬件开发的时间和成本。

敏捷开发并不等于一定是SCRUM,而是研发的一种方法和思路,对软硬件开发都适用。比如硬件在EVT阶段,研发团队就可以尝试把系统bringup带软件功能跑起来,同时做EMC,浪涌等各种测试的摸底,快速打板修改。

自动化测试

产品如何测试?早期的软件研发,一群测试工程师每天重复地使用软件产品,找到问题,通知研发,就是人工测试。现代软件开发转向自动化测试,系统通过工具、脚本或框架自动执行测试用例,验证软件功能和性能。

笔者自己认为,自动化测试的程度反映了软件开发的先进水平度。自动化测试覆盖率不高的软件,其质量通常难以保证。

在产品测试中有一个非常重要的测试叫回归测试。如果你开发了一个功能A,你只需要测试功能A。如果你继续开发了功能B,你就要测试功能A和功能B,因为你不能保证继续开发功能是不是影响了原来的功能。只要产品有变动,理论上需要把所有已经开发好的功能全部测试一遍,这就是回归测试。

刚刚开发产品的时候,功能有限,人工测试还可以应付。但是当产品开发已经迭代到几千,几万个功能的时候,没有自动化回归测试,你的产品缺陷就是按倒葫芦又起瓢,无法保证发布时候的质量。

同样,没有自动化回归测试保证,你如果对代码或者架构进行了重构,那很有可能你重构完的产品变得更不稳定。

在我们的产品研发中要求每个团队的自动化测试率要到95%,结合现代开发支持软件的流水线,代码迁入系统就会自动执行冒烟测试,每天晚上自动执行集成测试,第二天早上看测试结果就可以了。

所以,在现代软件产品研发中,测试工程师也是程序员,是要写测试代码的。

系统测试

系统测试一般会独立于产品研发。系统测试的测试基础是产品经理定义的《需求规格说明书》,将产品作为整体与硬件、外设等集成来测试是否满足功能和性能等需求。

因为测试左移,现在功能测试许多已在集成测试阶段完成,现代系统测试可以更多地关注复杂用例,性能,压力和极限条件的验证。同样,自动化测试也是标配和刚需。

测试闭环

在单元测试中被发现的缺陷,处理最简单,研发工程师自己解决就可以了。到了集成测试和系统测试阶段,缺陷需要被录入系统,流转到研发。研发首先会尝试复现,然后定位到大致负责的子系统或者模块,将缺陷转到相应的小组或者研发工程师,研发工程师分析和修复缺陷后,再转回测试,测试工程师复测通过,关闭缺陷,形成闭环。

在整个缺陷处理流程中,测试工程师的测试步骤和描述非常重要。如果描述的缺陷能够被研发快速复现,问题基本上已经解决了一半。在开发过程中,大家最害怕的就是难以复现的偶发缺陷,明明有问题,因为很难复现,无法定位和修复,缺陷就成了隐藏的定时炸弹。

03

天生我材必有用

测试工程师是产品的带刀护卫和质量保护者。二十多年前笔者刚刚做程序员,还没有敏捷开发,功能全靠系统测试验证。记得我第一次独立开发功能,当我很骄傲地报告给组长说功能完成了,组长笑着问我,“这是你说的还是测试工程师说的?”可见测试工程师在产品开发中的重要性。

优秀的测试工程师是研发的宝贵人才,因为他必须具备以下三种技能:测试技术,工业领域知识和行业标准认知。

测试技术

对硬件测试工程师来说,掌握电子电路、数字电路、模拟电路等基础知识,熟悉各类硬件测试设备的使用,比如示波器、信号发生器、万用表等,是最基本的技能。此外,还有很多特别的测试工具,比如ESD放电测试仪,电磁干扰EMC测试仪,浪涌测试仪等,硬件测试工程师都需要了解和使用。

硬件测试工程师还需要了解硬件产品的设计流程和制造工艺,能够制定合理的测试方案和测试用例。

对软件测试工程师来说,能够写自动化测试已经是马步功夫了。无论是单元测试软件,如JUnit,Google Test,或者是python脚本PyTest,还有UI自动化测试的Selenium,Playwright等,编写自动化测试用例是每天的日常。

资深测试工程师还需要能够搭建自己的测试框架,开发适配产品的自动化测试平台,技术能力要求不亚于资深研发工程师甚至是架构师。

工业领域知识

从某种意义上来说,测试工程师是代表用户试用产品。所以,测试工程师需要了解用户的业务,只有具备跨领域的技术储备,才能理解产品的底层逻辑与行业应用场景。

PLC的测试工程师,需要会写IEC61131-3的控制程序,SCADA的测试工程师,需要会组态控制画面,这是基本功。

然后就是各种运控算法,各种现场IO模块,伺服,变频配置,SCADA报警和各种数据库连接;还有各种通信协议,从工业现场总线(Modbus RTU,Profibus DP等),工业实时以太网(Profinet,EtherCAT等),到北向的各种通信协议(OPC UA,MQTT),不一而足。

到最后,测试工程师对产品的整体了解,往往比研发工程师还要透彻。

行业标准认知

每个行业都有行业的测试标准和规范,比如PLC,硬件有IEC 61131-2,编程语言有IEC 61131-3。测试工程师需要了解标准,根据标准要求开展测试工作,确保测试结果的合规性。

不同行业、不同国家和地区对硬件产品的测试标准也有差异。欧盟的CE认证,美国的FCC标准,中国的CCC标准等,有共同点,也有区别。随着产品的国际化,硬件测试工程师还需要应对不同标准之间的差异和转换,增加了测试工作的复杂性。

软件测试工程师,不仅仅需要了解行业标准,还需要了解网络安全标准,对各种安全防范功能进行测试验证。

测试工程师需要细心,有耐心,不怕繁琐,还要具备问题分析与解决能力。碰到复杂故障(如偶发性数据丢失、设备控制延迟),能够找到快速复现的方法,而且能通过日志分析、断点调试等手段定位根因,帮助研发工程师快速解决问题。

另外,测试工程师的跨团队协作能力也很重要。测试工程师需要打交道的人不少,要时常和开发工程师、产品经理、工程团队现场工程师保持高效沟通。

有一个测试工程师写了一下他一天的工作分配:上午参与需求评审,发现需求文档中边界场景没有覆盖;中午执行功能测试,发现几个缺陷录入Jira;下午跑兼容性测试,分析不同设备的适配问题;傍晚和研发一起参与缺陷复盘,说服研发修复优先级争议;下班以前编写测试报告,同步测试进度与风险点。

这种工作模式要求测试工程师具备50%测试执行、30%需求沟通、20%缺陷追踪的综合能力,协作对象涵盖开发工程师、产品经理、运维团队甚至最终用户。

04

前途无量

笔者在搜狐网看到一篇文章,文中提到 “最近测试圈里流行一句话:‘2025 年最不会失业的职业,就是会写代码的测试工程师’”。可见测试工程师现在需求旺盛。

现在互联网大厂招测试工程师标准很清晰:要么能玩转自动化测试框架,要么懂性能压测,最次也得会写点Python脚本。网上的招聘平台搜"测试开发",薪资不低,后面还跟着个"急招"。最近拉勾网刚出的报告显示,软件测试岗平均工资比去年又涨了8%。

当然,测试工程师吃香的前提是懂测试技术+领域知识+行业标准的复合型人才。所以,对新入行的测试工程师来说,成长方向很明确,要在以上三个方面下功夫,还需要特别关注方兴未艾的AI辅助测试。

测试工程师长远的职业发展,方向很多。一是成为资深测试工程师或者测试架构师,负责设计搭建测试框架和整体质量保证系统;编程能力较强的测试工程师还可以转研发岗。我原来带的一个徒弟,从测试工程师开始,后来成为研发工程师,架构师,再遇到他的时候已经是一个重要产品的首席架构师了。

测试经理也是发展方向之一。测试经理负责管理测试团队,建立标准测试流程,提高测试效率和质量,属于技术管理岗。

因为对产品熟悉,测试工程师也适合成为产品经理,或者成为销售,技术支持。测试工程师转岗技术型销售,在职场往往很受欢迎,因为他们对产品使用的熟悉程度甚至超过研发。

测试工程师出身的名人,比如毕业于哈佛大学计算机专业的谢家华,1995年进入甲骨文公司做测试工程师,后离职创业。1998年,他以2.65亿美元的价格将自己创办的 Link Exchange 公司卖给了微软。后来又创办在线鞋类零售商Zappos,2009年以12亿美元出售给了亚马逊。

05
结语

工业软件对稳定性,性能的要求很高,出厂时需要被严格测试。测试工程师是工业软件的带刀护卫和质量保障,是最可靠的护城河。

零基础如何高效学习大模型?

你是否懂 AI,是否具备利用大模型去开发应用能力,是否能够对大模型进行调优,将会是决定自己职业前景的重要参数。

为了帮助大家打破壁垒,快速了解大模型核心技术原理,学习相关大模型技术。从原理出发真正入局大模型。在这里我和鲁为民博士系统梳理大模型学习脉络,这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码免费领取🆓**⬇️⬇️⬇️

在这里插入图片描述

【大模型全套视频教程】

教程从当下的市场现状和趋势出发,分析各个岗位人才需求,带你充分了解自身情况,get 到适合自己的 AI 大模型入门学习路线。

从基础的 prompt 工程入手,逐步深入到 Agents,其中更是详细介绍了 LLM 最重要的编程框架 LangChain。最后把微调与预训练进行了对比介绍与分析。

同时课程详细介绍了AI大模型技能图谱知识树,规划属于你自己的大模型学习路线,并且专门提前收集了大家对大模型常见的疑问,集中解答所有疑惑!

在这里插入图片描述

深耕 AI 领域技术专家带你快速入门大模型

跟着行业技术专家免费学习的机会非常难得,相信跟着学习下来能够对大模型有更加深刻的认知和理解,也能真正利用起大模型,从而“弯道超车”,实现职业跃迁!

图片

【精选AI大模型权威PDF书籍/教程】

精心筛选的经典与前沿并重的电子书和教程合集,包含《深度学习》等一百多本书籍和讲义精要等材料。绝对是深入理解理论、夯实基础的不二之选。

在这里插入图片描述

【AI 大模型面试题 】

除了 AI 入门课程,我还给大家准备了非常全面的**「AI 大模型面试题」,**包括字节、腾讯等一线大厂的 AI 岗面经分享、LLMs、Transformer、RAG 面试真题等,帮你在面试大模型工作中更快一步。

【大厂 AI 岗位面经分享(92份)】

图片

【AI 大模型面试真题(102 道)】

图片

【LLMs 面试真题(97 道)】

图片

【640套 AI 大模型行业研究报告】

在这里插入图片描述

【AI大模型完整版学习路线图(2025版)】

明确学习方向,2025年 AI 要学什么,这一张图就够了!

img

👇👇点击下方卡片链接免费领取全部内容👇👇

在这里插入图片描述

抓住AI浪潮,重塑职业未来!

科技行业正处于深刻变革之中。英特尔等巨头近期进行结构性调整,缩减部分传统岗位,同时AI相关技术岗位(尤其是大模型方向)需求激增,已成为不争的事实。具备相关技能的人才在就业市场上正变得炙手可热。

行业趋势洞察:

  • 转型加速: 传统IT岗位面临转型压力,拥抱AI技术成为关键。
  • 人才争夺战: 拥有3-5年经验、扎实AI技术功底真实项目经验的工程师,在头部大厂及明星AI企业中的薪资竞争力显著提升(部分核心岗位可达较高水平)。
  • 门槛提高: “具备AI项目实操经验”正迅速成为简历筛选的重要标准,预计未来1-2年将成为普遍门槛。

与其观望,不如行动!

面对变革,主动学习、提升技能才是应对之道。掌握AI大模型核心原理、主流应用技术与项目实战经验,是抓住时代机遇、实现职业跃迁的关键一步。

在这里插入图片描述

01 为什么分享这份学习资料?

当前,我国在AI大模型领域的高质量人才供给仍显不足,行业亟需更多有志于此的专业力量加入。

因此,我们决定将这份精心整理的AI大模型学习资料,无偿分享给每一位真心渴望进入这个领域、愿意投入学习的伙伴!

我们希望能为你的学习之路提供一份助力。如果在学习过程中遇到技术问题,也欢迎交流探讨,我们乐于分享所知。

*02 这份资料的价值在哪里?*

专业背书,系统构建:

  • 本资料由我与鲁为民博士共同整理。鲁博士拥有清华大学学士美国加州理工学院博士学位,在人工智能领域造诣深厚:

    • 在IEEE Transactions等顶级学术期刊及国际会议发表论文超过50篇
    • 拥有多项中美发明专利。
    • 荣获吴文俊人工智能科学技术奖(中国人工智能领域重要奖项)。
  • 目前,我有幸与鲁博士共同进行人工智能相关研究。

在这里插入图片描述

内容实用,循序渐进:

  • 资料体系化覆盖了从基础概念入门核心技术进阶的知识点。

  • 包含丰富的视频教程实战项目案例,强调动手实践能力。

  • 无论你是初探AI领域的新手,还是已有一定技术基础希望深入大模型的学习者,这份资料都能为你提供系统性的学习路径和宝贵的实践参考助力你提升技术能力,向大模型相关岗位转型发展

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

抓住机遇,开启你的AI学习之旅!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值