开发,测试和开发测试工程师的区别
每年正式上班之后就会非常忙,今年也不例外。我们公司现在也忙了起来,都没有时间写我的自动化测试教程了。不过大家放心,我会继续写下去的,不过可能更新的不那么快了。最近被同事问到了一个问题,开发,测试和测试工程师都有啥区别?开发转测试是不是比我们测试牛。那我就谈一下我自己的看法:
首先说开发工程师,顾名思义就是用编程语言来开发应用程序,网站,服务等计算机相关应用的工程师。这个要求相应人员具有某种或是某几种语言的编程能力,如c系列,java系列,python系列或是网络编程系列等,并且要掌握相应的数据库的应用等。对于开发工程师来说,需要比较深入的掌握对应的语言,能熟练应用解决实际问题。当然不是掌握的越多越好,如果你面试的时候说你不仅会c系列,也会java系列等语言的话,面试官估计不是感觉你比较牛,会相反感觉你什么也没有掌握好。因为开发工程需要的是精,而不是广。这就相应的有java开发工程师,c++开发工程师,android开发工程师,IOS开发工程师等,而没有简单地说是开发工程师。
测试工程师呢?一般就是从用户角度出发,检测开发工程师做的东西是不是符合产品的需求,或是用户体检好不好?不要求有太专业的知识,但是要细心,对产品敏感。所以有很多不是计算机专业的人员照样可以做测试工程师,因为我们的产品需要不同的人来说嘛。也有比较专业的白盒或是灰盒测试,这就要求测试人员会些儿编程技术了,但是要求不太高,不必会某种语言的高级编程,普通应用或是代码段能看懂就行。问题要考虑全面,细致,有原则,不能跟着开发和产品走,这是测试人员的要求。
测试开发工程师,是介于开发和测试之间的一类工程师。一般需要写测试工具,自动化测试代码,也需要做普通的功能测试或是白盒测试。对工程师要求也和其他两种工程师不一样,不能具有开发的基于程序的思维模式,但有要开发的编码能力;不像开发那样深入地掌握一种编码语言,但对于脚本语言要掌握的比较多,如java,python,php,shell,有时也需要会c,c++,ruby等编程语言。而且更加要有测试工程是敏锐的思维,能从用户体验角度来解决问题,编写测试工具等。
所以说并不是开发转测试就容易,测试转开发就难。这要看个人的发展和经验了。如果一个开发人员,一直在做一种开发,一种产品,让他转这个测试的测试,是没有问题;但是如果转到其他产品的测试,就不太好,因为他容易受到以往开发思维的影响,从而忽视用户角度来查找问题。如果测试编码能力不错,而且又了解业务逻辑,那么转开发也不是什么难事嘛!要根据自身的条件,以后的发展方向来合理的安排自己的工作,开心才是最重要的嘛!