最近一直在忙的项目刚刚上线交付完成,让自己有了些许喘息的时间。人总是这样,在忙碌的时候,能心无旁骛关注并做好一件事,已是万幸。而全力而为之后的闲暇总是如此的珍贵,在这难得的空隙中,不自觉的开始对自己的职业规划进行了重新审视。回首过去,我意识到,很多像我一样从事软件测试的同学,在刚入行的时候可能并没有过多地考虑过自己的职业之路该如何走。
虽然是情理之中的事情,毕竟入行就能有明确职业规划的毕竟只是少数,因为不可控的内因和外因实在是太多了。而自己也只是运气好,走上了管理之路,值得庆幸的同时也觉得应该将一些职业之路上的自我认识和沉淀的东西拿出来分享给大家,当然每个人的境遇自不相同,如有偏差,就当一乐。
软件测试,这个领域蕴含着无数的可能性和挑战。说句实在的,当下社会中我们不仅仅是在找bug,更是在为软件的质量把关,为用户的体验护航。什么?假大空,如果你真这么想,即使你真的是一名软测,我也不建议你在这条路上继续走下去。如今的领域中,有人说卷,但回头想想,有哪个领域是不卷的。躺平只是一小部分人,而且躺平还得看质量,半躺还是全躺?躺在哪?舒不舒服?拉回来说,软件行业的竞争就从来没有停止过,以前拼的是功能,但慢慢的,如果你的产品没有有效的解决方案、没有良好的用户体验、没有到位的服务、没有成体系的营销方式,那不好意思,可能哪一天这个产品就会淡出用户的视野。
那么说来说去,其实就是想告诉大家,软测早已不是之前所谓的高薪低门槛的职业了,也正因如此,现如今的岗位需求也好,职业发展预测也好,软测任然不失为一个良好的职业选择。无论大家的选择软测的出发点是什么,都不重要,重点在于是否对自己的职业之路有个比较明确的预期,并在当下以此为目标仍然努力着。在我看来,软件测试的角色可以从多个维度进行细分,比如技能、经验、职责等。从技能维度来看,我们可以分为功能测试、性能测试、自动化测试等不同的角色;从经验维度来看,初级、中级、高级测试工程师的角色划分也是必不可少的;而从职责维度来看,测试工程师、测试组长、测试经理等角色则代表了不同的管理层级。当然,这么分的话还是有点死板了,这样的划分并不是绝对的,根据实际的组织架构和业务需求,这些维度之间也存在着交叉和重叠。而正是这种交叉和重叠,为我们的职业发展提供了无限的可能性。弄清楚我们自己的兴趣、特长和技能,选择适合自己的发展方向才是重中之重,无论你是初入职场的新手,还是稳扎稳打的中坚力量,又或者是经验丰富的行业翘楚。
哦,对了,在正式介绍之前,先回答一下粉丝之前的提问,QA与测试的区别在哪?
首先是QA岗位,说直白一点就是质量保证,其主要职责是确保软件开发过程的质量。注意哦,这里和测试的区别就在于确保的是开发过程的质量,QA人员在整个软件开发过程中,一般是以第三方的身份,对项目进行评审,确保项目按照既定的规范和流程进行,从而保障软件的质量。当然,这里的第三方不是必要的,即使是自家的QA人员其心态与责任态度也应该保持不受任何团队影响干扰的前提下来严格执行SOP。工作的内容不仅限于测试阶段,而是贯穿于整个开发过程,包括需求分析、设计、编码、测试等各个阶段。QA人员的主要职责还包括制定或完善质量管理体系,如工作流程、规范、标准等,并确保这些体系在实际工作中得到有效执行。此外,他们还需要对软件开发过程中的文档进行审核,确保文档的完整性和准确性。
而测试岗位则重点专注于整个测试过程,这里包含的就是大家熟知的整个测试生命周期了:包括测试计划设计阶段、测试准备阶段、测试执行阶段和测试总结阶段。测试人员需要协助制定测试计划,编写测试用例,搭建测试环境,执行测试并报告测试结果,同时还要进行BUG管理与验证等工作。他们通过这一系列工作来发现软件中的问题,并与开发团队紧密合作,确保问题得到及时解决。测试人员还需要对测试结果进行分析,评估软件的质量和可靠性,并提出改进建议。
说到底,QA和测试岗位在职责上的确是存在一定的差异,QA更注重对整个开发过程的质量管理和控制,而测试则更专注于整个测试过程以及找出软件中的缺陷。但是,他们的岗位目的却是一致的,都是为了提高软件的质量和用户满意度。一般情况下在编制比较完整的公司中,测试中心或测试部的项目工作都是需要QA与测试进行互相合作完成的。
这里我们先按时间跨度和工作年限最为衡量标准,来简单的介绍一下各种角色的大致要求和职责。
入行阶段:1-2年初级测试工程师初级QA工程师
一般来说刚入行的初级同学无论是科班还是非科班,面对公司的产品线与业务亦或是测试领域的实操都是比较陌生的,一些较为日常与基础的工作都会交予给他们。比如熟悉具体的功能需求,测试用例的编写与执行,缺陷的跟进与验证,测试技术的学习等。QA工程师的话则需要在此基础上参与到一些质量保障流程的监督工作中,比如编写和维护一些质量管理文档,但总体来说工作内容还是主要集中在质量保证方面。在这个从零到一的阶段,如果进到一个比较OK的公司,那么无论是测试技术、认知还是项目经验可以得到一个飞跃式的成长,当然这个只能算是先天条件,同样也离不开后天的个人努力。个人的意见是在这个阶段一定要多看、多问、多学,反复实践和复盘,缺一不可,主打一个好习惯的培养,这对之后的职业道路来说可是十分重要的,但其中讲究方法和技巧,这里就见仁见智了,还是要根据各自的性格和做事风格来进行合理选择。
中坚阶段:3-5年高级测试工程师高级QA工程师
到了这个阶段,测试的日常工作就开始变得丰富多彩了,除了之前说的一些日常基础工作外,比较明显的就是多了一些管理属性。项目初期的测试策略、场景等就需要高级的同学来进行设计了,这个因部门或组织架构规模而议,如果是经理或主管主要负责,那高级测试就主要是辅助设计,这样的情况一般是在比较大型的平台产品或业务复杂的产品线中会比较频繁的出现。初期另一个重要的就是测开的工作了,自动化是软测中永远无法跳过的重要课题,自然一些自动化工具与框架的设计、落地、优化,自动化用例执行,测试结果分析与报告都成了必修课。在较为空闲的时候还需要针对行业或公司业务来做一些新技术的调研,为团队的自动化水平提升尽心尽力。
对了,日常工作中还需要带上你的小伙伴一起进行测试活动,有些公司也称其为组长,一个高级测试(组长)管理一个或多个初级测试形成一个小的项目组或测试小团队来执行测试任务。而高级QA则更加侧重于质量管理体系的建立与维护、质量策略的制定、风险评估与管理以及持续改进与过程优化等方面。和高级测试一样,他们同样带有一定的管理属性,面向的质量管理体系的内容也更加广泛,除了建立体系之外,还需要对于开发流程中的各个环节,确保质量标准和规范在实际工作中得到有效执行。更需要在项目的初始阶段根据项目需求和公司战略,制定质量策略和计划,明确质量目标和关键质量指标。而对于项目过程中的风险也需要做风险评估与管理,结合各类维度的风险报告来跟踪风险的处理情况,确保风险得到有效控制。至于带团队方面则与高级测试类似,这里就不再赘述了。
当你沉淀了3-5年的行业经验后,你会发现你可以很轻易的hold住自己之前的日常工作,但面对管理和团队时就有些手足无措了,毕竟你们从平级关系变成了上下级,人无完人,可能会有小伙伴表现出一些不服从或不太友好的举动,但请相信,这只是一时的,别灰心和沮丧,随着你的坚持和不断学习和调整,从心态和技术上你会有一个再次突破。如果可能的话也是为你之后的管理之路打下坚实的基础。
进阶阶段:5-10年测试架构工程师QA架构工程师
架构工程师,这个名字听起来就非常牛逼的岗位角色,其实大家可以理解为是测试技术路线进阶版本,一般都是技术大佬。相较于高级测试来说,他的工作内容内的管理属性会相对减少,因为他的大部分精力必须集中在测试产品与测试技术框架的设计与规划上,确保测试策略、方法、工具和环境能够满足项目的需求和质量标准。日常的空余时间还需要保持一定的技术前瞻性,关注新技术和新方法的发展,并将其引入到测试工作中,以提高测试效率和质量。
另外在实际的设计层面上,架构工程师必须具有较高的系统思维能力,能够从整体角度看待测试工作,并给出合适的解决方案,而高级测试的整体规划与系统思维就没有太高的要求。但这个岗位角色却不是所有从事软件测试同学的必经之路,毕竟相对于众多的从业者来说拥有极深的架构设计、规划和优化与系统思维能力不是一件简单的事情,如果想从事的话可以提前在一些前置岗位中刻意练习,多多积累对应的技能与经验。
管理阶段:5-10年测试主管/经理QA主管/经理
这里就不再细分主管和经理的具体职责了,在中国的大部分公司中不会将主管与经理的职责划分的如此具体与不同,两者也有很多的共通部分,这里就合并在一起介绍了。
对于测试经理来说第一要务一定是管理,测试团队的整体规划、组建和管理、人员招聘、绩效评估、团队文化建设、制定团队的工作目标、计划和任务分配等这些都是家常便饭。在测试项目中参与各类的评审,与各类团队协调沟通明确需求和目标,测试策略、方法、标准的制定,测试大日程的制定审核监督,测试资源的协调与安排等等等等。可以这么说,一个好的测试经理就是为测试团队和测试人员服务的,只有团队的成绩才是测试经理的成绩,无论你一个人的技术多牛,认知和知识面多广,那都是不行的,最多只能证明你干活的确比别人在行而已,而带团队却不是如此,不要忽视团队里的任何一块短板,那个就是你的团队短板,应该时时刻刻把团队的利益放在第一位,技术也好,人员的情绪或效率也好,都是值得一个测试经理去好好思考的。
能到达管理阶段的测试同学来说,你的测试职业之路已经到达了一个比较挑战的阶段了,当然和之前的那些需要面对的课题宇内容不同,一方面在测试行业已经积累了一定的资源与经验,另一方面又需要将一些执行层面的固有认知打破,重新塑造自己的各类技能与管理风格。之前不曾涉及的领导力、技术前瞻性、整体规划等等课题都将挡在你的职业道路之上,等待着你来一一解决。
如果是想做好一名合格的测试主管或经理,在国内的当下大环境下,我的建议是从以下几个方面去思考、着手、落地:
一是需要关注团队的技能提升和知识更新。随着技术的发展,新的测试工具和方法层出不穷。管理者需要引领团队保持对新技术的敏感,确保团队掌握行业前沿的测试技能;
二是持续优化测试流程,在软件开发生命周期中,测试环节至关重要。那么审视并优化现有流程,确保测试的高效和质量就是首当其冲的事情;
三是加强与开发团队的协同工作。在敏捷开发模式下,测试与开发更紧密地合作成为必然。管理者如若没有与开发团队建立良好的沟通机制的话,就很难在产品项目中确保双方在理解业务需求,同时制定测试策略和发现问题上能够形成合力;
四是关注测试数据的收集和分析。测试数据不仅是评估测试效果的重要依据,也能为团队改进提供宝贵信息。建立数据驱动的思维模式,运用数据指导团队工作在当下AI与大数据正热的背景下也就显得分外的重要了。
管理阶段:10年以上测试总监QA总监
这里的抬头怎么叫都无所谓,但很多公司更愿意称其为VP。很多时候他们的汇报对象可能就直接是CTO,很多人其实都搞不太清楚总监与经理之间的区别,在一些组织架构比较完整的公司内,其实对于这两者的岗位职责与区分还是很明确。就好比笔者自己的公司,总监的定位更加的倾向于总指挥,他职责更加全面和战略化,而测试经理则更注重具体的测试执行和管理。总监通常负责整个测试部门的战略规划,这个就要求他们需要拥有更加全面的知识和战略眼光,当然这里的知识就不单单指的是测试行业与团队管理的能力了,更多的是需要理解大到公司战略方向、整体运作情况、产品线路的规划与发展,小到部门预算与资源调配、团队建设等等细节。归根结底就是一句话,总监这种岗位角色的认知与能力高低在很大程度上决定了一家公司的产品质量保障体系和其产品本身的质量高低。
好了,看到这里,相信大家对于软件测试行业中各类岗位角色已经有了一个大概的认识了。其实每一个测试行业的从事者都会对自己的未来有一个大概的定位,无论能否达成最终的目标,只希望大家可以不负每一天,在各自的职业道路上稳步前行。
文末了:
可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。同时我邀请你进入我们的软件测试学习交流平台,大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,了解测试行业的最新趋势,助你快速进阶Python自动化测试/测试开发,稳住当前职位同时走向高薪之路。