lsekfe 发表于 2020-11-20 10:22:46

记一下自己对软件测试面试和进阶的理解

简单记录一下自己当前对软件测试面试和后续进阶的想法【湿货】,作为一个阶段性的总结吧。
  1.最重要的能力
  我认为是代码能力和搜索能力。
  最终是要进阶成为性能、测试开发、自动化、架构师等专家级别的,而不是一个点点点的小学生,代码能力终究绕不过。
  B站教你学python的那么多,随便找一个搭个环境走一遍应该都能搞懂。
  或者买两本畅销书,跟着把项目做完,基本也入门了。
  所以这件事情,不能有借口,不要想绕开。
  面试了一些人如果做了3-5年以上测试还没有基本的代码能力,一般直接不考虑了。
  有些只有一两年测试经验的人,他有代码能力,一般都有搜索能力,也就是说,他在解决问题的过程中会不自觉积累到很多小知识点,
  如果突然问起来,这些看起来经验少的同学会答得更好。
  比如问Python数据类型,列表元组的区别,就会跳到内存使用的区别,问到内存可能就问到进程和线程的区别,然后多线程怎么实现,
  面试官问的问题很多可能很随机,但是也可以从一个细微的点起来串连到一起。
  我现在的问题是眼高手低,感觉不难但是单独写的话又耐不住寂寞,不能静下心来Debug。
  立个flag,所以后面会跟着大神把这个python教程学完。
  jackfrued/Python-100-Days
  Java的话,主要是长期不看手会生疏。后续没事在leetcode做下题目,然后把Java-WEB的Spring框架从头到尾梳理一遍,美化一下个人网站;
  同时可以写写个人博客,做做积累。
  2.测试思维如何练习
  测试入门简单,给你一张纸,是个人都能说出一些测试点。
  那么怎么提高测试思维?
  一般根据业务场景来,有序发散,自己把测试点按照思维导图全部写好,再对照顶尖测试的思路对比差距;
  包括功能、性能、可靠性、安全等维度,也是一个磨刀的过程,练得越多,就越厉害,后面都是熟能生巧。
  3.DB/Linux、shell/网络等基础
  DB的话,常用数据库,百度搜一下数据库知识大全即可,除了增删改查,你能说出数据库优化的一些方法,当然是加分项;
  还能聊数据库引擎,PL,事务游标,锁这些内容的话,那就差不多了。
  当然我现在做的是数据库的专项测试,对数据库的理解需要更深入,从《精通Oracle SQL》学起,到《高性能MYSQL》。
  Linux只会简单命令可能还不够,需要自己搭建测试环境,包括写shell脚本。
  只会简单命令的话,稍微问一下,怎么查看端口是否被占用,怎么搜索日志关键字再统计个数都不清楚,那肯定不行。
  网络的话,除了TCP/IP原理,要能说下Post/Get的区别,Cookie/Session区别,安全防范的一些方法等。
  比如你如果经常使用postman做接口测试,却说不出这些区别,显然平时没有花心思。
  4.性能
  单独列一项,是加分项。
  之前做过的服务器性能测试,关注指标是并发数之下的服务器资源使用情况,有问题的话,
  可以从单个进程入手分析原因,可能涉及到数据库层面的调优。
  Web性能测试的话,关注指标略有不同,我理解最主要关注RT/TPS这些指标。
  很多人说到性能就说Jmeter,其实并不一定是要用Jmeter,不过要清楚性能测试的目的,测试思路,定位问题的方法等等。
  5.其他
  要想成为更厉害的人,上面这些做到精通估计还不算,
  后面要学的东西,比如Jenkins对于自动化来说太有用了。Git也要熟练才行。
  操作系统层面,看下《操作系统导论》
  还有算法,每一种数据结构占用的内存都不一样,使用方法都有区别,性能的话需要考虑时间复杂度、空间复杂度等等等等
  如今的测试种类五花八门,我再不学就要被淘汰了。
  当然先要抓住核心能力,再发散,即有根基之后,再添砖加瓦。
  勿在流沙筑高台,共勉。

zgfy+++ 发表于 2020-11-24 10:14:52

感觉看到了自己该努力的方向。
页: [1]
查看完整版本: 记一下自己对软件测试面试和进阶的理解