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
结语
工业软件对稳定性,性能的要求很高,出厂时需要被严格测试。测试工程师是工业软件的带刀护卫和质量保障,是最可靠的护城河。
这两年,IT行业面临经济周期波动与AI产业结构调整的双重压力,确实有很多运维与网络工程师因企业缩编或技术迭代而暂时失业。
很多人都在提运维网工失业后就只能去跑滴滴送外卖了,但我想分享的是,对于运维人员来说,即便失业以后仍然有很多副业可以尝试。
运维网工,千万不要再错过这些副业机会!
第一个是知识付费类副业:输出经验打造个人IP
在线教育平台讲师
操作路径:在慕课网、极客时间等平台开设《CCNA实战》《Linux运维从入门到精通》等课程,或与培训机构合作录制专题课。
收益模式:课程销售分成、企业内训。
技术博客与公众号运营
操作路径:撰写网络协议解析、故障排查案例、设备评测等深度文章,通过公众号广告、付费专栏及企业合作变现。
收益关键:每周更新2-3篇原创,结合SEO优化与社群运营。
第二个是技术类副业:深耕专业领域变现
企业网络设备配置与优化服务
操作路径:为中小型企业提供路由器、交换机、防火墙等设备的配置调试、性能优化及故障排查服务。可通过本地IT服务公司合作或自建线上接单平台获客。
收益模式:按项目收费或签订年度维护合同。
远程IT基础设施代维
操作路径:通过承接服务器监控、日志分析、备份恢复等远程代维任务。适合熟悉Zabbix、ELK等技术栈的工程师。
收益模式:按工时计费或包月服务。
网络安全顾问与渗透测试
操作路径:利用OWASP Top 10漏洞分析、Nmap/BurpSuite等工具,为企业提供漏洞扫描、渗透测试及安全加固方案。需考取CISP等认证提升资质。
收益模式:单次渗透测试报告收费;长期安全顾问年费。
比如不久前跟我一起聊天的一个粉丝,他自己之前是大四实习的时候做的运维,发现运维7*24小时待命受不了,就准备转网安,学了差不多2个月,然后开始挖漏洞,光是补天的漏洞奖励也有个四五千,他说自己每个月的房租和饭钱就够了。

为什么我会推荐你网安是运维和网工人员的绝佳副业&转型方向?
1.你的经验是巨大优势: 你比任何人都懂系统、网络和架构。漏洞挖掘、内网渗透、应急响应,这些核心安全能力本质上是“攻击视角下的运维”。你的运维背景不是从零开始,而是降维打击。
2.越老越吃香,规避年龄危机: 安全行业极度依赖经验。你的排查思路、风险意识和对复杂系统的理解能力,会随着项目积累而愈发珍贵,真正做到“姜还是老的辣”。
3.职业选择极其灵活: 你可以加入企业成为安全专家,可以兼职“挖洞“获取丰厚奖金,甚至可以成为自由顾问。这种多样性为你提供了前所未有的抗风险能力。
4.市场需求爆发,前景广阔: 在国家级政策的推动下,从一线城市到二三线地区,安全人才缺口正在急剧扩大。现在布局,正是抢占未来先机的黄金时刻。


1. 阶段目标
你已经有运维经验了,所以操作系统、网络协议这些你不是零基础。但要学安全,得重新过一遍——只不过这次我们是带着“安全视角”去学。
2. 学习内容
**操作系统强化:**你需要重点学习 Windows、Linux 操作系统安全配置,对比运维工作中常规配置与安全配置的差异,深化系统安全认知(比如说日志审计配置,为应急响应日志分析打基础)。
**网络协议深化:**结合过往网络协议应用经验,聚焦 TCP/IP 协议簇中的安全漏洞及防护机制,如 ARP 欺骗、TCP 三次握手漏洞等(为 SRC 漏扫中协议层漏洞识别铺垫)。
**Web 与数据库基础:**补充 Web 架构、HTTP 协议及 MySQL、SQL Server 等数据库安全相关知识,了解 Web 应用与数据库在网安中的作用。
**编程语言入门:**学习 Python 基础语法,掌握简单脚本编写,为后续 SRC 漏扫自动化脚本开发及应急响应工具使用打基础。
**工具实战:**集中训练抓包工具(Wireshark)、渗透测试工具(Nmap)、漏洞扫描工具(Nessus 基础版)的使用,结合模拟场景练习工具应用(掌握基础扫描逻辑,为 SRC 漏扫工具进阶做准备)。
1. 阶段目标
这阶段是真正开始“动手”了。信息收集、漏洞分析、工具联动,一样不能少。
熟练运用漏洞挖掘及 SRC 漏扫工具,具备独立挖掘常见漏洞及 SRC 平台漏扫实战能力,尝试通过 SRC 挖洞搞钱,不管是低危漏洞还是高危漏洞,先挖到一个。
2. 学习内容
信息收集实战:结合运维中对网络拓扑、设备信息的了解,强化基本信息收集、网络空间搜索引擎(Shodan、ZoomEye)、域名及端口信息收集技巧,针对企业级网络场景开展信息收集练习(为 SRC 漏扫目标筛选提供支撑)。
漏洞原理与分析:深入学习 SQL 注入、CSRF、文件上传等常见漏洞的原理、危害及利用方法,结合运维工作中遇到的类似问题进行关联分析(明确 SRC 漏扫重点漏洞类型)。
工具进阶与 SRC 漏扫应用:
-
系统学习 SQLMap、BurpSuite、AWVS 等工具的高级功能,开展工具联用实战训练;
-
专项学习 SRC 漏扫流程:包括 SRC 平台规则解读(如漏洞提交规范、奖励机制)、漏扫目标范围界定、漏扫策略制定(全量扫描 vs 定向扫描)、漏扫结果验证与复现;
-
实战训练:使用 AWVS+BurpSuite 组合开展 SRC 平台目标漏扫,练习 “扫描 - 验证 - 漏洞报告撰写 - 平台提交” 全流程。
SRC 实战演练:选择合适的 SRC 平台(如补天、CNVD)进行漏洞挖掘与漏扫实战,积累实战经验,尝试获取挖洞收益。
恭喜你,如果学到这里,你基本可以下班搞搞副业创收了,并且具备渗透测试工程师必备的「渗透技巧」、「溯源能力」,让你在黑客盛行的年代别背锅,工作实现升职加薪的同时也能开创副业创收!
如果你想要入坑黑客&网络安全,笔者给大家准备了一份:全网最全的网络安全资料包需要保存下方图片,微信扫码即可前往获取!
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
1. 阶段目标
全面掌握渗透测试理论与实战技能,能够独立完成渗透测试项目,编写规范的渗透测试报告,具备渗透测试工程师岗位能力,为护网红蓝对抗及应急响应提供技术支撑。
2. 学习内容
渗透测试核心理论:系统学习渗透测试流程、方法论及法律法规知识,明确渗透测试边界与规范(与红蓝对抗攻击边界要求一致)。
实战技能训练:开展漏洞扫描、漏洞利用、电商系统渗透测试、内网渗透、权限提升(Windows、Linux)、代码审计等实战训练,结合运维中熟悉的系统环境设计测试场景(强化红蓝对抗攻击端技术能力)。
工具开发实践:基于 Python 编程基础,学习渗透测试工具开发技巧,开发简单的自动化测试脚本(可拓展用于 SRC 漏扫自动化及应急响应辅助工具)。
报告编写指导:学习渗透测试报告的结构与编写规范,完成多个不同场景的渗透测试报告撰写练习(与 SRC 漏洞报告、应急响应报告撰写逻辑互通)。
1. 阶段目标
掌握企业级安全攻防、护网红蓝对抗及应急响应核心技能,考取网安行业相关证书。
2. 学习内容
护网红蓝对抗专项:
-
红蓝对抗基础:学习护网行动背景、红蓝对抗规则(攻击范围、禁止行为)、红蓝双方角色职责(红队:模拟攻击;蓝队:防御检测与应急处置);
-
红队实战技能:强化内网渗透、横向移动、权限维持、免杀攻击等高级技巧,模拟护网中常见攻击场景;
-
蓝队实战技能:学习安全设备(防火墙、IDS/IPS、WAF)联动防御配置、安全监控平台(SOC)使用、攻击行为研判与溯源方法;
-
模拟护网演练:参与团队式红蓝对抗演练,完整体验 “攻击 - 检测 - 防御 - 处置” 全流程。
应急响应专项: -
应急响应流程:学习应急响应 6 步流程(准备 - 检测 - 遏制 - 根除 - 恢复 - 总结),掌握各环节核心任务;
-
实战技能:开展操作系统入侵响应(如病毒木马清除、异常进程终止)、数据泄露应急处置、漏洞应急修补等实战训练;
-
工具应用:学习应急响应工具(如 Autoruns、Process Monitor、病毒分析工具)的使用,提升处置效率;
-
案例复盘:分析真实网络安全事件应急响应案例(如勒索病毒事件),总结处置经验。
其他企业级攻防技能:学习社工与钓鱼、CTF 夺旗赛解析等内容,结合运维中企业安全防护需求深化理解。
证书备考:针对网安行业相关证书考试内容(含红蓝对抗、应急响应考点)进行专项复习,参加模拟考试,查漏补缺。
网络安全这行,不是会几个工具就能搞定的。你得有体系,懂原理,能实战。尤其是从运维转过来的,别浪费你原来的经验——你比纯新人强多了。
但也要沉得住气,别学了两天Web安全就觉得自己是黑客了。内网、域渗透、代码审计、应急响应,要学的还多着呢。
如果你真的想转,按这个路子一步步走,没问题。如果你只是好奇,我劝你再想想——这行要持续学习,挺累的,但也是真有意思。
关于如何学习网络安全,笔者也给大家整理好了全套网络安全知识库,需要的可以扫码获取!
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

关于如何学习网络安全,笔者也给大家整理好了全套网络安全知识库,需要的可以扫码获取!
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

1752

被折叠的 条评论
为什么被折叠?



