软件测试是一个付出就有回报的工作,可能很多人会说软件测试就是吃青春饭,然而其他工作又何尝不是?没有哪一家公司养尸位素餐之人,大龄员工有被辞退的,也有没被辞退的。干任何职业,抱着一劳永逸的心态,在岗位上开始混的中青年,早就该辞了。
大家都比较看好软件测试行业,只是因为表面上看起来:钱多事少加班少。其实这个都是针对个人运气好的童鞋才会有此待遇。在不同的阶段做好不同阶段的事情,才有可能离这个目标更近,作为一枚软件测试人员,也许下面才是我们最真实的写照。
测试第一阶段
我是从其他行业转行过来的,因为当时行业前景不佳,面试了大概20多家公司,屡屡失败,我开始怀疑自己的能力,非常的焦虑,甚至开始考虑要不要去跑滴滴,送外卖了,朋友劝我不要“病急乱投医”(工作强度太大,尤其是这样的工作注定不能长久),先思考接下来的(职业)发展方向。
那段时间,我想了一下自己期望的工作:
①想要找一份高薪工作
②工作具有一定的稳定性,毕竟我已经快30岁了
③适合女孩子做的工作,不要太累,加班太多
④有一定发展空间,能够提升自己的能力
另一位IT行业的朋友建议我去做软件测试,由于软件测试也是IT行业,薪资待遇比较高。
我对于软件测试没什么了解,便上网查了一下,还是蛮符合自己的期望的,便开始学习软件测试。当年也是一头撞进了软件测试行业。迫切的想要了解这个行业,它的升职模式,如何才能薪资更高。但是以过来人的经历,告诉你:做好当前的事情。把上司交给你的每一份任务都仔细认真地去完成,体现你作为一个初入职场的新人的价值。新人进去,不奢望你能够做多大的贡献,只希望交代给你的事情,不用给你擦屁股就行。
第一年,如果你每天都很积极,迫切的想要完成更多的任务,那么这一年的你将会进步最快。对功能业务逻辑的整体把握感,对的编写能力,对进度把握,这些都将会成为你以后工作的坚实基础。这一年,请打好你的基础,暂时忘记自动化代码工具这些,你没有坚实的软件测试行业内知识和接触到的一些专业名词,你拿着工具也都是徒然。
测试第二阶段
经过第一年的努力,你已经具有比较牢靠的软件测试基础,已经完成了一轮一轮的重复的手工测试,对,在这个阶段我们应该做什么?是每天上班等下班还是利用这段时间做点有意义的事情?毋庸置疑,如果你是积极向上的青年,那答案肯定是后者。
建议是:把你每天做的重复的功能测试,利用工具来做。
不建议大家过早地接触代码或者是性能这块,如果你还是职场第二年,因为你还见识得太少,根本达不到写代码和性能的这个阶段,要能够写脚本和做性能,需要你对整个测试框架和业务逻辑都有一个比较强的把握能力,否则,你做的事情,就会是无用功。就好比你学写代码,却发现自己永远停留在 print(“helloworld”)的水平;你学性能,却发现自己永远停留在录制脚本的水平。
可以接触的工具:工具/Jmeter 等,这些工具可以帮助你减少相对的劳动力,把一些重复的工作利用工具来进行。学好了用活了,下次升职加薪或者是换工作,幸运之神都不会错过你。
测试第三阶段
终于迈入了第三个年头,恭喜恭喜,还能够坚持说明你没有被这个行业淘汰。经过两年的基础打底,如果你不是混混过日子,那么你的基础会让你的工作效率大步提升,你也会有更多的时间来做的别的事情,毫无疑问还是:学习。
这个时候,我们可以尝试着接触一些代码和一些框架,把你自己所学的知识融入到你自己的项目中去。能够把自己的项目整理出一个测试框架,那么你就是对这个公司的工作是有非常大的推进作用的!
建议:学习,selenium 等。
测试第四阶段
有了代码基础后,发现你的工作量又被简化&优化了。这个时候我们应该对网站的架构,代码知识,知识,网络瓶颈,系统优化等各个方面都有了比较深入的了解,我们终于可以进一步来做了!
这个时候,我们突然明白:做性能测试不仅仅是录制脚本了!你需要去优化脚本,去设计场景,去获取目标用户量,去执行,去分析压力结果,做好这些之后,去综合分析发生性能瓶颈的是数据库优化问题,还是网络瓶颈问题还是本来的架构就存在问题?
第 N 年
未完待续…
给所有测试员的一些忠告
作为过来人,给所有测试员一些忠告:一名测试员,你真的不该只会点点点,随着体系的改变,对于现在的测试人员来说,不是自动化或者代码有多重要,而是懂自动化,懂代码,能够理解系统的实现,已经变成了必备技能。
那该如何学习自动化测试?
既然自动化测试是手工测试提升的一个必经之路,虽然自动化测试没有那么高大上,但也是必不可少的。那作为一个有理想的测试人员,应该如何去学习自动化测试呢?
(1) 准确定位自己,明确目标
有不少同学意识到了自动化测试的重要性,就去网上查询资料啊,或是报培训班学习啊,可是到最后越学越迷茫,处于会与不会之间,前路不知如何去走?这是什么原因呢?
这是因为你在学习自动化测试之前没有想明白几个问题:我的真实水平如何?如果学习一项新的技术或是语言,我愿意投入的精力是多少?从现在开始学习,三个月或是半年后应该达到什么目标?我了解现在业界的自动化测试类型或是体系吗?想好这些问题再去入手学习或培训,必定事半功倍。
(2) 全面了解,选好切入点
目前自动化测试方向大概有以下几个:
1.辅助测试脚本方向:以Shell,Python为主来简化重复的工作,过滤日志等;
2.接口自动化测试方向:Python+Unittest+HtmlTestRuner+Jenkins和Java+Httpclient+TestNG+Jenkins,当然还有很多其他二次开发的框架或工具,不过核心是一样的;
3,页面自动化方向,主要有Python+Webdrver+HtmlTestRunner+Jenkins,Java+Webdriver+TestNG+Jenkins,以
及其他的框架和工具;,
4.App自动化测试方向:以Robotium+Java+TestNG+Jenkins,
5.Appium+Java+TestNG+Jenkins,Appium+Python+HtmlTestRunner为主。
当然这里介绍的都是简单的,最基本的实现方案,作为入门学习比较合适。其他五花八门的二次开发的框架,包含众多功能的方案留待你以后提升。先从这几方面了解入手,选择一个语言体系,建议从接口自动化入后,然后再去学习页面和app。
(3) 步步为营,不要贪多
我们在提升自己的时候,发现有好多东西需要学习,于是就很着急,想同时学习很多东西,其实这并不好。学的太多容易产生混淆,而且不容易消化,你仔细调研一下就会发现,很多东西都是通着呢。代码架构,用例管理,执行策略,持续化集成思想都可以举一反三,关键是自己要动手真正实施起来,在公司现在的框架上写用例,不管你写多少,不了解整体结构都是没有用的。
(4) 抛弃工具,多用开源
业界好像从来不缺少自动化测试工具,QTP,RealobotFramework,LoadRunner等等,知名不知名的数不胜数。先不说这些工具效果如何,目前大公司是从来不用这些工具的,大家都使用开源的框架,工具进行定制化自己的测试方案。
所以刚刚学习自动化测试的时候,也不要依赖工具,使用开源Webdriver,Appium,Robotium等搭建自己的自动化测试工程。掌握一个整体的自动化工程工作原理,为以后搭建自己的自动化工程,工具,平台做准备。
不管你对自动化测试是爱,是恨,它都是从手工测试转为测试开发必经的阶段。可能你了解到自动测试没有用,实施起来维护成本高,执行效率低等负面信息,其实这不是自动化测试的问题。
要知道,它只是一个工具,一种测试方案,最终的效果还是由实施的人来决定的。在12,13年的时候,用Jenkins做持续化集成比较热门,接下来几年好像没有那么火了,但是近两年docker技术的出现,又使CI,CD变得火热起来。我们是不是应该端正对自动化测试的态度,明确什么才是你想要的,找准方法,不断提升自己呢?
如果说你在自动化测试工程师阶段还想往性能测试方面去进行发展,要求就会更多了,其实性能也是一种自动化。所以第一个你也必须要掌握一门编程语言,第二个语言脚本,第三个指标,第四个调优。
最后,自学软件测试学习方法送上:
一、Python编程入门到精通
二、接口自动化测试
三、Web自动化测试
四、app自动化测试
五、前端网页编程语言
六、测试开发DevOps体系
七、一线大厂简历制作,面试技巧
八、高阶性能测试
九、RobotFramework框架和HttpRunner
根据这个学习架构路线,不断地去摸索与提升,突破技术的瓶颈,可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。我也是走过这样一段路,才能获得更多高薪职位的机会,付出终有回报,也算是对我能力的一种认可吧,真正的证明了自己的价值。学完这些月薪30k唾手可得。
同时分享一份216页软件测试工程师面试宝典文档资料,还有相对应的视频学习教程:其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。