开启在华为的这场江湖冒险,是2021年的夏天。
我入职后加入数据通信维护部,承担路由器IFIT(随流检测)维护工作。从第一次搭建组网,到第一次复现问题,再到第一次制作补丁……在同事们的热心帮助下,我仿佛蜘蛛侠一般,完成了一个又一个补丁,快速跑上了赛道。
勇揭招募帖,成为“三证工程师”
“为了持续构筑数据通信产品和解决方案竞争力,抓住5G、云、数字化和万物互联带来的商业场景、网络架构和网络运维的巨大变化,成为数据通信产业领导者,必须锻造一支具备全局视野、系统思维、专业精深的研发专家队伍。”
2022年6月的一天,我在社区空间看到公司试点开发者转测试的消息,南京地域要选取一名研发人员参加开发测试循环作战。“这是一个好机会,测试岗位要求知识面广,如果我去了,一定能拓宽视野,提升自己的综合能力,将职业广度再扩大一圈。”我的内心泛起涟漪。
一直以来,我认为自己的知识体系太过单一,比如面对现网问题定位时,一碰到涉及周边领域的知识就一脸茫然,影响定位效率。而我憧憬的测试岗位是“质量之盾”,对各领域知识都有一定程度的了解,能精准发现补丁的缺陷,充当质量的最后一道防线。我满怀期待地申请加入,凭借过往靠谱的交付成绩,部门主管刘俊磊决定让我去当第一个“吃螃蟹”的人。
8月,我以测试新兵的身份到SR(解决方案责任人)维护测试组报到。
“总算有人来帮忙测补丁了,以后你就留在测试组吧!”当我刚把电脑搬到新工位,团队小伙伴就热情地围了上来,让我倍感温暖。
如何设计测试用例、如何搭建测试环境、如何分析测试结果?这些是我转身后所面临的全新挑战。测试与开发岗位之间的差异,就像烹饪美食过程中厨师与食品检验员的角色,两者都至关重要,但职责和关注点截然不同。大厨(开发)的工作重点在于创新和实现,如何更好地将想法转化为现实,确保菜肴(软件)的功能性、性能和美观度都达到预期;食品检验员(测试)的目标则是确保菜肴(软件)在各个方面都达到安全、可靠、高质量的标准,从而提升顾客的满意度和信任度。
最初,我因为对业务不熟悉感到有些吃力,为了快速上手测试业务,我利用业余时间恶补测试知识,阅读各种测试文章和培训视频。经过4个多月时间,我顺利将软件测试可信专业级、系统测试专业级证书纳入囊中。加上之前已获得的软件开发专业级证书,我升级为“软件开发专业级”“系统测试专业级”“软件测试专业级”三证持证工程师!
“这么快就把证都拿下来了,是不是晚上偷偷学习了?”“证书大丰收啊,那以后组里的攻关、现网问题复现,就靠你顶上了!”同事们轻松幽默的话语让我感受到了他们的认可,也令我倍感亲切。
“持证”上岗,战场挑大梁
2023年2月,某局点计划对数百台设备升级扩容,可升级后XX型号单板不兼容SRv6(基于IPv6的段路由)业务,将导致客户有这一款型单板的设备无法部署SRv6业务,或者部署了SRv6业务的设备上单板不注册,这样升级前能跑的业务升级后反而跑不了,我们当即决定发布紧急补丁。
项目主管将这个局点的测试工作交到了我的手上。这个测试场景和质量要求比较高,为了保障测试的准确性和完整性,我深入研究了SRv6的相关知识。探索这座由网络协议构成的迷宫,这个过程中的每一个细节都让我感到既新奇又充满挑战。
我们与开发测试专家展开了联合行动,组成了一个跨职能的探险小队,有擅长自动化测试的脚本大师、有精通性能测试的负载专家,还有对安全漏洞了如指掌的安全顾问。在一次次会议中,我们像是一群围坐在篝火旁的探险者,分享着各自的发现与见解。在一次关于SRv6隧道建立过程的讨论中,我们通过绘制详细的流程图,将复杂的网络交互过程可视化,就像是在地图上标记出了通往宝藏的必经之路。最后,我们根据代码流程图分析了影响性和风险点,并针对其整理设计了100多个测试用例及影响性分析点。每个测试用例都像是为潜在的风险点量身定制的陷阱,等待着在测试过程中被触发和验证。
之前的难度于我而言,就像在没有设计图的情况下要建一幢房子,那简直是天方夜谭。现在房子的设计图有了,接下来就是着手搭建。
进入到用例测试过程中,我发现了多个潜在问题和缺陷,例如实现时未考虑到单板serial口(串口)绑定Mp-group(一种虚拟链路)场景,这些问题就像一个个不知何时引爆的地雷,会导致业务瘫痪。我所处的环境仿佛变成了一个没有硝烟的战场,而我则是手持探雷设备,细致入微地探索每一个可能危险之处的工兵。在整个过程中,我积极与开发团队沟通协作,反复修补代码。
为了防止客户误配导致业务中断,补丁要求添加防呆措施限制在这一单板接口上配置IPv6业务。我测试了一下serial口的防呆,发现防呆措施正常工作,准备测下一个测试点前,我突然想到serial口可以绑定到Mp-group上,但如果之前Mp-group接口没做防呆措施,那么就可能导致客户业务受损。“Mp-group是个较冷门的知识点,被遗漏的可能性不小!”虽然测试进度紧张,但以防万一,我还是追加部署了对应业务。之后再一测试,果然,就是Mp-group没做防呆措施的原因。
我赶紧开始“摇人”:“我发现了一个场景遗漏的问题可能会导致业务中断,我们一起看下?”我的消息刚发出不久,屏幕上便弹出了多条回复,大家都很重视这个问题。我详细阐述了问题的复现步骤、潜在影响以及我的初步分析,经过数轮迭代和测试,我们在补丁发布前发现了关键问题并及时增量合入订正了,保证了项目的质量和稳定性。那一刻,我心中涌起一种难以言喻的成就感。
补丁上线后,我们圆满完成了该局点设备扩容和替换,我也荣获了来自数通产品线的“杰出新青年”和“测试新青年”荣誉,这是对我最好的肯定。
这一年多的时间里,我从一只“程序猿”蜕变成了“bug猎人”,从一个只会写代码的开发人员成长为了懂客户、懂测试、懂实现的全栈工程师,此后,我对VPLS(虚拟专用局域网业务)、VPWS(虚拟专线业务)、组播、QOS(服务质量)等多个领域都更加熟稔于心,也对前辈们口中的“测试是质量防护的最后一道防线”这句话有了更深刻的体悟。
华丽回归,再探开发新境界
一年之后,到了开发转测试的轮岗期限,我选择重新回到了组播领域的开发岗位,接手新的特性开发工作。
组播,简单来说就是“点到多点”的报文,比如我们平常看的电视就是用组播来转发的,一个频道就是一个组播源组,你切到某个频道,路由器就将对应的节目源报文复制一份发到电视上。
组播业务复杂,上手难度大,我回归开发岗位后,快速成长为组播领域的DE(设计工程师),也遇到了很多技术难题与挑战。
一次,我加入X局点CPU冲高问题攻关中,这个“大魔王”横跨组播、CGN(运营商级网络地址转换)、FEI(转发引擎实例框架)等多个业务领域,如同一位狡猾的暗影巫师,在错综复杂的系统中布下重重迷雾。凭借在测试领域深耕一年的“bug猎人”经验,我精准把握了现网问题复现的精髓,每一步都踏在关键节点上,迅速搭建起模拟战场的组网,让“大魔王”在实验室中现出原形,随后,我与在研和维护领域的专家们并肩作战,深入分析和排查相关代码及文档,终于追溯到了问题的根源。
问题根因定位到了,我们还需尽快为客户提供无损恢复手段,否则客户设备仍持续处于CPU高位运行状态,抗风险能力变得很低,运行速度缓慢,如果此时发生链路震荡等情况就会导致业务大规模受损,这是客户无法接受的。
我们一边制作发布紧急补丁,同时排查了客户和其他可能涉及问题的局点设备,防止了问题扩大化。事后,我们整理了定位过程中发现的组播重复下表问题、CGN表项残留问题和FEI框架可靠性机制不足等问题,总共提出了10多个改进点,把控版本质量,避免了“大魔王”再次复活。
组播复杂的业务逻辑和紧张的补丁交付进度,不仅让我的能力飞速提升,还练就了一颗抗压的强大内心。
团队“健康3+1”(左二为作者)
在华为的短短数载,从愣头青到独当一面的“技术大侠”,我的每一步都踏得实实在在,痛并快乐着。那些熬夜调试、团队并肩作战的日子,像一块块基石,筑起了我职业生涯的小高楼。每当看到项目顺利推进,我感觉像是自己亲手种下的小树苗终于开花结果,充满简单的幸福感。
在团队协作的过程中,我的性格也逐渐变得开朗和健谈。接下来的路,我会带着这份对技术的热爱、对团队的感激,继续前行,与团队一起创造更多有意义的瞬间。