测试开发工程师的发展

测试开发工程师的发展

发表于2011 11 28 张俊俊

随着测试在软件开发周期中越来越受到重视,国内测试的缺口一直比较大,各种软件和互联网公司都大肆招收测试工程师,有些走在前面的公司甚至从今年开始取消了测试工程师职位,全部变成了测试开发职位,比如百度。一方面测试开发表明了对工程师有更高的要求,需要在具有测试能力的基础上兼备开发能力;另一方面自动化测试成为趋势,利用开发的技巧解决测试中的问题以提高测试效率,降低QARD的人力比。

1. 技术含量
面试过许多的应届毕业生,问及为什么选择测试开发这个职位时,经常听到以下的回答:
我觉得自己开发能力比较弱,但我比较细心,觉得测试职位比较适合。
我在实验室和实习公司呆过,做过功能测试和性能测试,我比较喜欢测试.
开发只能了解到项目的局部,但测试需要了解更多,我期望有更好的大局观
无论人们内心真实的想法是什么,但潜意识里面测试的技术含量没有开发高。在校园招聘的时候,我们会将部分倒在开发职位终面的人重新拿到测试开发面试。客观地说,在软件编码方面测试开发的技术含量确实不如纯正的开发职位,更不用说测试职位了。但是,我想说的是这个职位本身所要求的技术水平应该是需要超过单纯的开发职位的,真正高水平的QA至少需要多年的开发经验的,否则他无法从软件产品设计、架构和实现方面提出实质性的意见和风险评估,充其量只是点出交付到手软件中的几个bug。所以基于现阶段国内行情,个人建议如果希望在测试的职业生涯上有所发展的人,先参与几年的研发工作,毕竟那才是软件工程中的主体,然后在开发过程中培养测试意识,这也是程序员的职业素养。Google许多工程师都有强烈的质量意识,许多代码自己不经过自己的单元测试和功能测试是没有人review的。对于投测试或者测试开发职位的目的是为了逃避开发,那么职业道路要发展顺利是很难的。

2. 基本素质
测试开发工程在公司一般有两种,一种是单纯为测试团队开发测试工具或者系统(由于这部分和单纯开发职位本质上区别不大,讨论基于另一种);另一种就是在测试过程中发挥主观能动,利用自动化把重复劳动降至最低,比如开发适用于特定场景的测试工具(当然这种工具具有普遍性也能推广到整个组或者公司)、测试脚本和测试用例。
测试开发工程师应该具备两方面的知识:测试知识和开发知识。之所以把测试排在前面,因为这里的开发建立在测试实践基础之上。其中测试知识又分为两部分:一是理论知识,软件行业发展至今也就几十年,测试方面的积淀就更少了,所以要掌握这部分对于一般人来说不是难事;另外一方面是经验知识,主要在项目测试过程中积累,很多系统的测试点、风险点都需要有丰富的经验来评估,这也是资深的测试工程师价值所在。开发知识当然和开发工程师差不多了,不再多说。在软素质方面,测试开发工程师应该具有更好的组织沟通协作能力。现在许多公司都在推行全流程保证,QA为了发挥更大的影响力以及保证项目的质量,需要从需求到设计,测试到上线全方面跟踪参与,这就涉及到了许多跨部门跨小组的沟通,即便在小组内沟通也极其频繁,工程师需要很好的表达能力。同时,由于测试在软件生命周期中处于靠后的位置,所以在将许多工作推行到上游的环节中存在较多阻力,这也要求工程师有较好的统筹和协作能力,最终达到目的。

3. 走得更远
不可否认,现在许多测试理论,无论白盒测试还是黑盒测试,无论单元测试、集成测试还是系统测试,看似属于测试人员研究的专利,实际上大部分的方法论都是开发人员提出来的。再一次证明,不参与软件主体的研发工作是不可能深入理解测试的,所以开发人员需要具备的开发能力和技巧测试人员也是需要具备的。当然由于项目的安排和时间等各方面的原因,测试人员能难有较多的开发机会,但这不妨碍你不断地学习。我们大组内就有一个多年深入研究的pythonQA,一直以此为兴趣,许多开发小组用到python开发系统的时候都会叫他过去培训,他不仅是质量部的资深测试工程师,还亲自开发了多款实用的测试自动化工具。另外,测试可以涵盖的方面很多,但人的精力毕竟有限,测试开发工程师也必须拥有自己的核心竞争力,选定一个方向是个不错的做法,致力成为某方面的专家,比如单元测试(不要认为是开发人员做的,很多开发人员没有单测意识和技巧)、性能测试、安全测试。组里面也有一个对性能测试研究了6年的人,从职业开始发展一直比较顺利,并且发展势头不错。最后是测试开发工程师需要培养自己的大局观,这个是在职业过程中有意培养的,公司现阶段的任务是什么?侧重点是什么?在大公司需要顺势而为,QA的本职工作是保证质量,需要借助与流程、工具和其他外部资源,所以在工作的时候尽量与大方向契合。比如公司去年是QA内部水平提高的一年,需要QA具备单元测试、Code Review方面的能力,今年是保证质量的前提下,提高软件发布周期,主推持续集成。

4. 测试的本质
2V
ValidationVerification)是QA的基本职责,即保证两点:Validation,软件按照既定的需求开发,没有偏离产品方向;Verification,软件在满足需求的基础上保证其正确性,从功能、性能、安全等各个方面验证。传统意义上,第二点是大部分QA的意识,即找bug,认为一个软件找到的bug越多自己的价值越大,实际上QA的最高境界是软件在测试的时候找不到bug,因为在软件的启动阶段你就开始了质量保证工作,从需求、设计、编码这些前期阶段就杜绝了bug产生的可能。当然,以上说的有些理想,但本质是什么?软件背后是人,是PM制定的需求,是RD进行开发的,那测试背后实际上测的是人而不是软件。人总是可能存在思维漏洞的,人总是可能犯错误的,所以永远会有bug,但有些人心细,有些人负责,自己开发完后会自己进行单测、功能测试,以致后续能发现他的bug已经很少了。明白了这一层就不要单纯从技术角度来思考测试。

最后想说的是,无论在大公司还是小公司,大家都有压力,都要发展,心态就很重要了,以创业者而不是打工者的心态来工作看待很多问题就截然不同了。

 

<think>好的,我需要回答用户关于测试开发工程师职业发展路径的问题。首先,我得从提供的引用材料中提取相关信息。引用1和4提到软件测试工程师发展阶段,分初级、中级、高级等,但用户更关注测试开发工程师,这可能更偏向技术专精路线。引用2提到Java工程师的技术路线,可能可以作为参考,比如从初级到架构师的发展测试开发结合了测试和开发,所以需要同时考虑测试技能和开发能力。 接下来,我需要将这些信息整合成一个清晰的路线图。根据引用4,技术方向可以分为产品测试技术和专项测试技术,测试开发可能属于后者,专注于自动化、持续集成等。同时,引用3提到跨领域合作的重要性,特别是物联网和AI的发展,可能需要测试开发工程师具备更多系统集成和软件开发的知识。 用户要求阶段目标、技能提升和可能的扩展方向。需要分阶段描述,每个阶段的技能要求和目标。例如,初级阶段可能关注自动化测试基础,中级则涉及框架设计,高级阶段可能负责整个测试架构,并参与技术决策。此外,管理路线和技术路线可以分开说明,但用户可能更关注技术专精路径。 还要注意引用材料中的职称名称,如初级测试工程师、高级测试工程师等,但测试开发可能更偏向开发,所以职称可能有所不同,比如测试开发工程师、高级测试开发工程师等。需要确保每个阶段有对应的技能提升点,如编程语言、自动化工具、CI/CD、性能测试等。 最后,生成相关问题,需围绕职业发展的不同方面,如技能学习、挑战、管理路线比较、新技术影响等。确保问题能够引导用户进一步探索。</think>### 测试开发工程师职业发展路径 测试开发工程师(SDET)结合了软件测试与开发能力,职业发展路径可分为**技术专精路线**和**管理路线**,核心围绕**测试自动化、工具开发、质量保障体系构建**展开。以下是分阶段目标和技能提升方向: --- #### **1. 初级阶段:测试开发工程师(1-3年)** - **核心目标**:掌握基础测试与开发技能,独立完成自动化测试任务。 - **技能提升**: - 编程语言:熟练使用$Python$、$Java$或$JavaScript$,掌握基础数据结构和算法。 - 测试框架:学习$Selenium$、$Appium$、$Pytest$等工具,实现UI/接口自动化测试[^4]。 - 持续集成:熟悉$Jenkins$、$GitLab CI$,参与自动化测试流水线搭建[^3]。 - 测试理论:理解测试用例设计方法(等价类、边界值)和缺陷管理流程。 - **阶段标志**:能独立编写自动化脚本,支持迭代测试需求。 --- #### **2. 中级阶段:高级测试开发工程师(3-5年)** - **核心目标**:主导复杂测试框架设计,提升系统级质量保障能力。 - **技能提升**: - 框架开发:设计可复用的测试框架,集成$Docker$实现环境隔离,优化执行效率。 - 性能测试:掌握$JMeter$、$LoadRunner$,分析系统瓶颈(如响应时间$T_{resp}$、吞吐量$QPS$)。 - 质量监控:构建实时监控体系,利用$Prometheus$+$Grafana$可视化测试结果。 - 跨领域协作:了解微服务架构(如$Spring Cloud$)、数据库优化(如索引设计$B^+$树原理)[^2]。 - **阶段标志**:主导关键模块的测试方案,推动团队自动化覆盖率提升至$80\%$以上。 --- #### **3. 资深阶段:测试架构师/技术专家(5-8年)** - **核心目标**:构建企业级质量保障体系,主导技术创新。 - **技能提升**: - 架构设计:设计分布式测试平台,支持百万级并发测试(如基于$Kubernetes$的动态资源调度)[^3]。 - AI赋能:探索测试智能化,应用机器学习优化用例生成(如通过$LSTM$模型预测缺陷分布)。 - 全链路压测:实现生产环境全链路压测,保障高可用性(如$TPS$峰值分析与熔断机制)。 - 标准化建设:制定测试规范(如API接口测试标准$RESTful$),推动DevOps成熟度提升。 - **阶段标志**:成为技术决策者,主导质量保障体系从工具链到流程的全面升级。 --- #### **4. 扩展方向** - **技术管理路线**:测试经理→质量总监→CTO,侧重团队管理与战略规划。 - **跨界发展**:向 DevOps 工程师、云原生架构师转型,融合运维与开发视角[^3]。 - **行业深耕**:专注金融、物联网等垂直领域,解决特定场景的质量挑战(如低延迟交易系统测试$Δt<1ms$)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值