关于职业规划,自动化测试和软件开发你该如何选择?

Posted 软件测试小dao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于职业规划,自动化测试和软件开发你该如何选择?相关的知识,希望对你有一定的参考价值。

因为我是做测试开发,对测试了解更多一些,我先说下测试方向。

国内目前的很多公司,所进行的测试拥有一种非常危险的倾向,整个测试类似于赌博:

比如一些公司的测试每天就不做测试,主要任务就是不停的写各种各样的test framework。

为什么会这样,因为这样可以加上冠冕堂皇的理由:提高测试效率!这样年底汇报OKR好看了,老板也喜欢了。

但是这样造成的后果就是:大量的测试框架构建工作占用了太多的计划的时间,自动化率提高了,但是整个测试却没有重点。一些测试甚至不知道自己测试的覆盖点和资源要求,也没有文档。所以千万不能为了自动化而去自动化。

从这里也可以看出,很多公司对于自动化测试的理解并不是很深。

如果你遇到了一个外行的领导,可能自动化会搞得一塌糊涂

测试经理或者测试总监在引入自动化之前,不能简单化和孤立化的去看待自动化测试,不能粗暴的幻想引入自动化一定能够提高效率,减少成本,因此一定要思考好3个问题:

不是所有的项目都适合直接引入自动化测试
应该在什么时间介入自动化测试
最终项目的自动化程度和自动化率

什么样的项目适合自动化:回归测试为主的项目,长期需要做支持维护;覆盖率测试;压力测试。

自动化测试介入的时间:在项目的初期可能就不太适合,因为接口和用户界面没有稳定,代码来频繁改动,维护成本会非常的高;到了项目的后期和维护阶段,自动化介入,为回归测试做准备。

自动化程度和自动化率:项目早期可能不太适合用自动化,但是可以选用某些环节,比如环境的搭建、稳定的公用接口、软件的部署等,这些都是比较稳定的。当然也可以根据具体的项目类型进行不同的调整。

如果管理层在没有思考过这3个问题就盲目引入自动化测试,说明在领导认知层面是存在一些问题的:

1、盲目幻想,认为自动化测试能够省钱,想着搞起来自动化,省掉多少多少人力成本;

2、不清楚自动化测试目标是什么,对于达到目标所要进行的投入也没有计划;

3、自动化测试如果做的成功的话,是可以节省成本和提高产品质量,但是却把节省人力成本当做核心目标,这样的对于项目来说是致命的;

4、自动化测试写好一次,能够用很多次,没有必要花很多时间去改代码;

如果有这种情况出现,说明你遇到了一个啥也不懂外加异想天开的领导。

当然我自认为我不是开发领域的大牛,所以对于开发方向,我不做具体分析,但是可以给你具体的建议:

1、如果你是计算机相关专业的学生,建议选择开发方向;

2、如果不是计算机相关专业,但是你现在是大二或者大三开始自学,建议是选择开发;

3、如果你已经有了一定的语言基础,且掌握的不错,建议也是开发方向。

相反的,如果你是:

1、学习编程语言比较困难,掌握比较慢,难以达到比较深的程度,建议选择测试;

2、有一定的经济压力,转行的需求比较迫切,建议选择测试;

3、想快速进入IT互联网行业,但是基础不好,可以选择测试入手。

但是测试相对于开发更容易入手,不意味着不接触代码,或者以后没法转为开发,后续的自动化测试以及测试开发,都需要较强的代码能力,所以测试的要求并不会比开发更低。

如果你根据自身条件,最终选择自动化测试作为你的发展方向,我有一些过来人的经验送给你:

一、先学习编程语言,然后再接触自动化工具。

语言选择上Java或者Python都是可以的,可以先从Python入手,之后再开始Java。在学习语言的过程中,一定要忘掉你是做测试的,把自己当成开发,系统的去学相关的编程知识,因为语言水平的高低,很大程度上就决定了自动化水平的高低。

二、打好基础,而不是本末倒置的学习自动化测试工具

不理解http协议,就不会理解loadrunner、fiddler、soapUI这些工具;不理解html,就不会理解firebug。所以基础打好了,才会事半功倍。

三、清晰的认清自己,明确自己的目标

说白了,咱干什么事情之前肯定要先看看自己有几斤几两对吧,先评估一下自己现在的能力水平,然后再看下自己能够投入什么样的资源(精力、时间、资金)去学习,这样才会知道什么样的内容自己能够搞明白,哪个阶段要请教大牛,别整到最后越学越迷茫;其次就是认清自己能力之后,就要给自己定好合理的目标,多长时间达到什么样的水平。

四、选择好切入点,设计好对自己帮助最大的方案

接口自动化:Python+Unittest+HtmlTestRuner+Jenkins和Java+Httpclient+TestNG+Jenkinsweb

自动化:Python+Webdrver+HtmlTestRunner+Jenkins,Java+Webdriver+TestNG+Jenkins

APP自动化Robotium+Java+TestNG+Jenkins,Appium+Java+TestNG+Jenkins,Appium+Python+HtmlTestRunner

辅助测试脚本:以Shell,Python为主来简化重复的工作,过滤日志等

当然这些都是基本的实现方案,别的先不介绍。如果刚开始接触,我建议是选择语言之后,然后从接口测试入手,然后再学习web和APP自动化。

五、贪多嚼不烂,学会举一反三

新手上路,容易着急,啥都想学,这样就容易混淆,也不好消化。很多地方都是相通的,代码架构、用例管理、等都可以举一反三,既可以提升你的学习效率,也不会混淆。最重要的是不能纸上谈兵,一定要动手去实践。

六、不要受限于工具,多用开源

在测试行业,自动化测试工具有很多,但是大公司趋向于用开源的框架和工具,然后定制适合自己的测试方案。学着用一些开源的例如Webdriver, Appium等去搭建自己的自动化测试工程,然后掌握整体的自动化工作原理,为以后能够搭建自己的工具平台做准备,毕竟搞定自动化,可不是会使用几个工具那么简单。

自动化测试的最高境界:开发测试工具、设计自动化框架,让别人用

写在最后:

无论你在测试团队中是什么样的身份,无论你对于自动化测试是什么样的认知,也无论你对自动化测试是爱还是恨,自动化都是你从手工测试转为测试开发的必经之路。

或许你会听到自动化测试成本高、效果差、效率低等负面的反馈,但你要清晰的知道,这都不是自动化测试的问题,对于某种工具,某个方案,最终的效果还是由实施者来去决定的。

我们能够做到的是正视自动化测试,找准方法,不断的提升自己!

明确了具体的进阶路线,那就给自己半年到一年的时间,沉住气,狠狠的朝着这个方向努力一把!

干货分享

下面是一些配套的资源,希望能帮到大家

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师走过最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底

关注我的微信公众号【软件测试小dao】免费获取~

我的学习交流群:644956177 群里有技术大牛一起交流分享~

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

以上是关于关于职业规划,自动化测试和软件开发你该如何选择?的主要内容,如果未能解决你的问题,请参考以下文章

关于强引用软引用弱引用幻象引用,你该如何回答?

开发完 iOS 应用,接下去你该做的事

关于贪心算法,你该了解这些!

Bash vs Python:你该使用哪个?

关于MPI-IO,你该知道的

关于一个项目开发的具体环境的选择