作为一个从嵌入式转行入坑互联网一年的测试小白,最近几位同学问我关于转行的事情。回顾这一年的工作和学习,收获颇丰,每天都在学习。下面就来谈一下我的体会……
一、技术栈
这个应该是找我咨询的同学最关心的问题了,找工作应该准备那些东西?。以下这些是都要学习的,面试的起点,基础的基础……
Linux
- 基础的基础的基础,不多说,推荐《鸟叔的Linux私房菜》。
数据库
- Mysql、Oracle
- 增、删、改、查
- 左联,右联,内联
- 函数
- ACID特性
网络基础
- http协议、报文结构、三次握手、四次挥手
- 网络:http/https tcp/ip https缺点(流量大30%),为什么要用;
- 状态码:200-205,300-305,400-405,500-505;
- tcp和udp的区别;Get和Post的区别;session和cookie;HTTPS和HTTP
- socket
- 长链接和RPC的区别(RPC就是发起的一次网络请求,长链接保持链接)
算法
这个工作中可能不会经常用到,但是面试很容易被问到。
- 八大排序算法(快速、冒泡),不增加内存的算法
- 链表:是什么 结构体 指针 判断是否有环
- 链表和数组的区别:查找、删除、新增
- 树:深度索引,广度索引
测试工具
以下每个类型掌握一个就可以了,不需要全部都会。
- 接口测试:jmeter(jmeter原理 优缺点 主要用来做什么 遇到什么困难)
- 抓包工具:fiddler、postman、Charles、
- 压力测试:jmeter
- 测试框架:selenium、appium、junit
- 版本管理:Github、GitLab
代码能力
java是基础,最好能学一些python,HTML什么的有时间最好也了解一下……
- java
- 计算机内存:堆(顺)栈(逆)
- java虚拟机的原理,垃圾回收原理,内存是怎么管理的,缺点是什么,优化的方式
- java垃圾回收算法(GC),根和节点,标记,安卓卡的原因
- 内存管理方式:OC的缺点,A引用B,B应用,会造成内存泄漏,无法解决,人为避免;GC,从根节点到叶子节点遍历,不会有引用循环。
- ant、maven
- python
工具推荐
- 数据库:DataGrip、navicat Prenium
- 文本工具:sublime、notepad++、
使用window请务必放弃【文本文档】编辑器,会产生各种格式、编码等问题。
- 思维导图:Xmind、mindManager、
- IDE:IntelliJ Idea(社区办即可)、VScode
测试理论
- 自动化怎么和手工结合
- 手工:主要用来发现功能缺陷;细致的定位问题
- 自动:主要是保证产品主体功能正确完整;定位在冒烟测试和回归测试
- 项目相关的
- 测试基本技能相关:用例、脚本、测试框架unittest
- 主流浏览器的区别
- chrome最主要的一个是它的内部设计,多标签,每个标签使用独立的 Windows 进程,任何一个标签的崩溃不会影响到别的标签,在先进多核系统中,这些标签或窗口运行十分流畅。
- Firefox最吸引人的地方是它庞大的第三方扩展库,这使 Firefox 变成一个平台。
二、面试
以上的内容准备的差不多了,就可以找一些公司面试,几次下来就知道自己欠缺什么,再去补就好了。不要不好意思,被问住是正常的,反正谁都不认识谁,以后也没啥机会见面。按照队友的话来说,面试老师的时间比我们的时间贵多了,交流的越多赚到越多。
至于公司的选择嘛,也不要一开始就盯着BAT;大公司固然好,但门槛也高,还是先积累一些经验比较重要。面试经验足够了,再去试试BAT成功概率也高一些,并且尽量找朋友内推。
之前面试的时候也积累了好多面试题,以后有时间会慢慢更新上来……
三、工作状态
关于加班
晚上九点下班应该是常态吧,毕竟上班也比较晚。大多数公司氛围还是比较轻松的,其实工作做完就可以走。那为啥还九点下班呢?
- 白天都在支持别人的工作,晚上才有时间处理自己的事情。
- 自学,提升自己能力。
- 项目deadline,或者处理线上问题,这种情况通宵也是有可能的。
- 晚上6点半开饭啊,8点发水果啊,9点有宵夜而且打车报销啊…………
- 也不排除领导不走不好意思走的情况…………
- 有时候是项目难度太大,质量不行只能演苦肉计,没有功劳有苦劳啊~~
总之呢,周末能双休我就已经很开心了~~~
持续学习
学习是一件持久且全靠自觉的事情,需要用到什么自己去学就好了,官网、论坛经常逛一逛。没人能告诉你要学什么、该学什么、以后哪个方向会火,所以深度广度都要有。况且还有KPI的压力,不进则退啊。
更多内容,请前往个人博客