测试技术提升建议(测试必看)
去年(2018)年底开始,很多测试人员抱怨互联网寒冬来袭,抱怨找不到好工作,抱怨要求高,但是我发现,技术好的,找工作甚至找到非常不错的工作还是很轻松的。
所以,还是要自身实力强,打铁还需自身硬。
测试招聘要求发展
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接口),测试开发基本上就是大半个全栈测试了(可能你面的测试开发,最后还会让你做功能测试)。
另外,要大公司才会有纯的“测试开发”,就是开发测试平台、测试工具的,但是纯测试开发压力相对小,提升慢,论开发技术,肯定没有专职开发强,因为不像专职开发,用到各种前沿的技术、框架。
总之,如果喜欢开发,可以考虑转开发,测试开发以后就是全栈测试,啥都要会(哪需要就往哪搬),是的,你没看错,不是我在吓你,这是现实,积极面对吧。不信?没关系,去招聘网站搜索,很多测试开发都是要求会性能、自动化等。
测试开发框架推荐:spring、springmvc、springboot。
关于测试管理
管理是一门艺术,情商不能低,但是做技术的,每天和电脑面对面,三点一线,情商普遍偏低,且管理的岗位太少,跳槽的话,如果没有技术做支撑,还是相对困难的。
关于公司的选择
找个好的平台,能施展自己的测试技术(这里并没有否定点点点功能测试的技术,我是强调要全面发展,总之都要会)。
自动化测试是每个公司都可以做的。
性能测试不是随便学点就能做好的,需要长时间的实践和积累,以及不断学习,所以,找个好的平台,给你做性能的机会。
小公司基本上是没有纯测试开发的。
关于如何学习提升
学习是痛苦并快乐的,坚持学习,每天1-2小时,日积月累,你会超越很多人。
三天打鱼两天晒网是不行的,短暂的热情也是不行的,之前群里很活跃的测试朋友,没两周就沉寂了,不要放纵自己,不要给自己找借口,什么加班忙、没时间之类的。其实,我现在还是很感谢自己曾经的坚持,有时加班回来也会学习到12点以后。
跟对人,抱紧你周围大神的大腿,有人给你解决问题,会让你更加快乐学习,否则,你迈不过遇到的坑,就放弃了,谈何提升?
提升方式推荐:https://www.cnblogs.com/uncleyong/p/14148118.html
书籍推荐
市面上很多书都是大杂烩,就是啥测试内容都有,就像全栈测试的书,你看着舒服,结果都是皮毛,毫无卵用,所以,要买书,就买专项书籍。
什么是专项书籍?就是专门讲那个知识的,它讲得很深入,比如:https://www.cnblogs.com/uncleyong/p/11978650.html
如何过冬
给自己定个学习目标和计划吧,【目录】从测试小白到高级全栈测试(自动化 、性能、测试开发)修炼之路
个人观点,仅供参考。
最新:【职业规划】测试提升:你是选测开?自动化?性能?还是安全?语言选python还是java?(看完恍然大悟)
详见:https://www.cnblogs.com/uncleyong/p/11995605.html
【热门测试技术,自学提升推荐】自动化、性能、测开、项目实战、简历、笔试面试、职业规划
__EOF__
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!