测试技术提升建议(必看)

去年年底开始,很多测试人员抱怨互联网寒冬来袭,抱怨找不到好工作,抱怨要求高,但是我发现,技术好的,找工作甚至找到非常不错的工作还是很轻松的。

所以,还是要自身实力强,打铁还需自身硬。

测试招聘要求发展

2010年左右,测试招聘要求大概都是熟悉测试流程,熟悉用例设计方法。

2017年左右,测试招聘要求是会代码、会自动化、会性能、会测试开发,我屮艸芔茻,基本上是全栈了(貌似就差安全了),是不是感觉做测试好苦逼啊???

近10年的招聘要求变化,说明:第一、顺应行业发展,对测试要求确实是越来越高;第二、跟风,哪怕是小公司,都是要求会很多技术,这样才能提升公司逼格,可能进去还是拧螺丝。

论测试地位 

很多测试抱怨没地位,公司不重视,开发瞧不起测试。

如果,如果你某项技术比开发强,比如能提出很有技术含量的bug,他还敢瞧不起你?根据多年的感触,90%的java开发不会jvm,甚至很多开发连linux常用命令都不会(仅本人接触的开发)

所以,要让开发不小瞧你,就要多做和开发有交集的技术测试,比如:安全、性能,而且,只要开发严格要求自己,且开发时间稍微充裕点,很多业务功能bug都是可以避免的。

有人说,那测试开发呢?说实话,论开发能力,估计除了bat的测试开发,95%的测试开发的开发能力都比公司专职开发的开发能力低。

关于功能测试

这是测试的基础,很多测试说点点点没技术含量,其实这样理解是不正确的,我觉得功能测试才是最重要的,吃透业务不易、设计高效用例也不易,至少你没听说过有公司不做功能测试吧(开发自测的也算做了)?

而且,自动化、性能、安全等测试,都是功能测试主流程稳定后才开始的(这里的开始是具体的测试执行;站在项目的角度,测试是从需求调研就开始了)。

总之,如何设计高效的测试用例还是很有技术含量的,我发现99%的测试都知道等价类、边界值,但是没几个把正交试验、因果图应用的很⑥的吧?估计有些连概念都没听说过,那就自己去百度吧,或者参考:https://www.cnblogs.com/UncleYong/p/10967497.html

讲真,不要小瞧功能测试,除了功能测试,貌似其它测试都可以工具代替了,最后,“点点点”才是不会失业的;

关于自动化测试

顺应版本快速迭代回归,但是不是每个项目都适合;

很多朋友都在深钻自动化测试,其实我觉得是没太大必要的,UI自动化成本大,我们就只做了接口自动化。自动化都是用来做回归测试的,只要基于一个框架(参考:python版接口自动化测试框架,java版还在完善中),能跑起来生成报告即可。

总之,你顶多做1-2年自动化就会深有感触,自动化后期都是复制粘贴修改脚本,没啥技术含量,而且,并不是所有项目都适合做自动化,有些自动化脚本要跑起来,需要很多依赖条件。有人说写框架有技术含量点,确实,但是哪有每天让你写框架的活?我们的框架我写好后,都很久很久没去动过了。

所以,还是多花点时间学学代码搞测试开发,或者性能,或者安全吧。另外,做自动化,推荐用python做,比较简单。

关于性能测试

互联网用户越来越大,所以性能测试越来越被重视,比如淘宝双十一,根据淘宝发布的2018双十一交易额,如果宕机1分钟,损失是1.5亿,可见,这是一笔很大的金额。

性能需要学的东西很多,总之就是架构师的知识面了,架构师精通的,你都要熟悉或者至少了解,包含各种服务器的监控、可调优的参数、基本操作,比如nginx,tomcat,mysql,redis,linux,这些都是最基础的,最难的,估计就是jvm,没几个开发会,会的基本上都是高级开发、架构师

语言推荐:python&java,我是用python造测试数据及数据库存量数据,很简单,用java,主要是现在主流的客户端并发工具是jmeter,jemter是java开发的,没有的取样器,可以自己写java实现,比如dubbo协议的接口(但是现在已经有dubbo的第三方插件了)。

性能学习路线:性能概念→loadrunner入门→jmeter提升及java基础→linux命令→各种中间件服务器定位调优。

关于性能工具,主流是jmeter和loadrunner,没有好坏之分,都是客户端并发工具而已,性能测试的重点是定位调优 

关于性能等级

有人说,我会做性能脚本,会跑并发了,我会做性能了,来看看网上有些资料是怎么说的:

  性能外行:会做简单的脚本跑并发(复杂的,比如dubbo接口这些需要写代码的,就搞不定了);

  性能初级:会性能监控;

  性能中级:会常见性能问题的定位调优;

  性能高级:会调优,性能自动化预警监控、容量规划。

关于安全测试

专业性非常高,也是最危险的,稍不注意,就进去了(感兴趣可以找认识的安全测试聊聊),正所谓:从入门到入狱;

安全要求比较高,比如网络、各种安全攻防策略,需要做安全测试的,基本上都是互联网金融,涉及到钱的,我们公司的安全测试,大版本都是找第三方专业安全公司做,小需求是自己做。

总之,不是计算机或网络专业的,不建议朝这个方向发展,否则多半会死在半路上,何必去冒这个险呢?

关于测试开发

这个概念是最近几年从bat兴起的,其实,这个概念是很模糊的,没明确的职责定义。

按照我以往的面试经验及自己的理解,测试开发就是能写代码,哪怕简单的脚本,所以,广义上说,自动化测试也算测试开发,性能测试也算测试开发(写脚本批量造存量数据,以及开发性能脚本,比如dubbo接口,需要自己写java代码,参考:jmeter5.1测试dubbo接口),测试开发基本上就是大半个全栈测试了(可能你面的测试开发,最后还会让你做功能测试)。

另外,要大公司才会有纯的“测试开发”,就是开发测试平台、测试工具的,但是纯测试开发压力相对小,提升慢,论开发技术,肯定没有专职开发强,因为不像专职开发,用到各种前沿的技术、框架。

总之,如果喜欢开发,就转开发吧,测试开发以后就是全栈测试,啥都要会(哪需要就往哪搬),是的,你没看错,不是我在吓你,这是现实,积极面对吧。不信?没关系,去招聘网站搜索,很多测试开发都是要求会性能,甚至会安全

测试开发框架推荐:django,flask,springboot。

关于测试管理

管理是一门艺术,情商不能低,但是做技术的,每天和电脑面对面,三点一线,情商普遍偏低,且管理的岗位太少,跳槽的话,如果没有技术做支撑,还是相对困难的。

关于公司的选择

找个好的平台,能施展自己的测试技术(这里并没有否定点点点功能测试的技术,我是强调要全面发展,总之都要会)。

自动化测试是每个公司都可以做的。

性能测试不是随便学点就能做好的,需要长时间的实践和积累,以及不断学习,所以,找个好的平台,给你做性能的机会。

小公司基本上是没有纯测试开发的。

关于如何学习提升

学习是痛苦并快乐的,坚持学习,每天1-2小时,日积月累,你会超越很多人。

三天打鱼两天晒网是不行的,短暂的热情也是不行的,之前群里很活跃的测试朋友,没两周就沉寂了,不要放纵自己,不要给自己找借口,什么加班忙、没时间之类的。其实,我现在还是很感谢自己曾经的坚持,有时加班回来也会学习到12点以后。

跟对人,抱紧你周围大神的大腿,有人给你解决问题,会让你更加快乐学习,否则,你迈不过遇到的坑,就放弃了,谈何提升?

测试提升圈子,欢迎加入:https://www.cnblogs.com/uncleyong/p/11751389.html

书籍推荐

市面上很多书都是大杂烩,就是啥测试内容都有,就像全栈测试的书,你看着舒服,结果都是皮毛,毫无卵用,所以,要买书,就买专项书籍。

什么是专项书籍?就是专门讲那个知识的,它讲得很深入,比如:https://www.cnblogs.com/uncleyong/p/11978650.html

如何过冬

给自己定个学习目标和计划吧,我也给自己定了总结分享计划,【目录】从测试小白到高级全栈测试(自动化 、性能、测试开发)修炼之路

为什么要总结分享呢?经过多年的学习、实践、总结,沉淀下来很多笔记,包含:功能、性能、自动化、测试开发、安全,有些知识久了不用,就比较生疏了,所以就抽时间系统整理、总结一下,分享给大家,抛砖引玉,共同进步。 

有些很基础的,也可以百度到的,为啥我也写呢?第一,越基础的,越不被重视,我发现很多人的提问都很基础;第二,为了给大家提供一站式服务的便利。 

帮助他人,提升自己知识点要写了总结,才会知道会不会,文章要推送出去了,才会反复斟酌阅读几十遍(这篇文章我已经改了几十遍了,这难道是测试的强迫症?)。

一起学习、一起进步。活到老,学到老。不要再堕落,今天的苦逼,是为了不这样一直苦逼下去!

无论时代怎么变化,只有让自己时刻保持进步的状态,才能不被社会落下;只有不断地努力,培养自己的能力,才能稳定。(摘抄自:每日经济新闻) 

另外,机遇也很重要哦。

谢谢您的阅读。

个人观点,仅供参考。

性能测试:从0到实战

https://www.cnblogs.com/uncleyong/p/12311432.html

自动化测试实战

https://www.cnblogs.com/uncleyong/p/12016690.html

原文地址:https://www.cnblogs.com/uncleyong/p/10836607.html