先简单说下,涵哥是某不知名 985 的本硕,17 年毕业加入字节,以“人员优化”的名义无情被裁员,之后跳槽到了有赞,一直从事软件测试的工作。还差一个月也6年了吧,算是在这行的资深划水员。6年的时间也让涵哥从一个刚入行的懵懵懂懂也变成了如今的老油条,对于划水也是相当的有经验。
我前几天在网上看到有人这样说的:“有多年外包岗经验,入场后,可以快速融入环境,不吃公司零食,不喝公司饮料,与甲方同事相处融洽,不跟甲方同事共同午餐,不参加甲方异性同事的邀约,加班自带电源加班经验丰富,曾一个月内多次出差到甲方公司进行现场解决问题,随时半夜起床配合需求更改进行升级。先后入职中软国际,武汉佰钧成,文思海辉等企业,先后被外包至工商银行,农业银行,招商银行,华为,腾讯等企业工作。已个人购买加班猝死商业保险猝死无需甲方乙方或任何签约公司赔付,多次被甲方公司评为“外包之星”,看了之后有点好笑又心酸,目前这个环境没学历没技术的真心难。
所以我结合涵哥和其他前辈的经历总结出了一些还算实用的经验,有些是自己领悟到的,有些是跟别人交流学到的,在这里跟大家分享一下。
保持良好的学习习惯和对技术的热情
如果我们积极学习,保持技术能力、知识储备与工作年限成正比,到了 35 岁也不会有什么焦虑,这样的大牛我觉得各大公司都会抢着要吧?但是学习这件事,其实是一个反人类的过程,这就需要我们强迫自己跳出自己的安逸区,主动学习,保持技术热情。
如果你是刚毕业的,那要利用好这一段时间,这个时间段往往你很空闲,刚好是努力学习技术的好时候。你要借助这段时间夯实基础,培养出良好的学习习惯,保持积极的学习态度,这会让你受益终身的,至于该如何高效率的学习,如下:
(一)调整好心态
心态是一个人能否成功的关键,如果不调整好自己的心态,是很难静下心来学习的,尤其是现在这么浮躁的社会,大部分的程序员的现状就是三点一线,感觉很累,一些大龄的程序员更多的会感到焦虑,而且随着年龄的增长,这种焦虑感会越来越强烈,那么唯一的解决办法就是调整好自己的心态,要做到自信、年轻、勤奋。这样的调整,一方面对自己学习有帮助,另一方面让自己应对面试更从容,更顺利。
(二)多读Bug
平时多与同事沟通,抽出部分时间去阅读同事提出的bug,了解同事找出bug的过程 。从别人找到Bug的经验中可以学到很多东西,也能提高自己的观察力。
(三)设计你的测试
无论是寻找边界值,运用组合技术,画图表,或创建测试模型,把你的想法放进你的测试设计中总是有用的。在试探性测试的时候,有意识地去交替你的测试计划和产品学习,不断尝试找到更简便更适用的方法。
(四)时间挤一挤,制定好计划
一旦下定决心要提升自己,那么再忙的情况下也要每天挤一挤时间,切记不可“两天打渔三天晒网”。另外,制定好学习计划也是很有必要的,有逻辑有条理的复习,先查漏补缺,然后再系统复习,这样才能够做到事半功倍,效果才会立竿见影。
(五)持续学习技术知识,更新自己的知识储备
学习对每个人来说都应该是一个持续的过程,毕竟时代在不停的发展。如果停止学习,原地踏步,那么很容易就会成为被拍在沙滩上的前浪。对于测试人员来说也是一样,想要成长,不落后于人,就得一直学习新知识,掌握新技能。而且互联网时代,获取知识的渠道也异常的丰富和便捷,视频课程、公开课、各种资源种类繁多。跟上行业的发展,才能不被行业所淘汰。
要及时交流反馈
我当初刚入职的时候,基本就是 leader 给分配什么任务就把本职工作做好,然后就干自己的事了,几乎从来不主动去跟别人交流或者主动去思考些能帮助项目发展的点子。自以为把本职工作保质保量完成就行了,后来发现这么做其实是非常不够的,这只是最基本的要求。
而有些同学的做法则是 leader 只需要同步一下最近要做什么方向,下面的一系列事情基本不需要 leader 操心了 ,这样的同学我是 leader 我也喜欢啊。入职后经常会听到的一个词叫 owner 意识,大概就是这个意思吧。
在这个过程中,另外很重要的一点就是及时向上沟通反馈。项目进展不顺利,遇到什么问题,及时跟 leader 同步,技术方案拿捏不准可以跟 leader 探讨,一些资源协调不了可以找 leader 帮忙,不要有太多顾忌,认为这些会太麻烦,leader 其实就是干这个事的。
如果项目进展比较顺利,确实也不需要 leader 介入,那也需要及时把项目的进度,取得的收益及时反馈,自己有什么想法也提出来探讨,问问 leader 对当前进展的建议,还有哪些地方需要改进,消除信息误差。做这些事一方面是合理利用 leader 的各种资源,另一方面也可以让 leader 了解到自己的工作量,对项目整体有所把控,毕竟 leader 也有 leader,也是要汇报的。
可能算是大家比较反感的向上管理吧,有内味了,这个其实我也做得不好。但是最基本的一点,不要接了一个任务闷着头干活甚至与世隔绝了,一个月了也没跟 leader 同步过,想着憋个大招之类的,那基本凉凉。
面试宝典
我也为大家整理了一套最新的软件测试系统学习教程,包括测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、Python基础、Selenium相关、性能测试、LordRunner相关等,【点击文末小卡片免费领取】
一、软件测试基础
软件测试的步骤是什么?
如何录制测试脚本?
应该考虑进行如何测试的测试方法
怎样估计测试工作量?
测试设计的问题?
当测试过程发生错误时,有哪几种解决办法?
测试执行的问题?
如何提高测试?
C/S模式的优点和缺点
B/S模式的优点和缺点
…...
二、Linux
grep和find的区别? grep 都有哪些用法?
查看IP地址?
创建和删除一个多级目录?
在当前用户家目录中查找haha.txt文件?
如何查询出tomcat的进程并杀掉这个进程,写出linux命令?
动态查看日志文件?
查看系統硬盘空间的命令?
查看当前机器listen 的所有端口?
…...
三、Python
统计python源代码文件中代码行数,去除注释,空行,进行输出?
python调用cmd并返回结果?
1,2,3,4 这4个数字,能组成多少个互不相同的且无重复的三位数,都是多少?
请用 python 打印出 10000 以内的对称数(对称数特点:数字左右对称,如:1,2,11,121,1221 等)
给定一个整数 N,和一个 0-9 的数 K,要求返回 0-N 中数字 K 出现的次数
判断 101-200 之间有多少个素数,并输出所有的素数
一个输入三角形的函数,输入后输出是否能组成三角形,三角形类型,请用等价类- 划分法设计测试用例
…...
四、数据库
你用的Mysql是哪个引擎,各引擎之间有什么区别?
如何对查询命令进行优化?
数据库的优化?
Mysql数据库的操作?
优化数据库?提高数据库的性能?
什么是数据的完整性?
…...
五、抓包与网络协议
抓包工具怎么用?
如何抓取https的包?如何抓取手机的包?
请求方式有哪些?
get跟post请求的区别?http跟https的区别?
......
六、接口测试
什么是接口?
如果模块请求http改为了https,测试方案应该如何制定,修改?
常用HTTP 协议调试代理I具有什么?详细说明抓取HTTPS协议的设置过程?
描述TCP/IP协议的层次结构,以及每一-层中重要协议
接口产生的垃圾数据如何清理?
依赖第三方的接口如何处理?
测试的数据你放在哪?
什么是数据驱动,如何参数化?
…...
七、接口自动化
为什么做接口自动化?
你写了多少接口自动化用例?
比如说你接口的请求参数需要加密处理的,你们用的是什么加密方式,你加密怎么处理的?
你查询出来返回结果是密文,密文你怎么测试?
......
八、UI自动化与app测试
ui 自动化怎么测试?
自动化测试环境的搭建是怎样的?
seleniun 库中用过哪些函数?
定位元素的8个方法是什么?
css 定位的方法?
adb 的作用是?
App 稳定怎么做的? Monkey怎么用p (App 稳定测试 )?
App 弱网测试怎么做的?
......
九、Pytest框架与Unittest框架
Unittest 框架有哪些组件?
Unittet st 框架如何使用?
pytest 框架如何去生成测试报告?
bytes 如何去运行多个文件或者整个目录?
pytest 框架如何去运行上次失败的测试用例?
pytest 运行用例,用例命名规则有哪些?
......
十、性能测试
你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?
服务端性能分析都从哪些角度来进行?
如何理解压力测试,负裁测试以及性能测试?
如何判断是否有内存泄漏及关注的指标?
描述软件产“生内存泄露的原因以及检查方式。(可以结合- 种开发语言进行描述)
简述什么是值传递,什么是地址传递,两者区别是什么?
什么是系统瓶颈?
…...
十一、人力资源
你的测试职业发展是什么?你自认为做测试的优势在哪里?
为什么我们应该录取你?
请谈谈你个人的最大特色。
一个测试工程师应具备那些素质和技能?
为什么选择测试这行?
如果我雇用你,你能给部门带来什么贡献?
…...
整份文档一共有将近 200 页【点击下方小卡片免费领取】,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!