测试技术提升建议

上一篇 / 下一篇  2020-01-13 17:03:53

 测试招聘要求发展

  2010年左右,测试招聘要求大概都是熟悉测试流程,熟悉用例设计方法。
  2017年左右,测试招聘要求是会代码、会自动化、会性能、会测试开发,我屮艸芔茻,基本上是全栈了(貌似就差安全了),是不是感觉做测试好苦逼啊???
  近10年的招聘要求变化,说明:第一、顺应行业发展,对测试要求确实是越来越高;第二、跟风,哪怕是小公司,都是要求会很多技术,这样才能提升公司逼格,可能进去还是拧螺丝。
  论测试地位
  很多测试小媳妇儿抱怨测试没地位,公司不重视,开发瞧不起测试。
  如果,如果你某项技术比开发强,比如能提出很有技术含量的bug,他还敢瞧不起你?根据多年的感触,90%的java开发不会jvm,甚至很多开发连linux常用命令都不会(仅本人接触的开发)。
  所以,要让开发不小瞧你,就要多做和开发有交集的技术测试,比如:安全、性能,而且,只要开发严格要求自己,且开发时间稍微充裕点,很多业务功能bug都是可以避免的。有人说,那测试开发呢?说实话,论开发能力,估计除了bat的测试开发,95%的测试开发的开发能力都比公司专职开发的开发能力低,他不多蔑你几眼算你走运了。
  关于功能测试
  这是测试的基础,很多测试说点点点没技术含量,其实这样理解是不正确的,我觉得功能测试才是最重要的,至少你没听说过有公司不做功能测试吧(开发自测的也算做了)?
  而且,自动化、性能、安全等测试,都是功能测试主流程稳定后才开始的(这里的开始是具体的测试执行;站在项目的角度,测试是从需求调研就开始了)。
  总之,如何设计高效的测试用例还是很有技术含量的,我发现99%的测试都知道等价类、边界值,但是没几个把正交试验、因果图应用的很⑥的吧?估计有些连概念都没听说过,那就自己去百度吧。
  关于自动化测试
  很多朋友都在深钻自动化测试,其实我觉得是没太大必要的,UI自动化成本大,我们就只做了接口自动化。自动化都是用来做回归测试的,只要基于一个框架(参考《python版接口自动化测试框架》:https://www.cnblogs.com/UncleYong/p/10650552.html,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接口:https://www.cnblogs.com/UncleYong/p/10732754.html),测试开发基本上就是大半个全栈测试了(可能你面的测试开发,最后还会让你做功能测试)。
  另外,要大公司才会有纯的“测试开发”,就是开发测试平台、测试工具的,但是纯测试开发压力相对小,提升慢,论开发技术,肯定没有专职开发强。
  总之,如果喜欢开发,就转开发吧,测试开发以后就是全栈测试,啥都要会(哪需要就往哪搬),是的,你没看错,不是我在吓你,这是现实,积极面对吧。
  测试开发框架推荐:django,flask,springboot。
  关于公司的选择
  找个好的平台,能施展自己的测试技术(这里并没有否定点点点功能测试的技术,我是强调要全面发展,总之都要会)。
  自动化测试是每个公司都可以做的。
  性能测试不是随便学点就能做好的,需要长时间的实践和积累,以及不断学习,所以,找个好的平台,给你做性能的机会。
  小公司基本上是没有纯测试开发的。
  关于如何学习提升
  学习是痛苦并快乐的,坚持学习,每天1-2小时,日积月累,你会超越很多人。
  三天打鱼两天晒网是不行的,短暂的热情也是不行的,之前群里很活跃的测试朋友,没两周就沉寂了,不要放纵自己,不要给自己找借口,什么加班忙、没时间之类的。其实,我现在还是很感谢自己曾经的坚持,有时加班回来也会学习到12点以后。

TAG:

引用 删除 yy0595   /   2020-01-22 10:48:44
5
 

评分:0

我来说两句

Open Toolbar