如上,目前岗位是测试工程师,希望向自动化测试,和测试开发方向发展


谢邀。

首先恭喜题主走上了软体测试的不归路,这个行业发展的方向其实是挺明确,一路向西走,不必回头,而且发展也分了技术线和管理线,先分享下图,岔路口选好方向啊。

题主应该是技术宅啦,那再看技术发展,选择从测试工程师先向自动化测试工程师进步,我觉得是理所当然,难度相对较小的,然后在一定的技术积累和经验积累基础上,可以尝试著测试开发方向,这个不是必须,毕竟对语言要求稍微高一些,下面是写的一篇文章,介绍功能测试、自动化测试和测试开发的技术栈,可以看一下。

捉虫布道人:功能测试、自动化测试、测试开发技术栈?

zhuanlan.zhihu.com图标

好了,预祝题主尽早跨进自动化,最终实现测试开发的梦想。


从职位划分来说:

测试工程师 = 手工测试 + 自动化测试 + 测试开发

但因为长久以来,行业内对测试工程师有一定的偏见,认为测试就是手工/黑盒/界面的点点点,认为测试工程师完全等于手工测试。

此时如果希望吸引进阶能力的(逼格更高的)测试工程师,业内发明了一些细分岗位,例如自动化测试工程师,以及测试开发工程师。

然后说自动化测试工程师。

简而言之就是使用自动化手段代替手工测试的工程师。但其实所谓的自动化测试,是基于手工测试的; 任意形态的自动化测试,都是基于手工测试跑通。注意,web和手机上的ui测试,使用shell或者python进行脚本化测试,连接资料库进行sql测试等等,都是手工测试,亦可以实现为自动化以减轻手工工作量。

所以,自动化测试与手工测试,均为业务测试。

在测试能力方面要求是一致的,即

业务理解力

测试设计能力

而在开发能力方面,则为:

系统架构分析能力,例如对分层的判断,以确定测试切入的层面(比如从哪一层介面切入)

系统实现的原理与实现,例如你要测试直播,你得会使用标准类库来实现直播流的推出与播放

测试框架的运用与改造,这就不多说了

自动化测试工程师仍为业务测试,脱离业务则不复存在。换言之,只懂得技术,只会炫耀测试框架,而不懂得一个系统该怎么测的自动化工程师,会死的很惨。

再说测试开发工程师。

测试开发工程师的名词,也逐渐被滥用,很多hr或猎头,甚至候选人认为这是更高级的测试,所以偏好这个岗位。

测试开发工程师,如果要和自动化测试工程师相比来说,他更倾向与对测试框架和平台进行开发,来支持业务测试。

从测试能力来说:

需要理解测试过程和体系

最好有业务测试的基础,否则做出的框架和平台容易流于表面,而不落地

从开发能力来说:

需要类似于一个开发,进行一个框架的设计和开发,以及一个平台的设计与开发

包含前后端开发,介面设计,资料库设计,以及迭代维护和性能要求等

换言之,测试开发工程师如果只做框架和平台,那么他可以业务无关。但也不能浮空。

以上三个岗位,未必在一个公司内都会配有专职测试。例如,可以有制作框架和平台的专职测试开发,而其自动化测试的实现可以完全右移给研发来做。这个据说是google的方式,当然,我没有亲眼见过。


所有的手工测试、自动化测试、测试开发统称为测试工程师

看到楼主说的以后是希望往技术方向发展

自动化测试算是中级软体测试工程师:

那么自动化需要具备的技能如下:

UI自动化:python或java熟悉一门语言,selenium,unittest,htmltestrunner,ddt数据驱动,PO模式,UI自动化框架等。

介面自动化:requests,pytest,allure,jenkins持续集成,介面自动化框架,日志处理,错误截图等

App自动化:appium,uiautomatar,各种定位,sdk,adb命令等

测试开发:测试开发工程师还需要具备分析测试系统需求的能力,系统质量风险识别能力,要能够站在测试架构师的高度,识别出测试基础架构的需求,提出提高效率的方法。

另外,测试开发工程师需要具备非常广的知识面,因为它不仅需要和开发工程师打交道,还要和CI/CD、运维工程师有紧密的联系。除此之外,还要能对测试架构部署、生产架构部署所采用的各种技术非常熟悉。


个人理解:

测试工程师需要掌握一些基础的东西,比如测试用例、业务、软体工程、网路、伺服器、中间件、资料库等的基础技术

自动化测试需要开发语言加持,也有一些是使用测试开发开发好的工具不需要进行编码

测试开发就需要开发知识,还要有架构知识等


第一、测试工程师主要做功能测试,但是自动化测试也做,不过自动化测试不经常做。

第二、自动化测试工程师,主要是从事自动化测试,写脚本,写自动化测试框架,帮助企业全面实现自动,从而节省成本。想从事自动化必须会代码,不会代码肯定不行的,网上有免费的资料,例如腾讯课堂上面搜索自动化测试必备代码,学完之后,就可以学习例如selenium,appium等这样的工具了。

第三、测试开发工程师是测试里面的高端职位,有两个特点,1)能写代码测试代码。2)可以根据企业项目特点自己写测试工具进行测试。


首先要恭喜你,不满足于现状,勇于往自动化测试或者测试开发方向发展,能够把自身工作的天花板提的更高

我本人正是从手工测试,到自动化测试,再步入测试开发的,所以结合我自己的实践经验,给你指一条可能用得上的转岗之路

一,建议你了解一下 Windows 批处理怎么使用,从在团队中做一个自动化脚本开始

测试工程师多是在 Windows 系统中办公,批处理是一种非常简单的脚本语言,也是最容易实现自动化的

我不太清楚你工作的业务是什么,如果能提供一下的话更有针对性。拿 Android 举例好了,测试工程师需要经常跟 adb 打交道,无论是抓 logcat,还是执行一些 adb shell 命令,通过上网找现成的东西,或者你学习批处理后自己做一个工具,将你们团队里经常使用的 adb 功能封装起来,分享给大家使用,相信我,这一步之后大家对你的印象就会发生改变

二,还是根据你的业务,从 UI 自动化工具开始学习,但此时需要同步学习编程语言了

UI 自动化工具,移动端常用的是 Appium,Web端常用的是 Selenium

它们都支持多种语言,比如有耳熟能详的 Python,Java

如果你的编程语言零基础,那么就学习 Python 吧,入门非常容易

当你能基于上述框架写出一些简单的 UI 自动化交互程序后,就把你们业务中简单的 case 进行自动化实现,并在自己日常的工作中运行它们去优化自己的测试任务

同时尝试梳理出你们业务中一些简单模块下可以实现自动化的用例,少的话自己全部实现一遍,然后可以去找 Leader 提自动化的需求和设想

三,巩固你的 UI 自动化能力,至少完成一个完整项目的自动化测试实现

这一阶段,巩固你的学习成果和项目经验,便于你内部转岗或者跳槽到自动化测试

四,做分享

如果你准备好了,那么建议你在测试团队内部(最好能邀请到开发团队的人)做一次关于当前业务中自动化实施的经验分享

相信我,当年我顺利转入测试开发,靠的就是一次经验分享,被测开老大相中了(捂脸~)

五,关于自动化测试和测试开发

事实上自动化测试更偏重于使用现有的自动化技术方案,工具,去实现自动化测试用例,执行用例这样的工作,本质上在于「用」

测试开发偏重于提供自动化解决方案,工具,偏重于「造」

自动化测试对业务的熟悉程度要求更高,要更加善于运用工具去解决自动化问题

测试开发对技术,编码要求更高,能够根据自动化测试提的需求去开发测试平台,工具

BUT,有的公司不会区分得这么细致,比如阿里,他按测试开发去招人,但需要其既能开发测试平台,也能够具备测试思维去做一些测试的事

有关测试开发的更多话题,我在公号中有写到,欢迎关注:henryWoo


首先,说说测试工程师,这个我认为就是手工测试。

1.需要了解测试的基本理论知识,测试流程等。

2.需要掌握简单资料库知识。增删改查。

3.需要知道使用不同的工具提交bug色流程。

4.要学会和开发沟通的能力,这点至关重要。

5.需要会写测试用例。

6.需要会写测试报告。

自动化测试工程师需要掌握的技能

1.代码能力,不管是java还是Python。

2.如果是基于web端的,需要会元素定位的8种方法。

测试开发需要掌握的技能

1.硬实力也是代码能力。

2.会写测试框架的能力,也就是自主研发可以给测试使用的工具。

希望能够帮到你,谢谢。


我的建议是能走别的路就走别的路

高级测试成为技术专家公司级认可的人物基本没有,即使在国内华为,也基本没有,或者就是没有

转岗是必然的


推荐阅读:
相关文章