小公司“混”的3年,我认真做了5件事,真的受益终生
目录:导读
功能测试很重要但不值钱
自动化测试在小公司没市场,但是你得会
给自己的一些忠告
第一件事:分清阶段,制定计划
第二件事:梳理知识,重新学习
第一阶段 测试基础
第二阶段 工具学习
第三阶段 代码学习
第三件事:勤写博客,多做笔记
第四件事:社群互动,拓宽圈子
第五件事:懂得复盘,准备面试
总结
2月末了,多么浓重的月份啊。23新年也结束了,一时间不禁想着高考结束大学毕业,再转眼从事软件测试工作已经3年了。想想当初,培训老师口中的朝阳行业软件测试,到现在依旧朝阳,只能呵呵。
先说说博主自己,由于他腹黑阴险狡猾,不做测试挺可惜的,所以四年前毅然选择了软件测试这个行当,要说后悔,基本没有,唯一遗憾的是当年应该先去做两年开发再去转测试恐怕是更好的选择吧。所以这里给新人或者入行不久的同行一个忠告:无论是从薪资晋级的角度,还是更好地理解软件生命周期这个角度,先从事两年左右的开发都是一个更好的选择。不过当你选了开发做了两三年之后,估计很少有人再转测试吧,毕竟测试没有开发具有“钱景”。
再说说软件测试这个行业。博主入行3年多,做了2年的手工测试,近1年的自动化测试,还有目前做了大概半年多的性能测试。总结来说说吧。
功能测试很重要但不值钱
最重要并且最不值钱(这里的值钱指的是值多少工资,并不代表做这件事的价值)的是手工测试,实际上手工测试是最具有价值的测试,95%以上的bug都是手工测试发现的;在很多开发的眼里,手工测试只是每天跟着文档这里点点那里点点,没有什么技术含量。这是由于手工测试人员的入门门槛低造成的。这类手工测试人员业务熟了,经验丰富了可能会成为某个行业的专家,也可以向着BA的方向发展,但是起点低造成了很多人根本走不完这条路就离开测试这个行当了。前些天看到的一个比方:每天走路上班,会发现更多的美景,甚至是可以驻足,但是你可能迟到;而如果坐地铁,每天都是一样的路线,你可以准时准确地到达目的地,但却失去了过程中的细节。走路上班说的是手工测试,可以更多的关注细节;而地铁上班则说的是自动化测试,可以准确地进行迭代,周而复始,却无法发现新的东西。
自动化测试在小公司没市场,但是你得会
最没有市场的应该是自动化测试。原因很简单,多数规模中小的软件公司,所开发的软件的规模或者迭代周期都不会很长。而自动化测试的长处恰恰却在对长迭代周期的项目可以起到节省人力物力的作用。当然我说的没市场也只是局限在国内的中小规模的公司,很多大公司对自动化测试还是有需求的,并且这些人的待遇也普遍比手工测试高不少,很简单的原因就是他们是会写程序的。所谓自动化测试,也就是写一个程序去测另一个程序。所以如果你是个自动化测试工程师,那么一些小公司还是不要去面试了吧。
关于性能测试,我能说的不多。半年多的光景一共做了十多个项目。有一点可以肯定的是,性能测试对一个测试人员的综合素质要求是最高的。打个不大恰当的比方,如果说开发是个实体类,具备各种解决问题的方法,那么性能测试人员应该算是个抽象类,有各种抽象接口跟方法,他不必知道具体如何实现,但是他得知道有那么回事。
给自己的一些忠告
要学好英语,作为一个测试,外资企业始终是个比较好的归宿,毕竟国内还没有那么重视测试,当然也不排除国内的电商巨头之类的。
多充电。我有每天浏览软件测试的招聘的习惯,基本上每个招聘要的技术都不一样,所以作为一个测试,要多留些接口,即使是抽象的。
作为一个测试,要有开发的芯,但是却不能有开发的心。说白了就是你要有开发的技术(虽然不可能比开发更专业),但却不能有开发那种薪水的心,如果你太过计较薪水了,真的很难耐心做好测试。说多了都是泪。
作为测试人员,专业是最最重要的一个素质,所以不管心情怎么样,薪水怎么样,只要去上班,那么就人模人样的保持专业。
第一件事:分清阶段,制定计划
从我大学之后,我清晰到自己的现状,也明白要想改变自己的人生,那就要懂得去规划。所以,从我实习工作开始,就已经对自己的职业生涯开始进行了一个规划,而我的规划很清晰地分成了几个阶段,也把每个阶段的目标和重心确立了下来。
第一阶段:0~3 年;我给自己的第一个时间就是 3 年时间,3 年完成第一次跳槽,而且需要跳到更大的平台。
第二阶段:3~7 年;确立自己的发展方向,自动化测试工程师、测试开发、性能测试 或者安全测试均可,但我知道,无论是朝哪个方向发展,技术知识的储备一定要系统完善。
第三阶段:7~未来;这个阶段,我应该完成了自己的发展方向,这个时候需要思考人生,或者继续自己的爱好,享受生活,也或者开始进行创业。
第二件事:梳理知识,重新学习
在唯品会的三年里,我为跳槽做准备,也为第二阶段的发展方向做准备,所以梳理自己的知识,让自己重新开始学习。这三年里,我从未落下过提升自己,自己的学习方向也是按照自己梳理出来的知识路线进行的,一步一步,有条不紊。
第一阶段 测试基础
测试基础是软件测试最重要最加分的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。
最好是学到什么程度呢,最好是能够理解,能有自己的话表述出来
毕竟面试初级测试的时候,问的问题都是从基础理论上进行考核的。
那测试基础有哪些内容呢?
测试的定义、测试的分类、测试的方法、测试的生命周期。
测试计划、测试方案、测试策略、测试用例的编写。
BUG的分类、BUG的六要素、BUG的生命周期、BUG的定义.
测试和开发流程的关系、瀑布流、V字形、W字型(双V)、螺旋型、敏捷等等。
PDCA、5W2H等分析管理的方法
质量管理体系CMMI(了解)
嗯,大概就是以上的内容吧,以上全部都是理论和文档能力、只要你肯背、肯写,都是能独立的掌握的。
第二阶段 工具学习
软件测试的基础学完了过后,应该学习工具了。
其实学工具真的很容易,所以大家不用去纠结工具的选择。
把最基础的几个工具学习了就行了,以后用到什么工具就去学什么。
在这个阶段,学习工具什么的,重点在于接口测试的学习,所有的工具的学习,都是在为了接口测试的学习做铺垫。
下面我会列出需要学习的工具和知识点,按顺序学习就好。
简单的网络协议:TCP/UDP,HTTP/HTTPS
Linux的基本操作和常用指令。
MySQL数据库的基本操作和常用sql语句。
fiddle抓包工具的使用。
postman接口测试工具的使用。
jmeter和loadrunner性能测试工具的使用。
第三阶段 代码学习
OK,学完了以上两个部分,恭喜你,你已经是一个出色的初级测试工程师了。
接下来,你要考虑你的发展方向了。
是成为一个自动化测试工程师呢?
还是性能测试工程师呢?
还是安全测试工程师呢?
啊!这个问题好难!我也不知道该怎么选。
反正我啥都会一点,哪个岗位都能去面一面。
关于方向的选择,看我的这篇文章。
嗯,相信你心中已经有了答案了,那我们继续往下面说。
这个阶段,我们应该学习代码了,关于编程语言的选择,我推荐python。
还有数据库也是必须掌握的!在工具篇的学习里,我认为你已经可以掌握数据库的相关的应用 了!
所以现在各位可以去学习编程语言了,
不过不用像开发那样,学的那么深入。
比如Java。 python的话也是一样的(python现在变成主流了)
总之前期你两者二选一的学习就OK了。建议是学习python
啥?你问我学的啥。
我当然是两种都会啊。
哈哈哈哈哈哈哈,惊不惊喜!意不意外!
第三件事:勤写博客,多做笔记
合格的开发人员一定是要养成良好的学习习惯和工作习惯的,程序员为什么要勤写博客,多做笔记?理由很简单:
整理思维、加强理解。
方便未来、回顾复习。
记录成长。
锻炼写作文字组织能力。
跟其他人反馈、互动,别人会发现一些你发现不了的问题,提升你的思维。
第四件事:社群互动,拓宽圈子
人脉的重要性,相信每一个工作的社畜心里都清楚,而我们开发者同样也需要积累自己的人脉。所以,在唯品会的三年里,我并未只是早出晚归,整天对着电脑工作,我会利用自己的剩余时间,去参与到一些社群里,与同行交流,参加一下线下的会议或者活动是我比较直接的扩宽圈子的方式。
第五件事:懂得复盘,准备面试
我学会了复盘自己,每年给自己的一个总结,包括知识、工作、生活及情感等各个方面,是否把自己的丰富度进一步地提升了。今年是我第一阶段的第三年收尾,也给自己这三年来做个一个总结,同时也要开始开展我的跳槽计划,然后准备面试。
总结
外行对于程序员的认知很单一,也有很多刻板印象,但不管如何,作为测试人员的我们,自己一定要正视自己。如果我们连自嘲和自卑都分不清楚了,那发展也就仅限如此了。
所以,尽早规划自己,朝目标发展,才是上策之道,而不是怨天尤人,等到 30 岁后再去焦虑。
送上一句话:
如果不想成为“工具人”,就不要停下成长的步伐,打造属于自己的独特价值,具备不可替代的稀缺属性,这样才能不被淘汰,也能够在遭遇变化时,随自己所愿进行选择。
这是一份学习软件测试的思维导图大纲,需要的和我留言

写在最后
如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!
看到这篇文章的人有觉得我的理解有误的地方,也欢迎评论和探讨~
你也可以加入下方的的群聊去和同行大神交流切磋