`
qqchinaok
  • 浏览: 213908 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

测试开发工程师的发展

阅读更多

    非常好的文章,转至:http://www.pyfans.com

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

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

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

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

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

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

 
0
0
分享到:
评论

相关推荐

    大厂测试开发工程师面试基础——Linux命令

    大厂测试开发工程师面试基础——Linux命令

    软件测试工程师职业规划

    软件测试行业的职业发展路线按现在的现状,走四条路线: 第一条:软件测试技术路线 从初级测试工程师到中级测试工程师、高级测试工程师、资深测试工程师 ... 初级测试工程师、中级测试工程师、高级测试开发工程师

    大厂测试开发工程师面试资料——编程基础python

    大厂测试开发工程师面试资料——编程基础python

    大厂测试开发工程师面试资——测试基础

    大厂测试开发工程师面试资料——测试基础

    软件测试工程师职业规划.rar

    软件测试行业的职业发展路线按现在的现状,走四条路线: 第一条:软件测试技术路线 从初级测试工程师到中级测试工程师、高级测试工程师、资深测试工程师 ... 初级测试工程师、中级测试工程师、高级测试开发工程师

    20220基础测试开发视频教程大厂版

    本教程针对有一定的测试基础和那些想往测试开放,自动...久而久之,也就形成了“供需不平衡”的局面,所以该岗位缺口量是持续扩大的,而这也让测试开发工程师相比其他技术岗位来说具备了更显著的优势和广阔的发展前景。

    一位软件测试开发工程师的成长体验

    这篇博客,是她想分享给大家的一些体会和故事,一来给不熟悉测试工作的读者描绘一下在微软当软件测试开发工程师是怎么回事情,二来“揭秘”一下微软的职业发展体制 —  2005年的秋天,李敏还在上海交通大学念研究...

    JAVA工程师面试测试附答案

    JAVA工程师面试测试附答案

    软件测试工程师的技能树

    近年来互联网行业的很多测试工程师被称为是测试开发工程师,也就是要具备自动化测试和测试工具开发能力的测试工程师,可以说是对测试工程师的能力要求达到了一个新的高度。 相信有过测试工作经验的同学都会深有体会...

    软件测试工程师考试大纲及历年真题

     ·开发方测试、用户测试、第三方测试  ·动态测试、静态测试  ·白盒测试、黑盒测试、灰盒测试  7.4 软件问题分类  ·软件错误  ·软件缺陷  ·软件故障  ·软件失效  7.5 测试标准  7.5.1 ...

    系统工程师MDS开发基础知识培训ppt

    系统工程师MDS开发基础知识培训ppt 1、手机显示模块在手机功能块中的位置图及其常用组成器件; 2、产品方案制作基本知识; 3、QC公式制作包括测试电路、测试软件制作方法; 4、带摄像头(CMOS/CCD SENSOR)显示模块...

    JMETER分布式部署实践详解.rar

    适合想往 中高级开发工程师或者测试工程师发展的人员 课程目标: 通过全面系统的学习,具备独立完成公司性能测试任务能力,助力你成功升级为高级性能测试工程师 内容简介: 01JMETER 为什么需要分布式 02JMETER...

    软件测试工程师应该具备的三项基本素质[2]

    软件测试工程师应该具备的三项基本素质[2] 软件测试 软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有...

    Jmeter性能测试高级项目实践课程资源.rar

    适合想往 中高级开发工程师或者测试工程师发展的人员 课程目标: 你将掌握如何使用Jmeter进行性能和接口自动化测试,并可以运用到实际工作中 熟练学习Jmeter工具独立完成常见的性能测试项目熟练使用Jmeter进行...

    软件测试

    但是与此同时,很多测试工程师也迎来了个人的发展瓶颈:很多人从测试工程师做到了测试经理的职位,不知道下一步如何发展;或者每天机械地从事着功能测试工作。理解产品的功能要求,并对其进行测试,检查软件有没有...

    软件测试工程师应该如何自我提升?

    越来越多的团队开始重视测试,他们利用测试驱动开发。全新的或者改进的自动化测试和驱动框架层出不穷。团队在采用更多自动化回归测试之后,需要测试人员具有精湛的探索性测试技能。但是大部分人在校园里中学不到这些...

    软件工程发展调研报告(1).docx

    硬件工程部门* 相关职位的职责 软件开发工程师 完成软件的设计、开发、测试、修改bug等工作,包括业务需求的沟通,功能模块详细设计,业务功能实现与单元测试,系统维护。 软件测试工程师 软件测试就是使用人工或...

    软件测试工程师应该具备的三项基本素质[1]

    软件测试工程师应该具备的三项基本素质[1]软件测试很多年轻或者刚刚从事测试工作的工程师,经常会问:“测试... 经过这几年的发展,国内IT公司的测试水平有了很大的提高,但是与此同时,很多测试工程师也迎来了个人

    全栈性能测试修炼宝典JMeter实战

    首部分基础篇,主要讲解了当前性能测试状况及发展前景、性能测试的基础理论,让读者尽快入门学习;第二部分工具篇,讲解开源负载工具JMeter的体系结构、...适合测试工程师、测试项目负责人、开发工程师、性能测试爱好者

    JMeter:性能测试的瑞士军刀.zip

    同时,随着技术的不断发展,JMeter也将不断更新和完善其功能,为测试工程师提供更加便捷和高效的测试体验。 在未来,性能测试将越来越成为软件开发和测试的重要组成部分。我们期待JMeter能够继续发挥其优势,为软件...

Global site tag (gtag.js) - Google Analytics