我的大学软件测试学习之路——从开始到微信/支付宝/抖音Offer

Posted 程序员小濠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的大学软件测试学习之路——从开始到微信/支付宝/抖音Offer相关的知识,希望对你有一定的参考价值。

前言

2018中旬(大二暑假)拿到今日头条(字节跳动)软件测试实习生Offer,在深圳研发中心实习至2018年11月。

2019年1月加入新成立的今日头条上海研发中心实习,2019年5月离职。

2019年春招拿到腾讯(微信)、蚂蚁金服(支付宝)暑期实习Offer,2019年7月加入微信实习。

2019年秋招拿到字节跳动SSP(抖音)、微信(转正)、猿辅导SP(斑马英语)校招Offer,最终选择留在微信,目前已转正。

在我的大学四年中,有四年的A经历,两年半的实习经历,大概在2019年中旬的时候,脚本语言变得越来越流行,我正纠结学习Python还是Ruby,后来,我被分到社区项目的测试工作,公司产品开始选用Python开发的,所以,我毫不犹豫的选择了Python。

写这篇文章的目的在于,一是为了总结自己的大学四年;二是给有着和我一样的目标的同学们一些参考和建议(包括对应届生比较实用的面经),希望可以给读到这篇文章你们一些帮助,希望你们也可以达到自己的目标或是在追求更高的目标的路上更进一步,也算是作出一些微小的贡献。

技术学习与个人成长

大学四年的经历很长,总归不是三言两语就能表达清楚的,每个人所处的阶段不同可能感兴趣的内容也不同,这篇文章我着重分享基础知识的重要性及如何学习。

在回答应该花多少精力学习基础知识时,我的回答通常是四个字“往死里学”。基础知识的重要性可以体现在以下几个方面:

基础知识决定了学习能力和深度

软件测试的学习路线就是一条开始缓慢,而后不断提速直至达到一个人理解能力的极限的曲线,基础知识扎实的同学的学习速度和理解能力会远远超出基础知识不牢靠的同学,拉开越来越大的差距。

更强的学习能力可以带来更深的技术深度,但基础知识对技术深度的影响还不止于此。

对于软件测试而言:

第一阶段 测试基础

测试基础是软件测试最重要最加分的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。
最好是学到什么程度呢,最好是能够理解,能有自己的话表述出来
毕竟面试初级测试的时候,问的问题都是从基础理论上进行考核的。
那测试基础有哪些内容呢?

测试的定义、测试的分类、测试的方法、测试的生命周期。
测试计划、测试方案、测试策略、测试用例的编写。
BUG的分类、BUG的六要素、BUG的生命周期、BUG的定义.
测试和开发流程的关系、瀑布流、V字形、W字型(双V)、螺旋型、敏捷等等。
PDCA、5W2H等分析管理的方法
质量管理体系CMMI(了解)

嗯,大概就是以上的内容吧,以上全部都是理论和文档能力、只要你肯背、肯写,都是能独立的掌握的。  这边为你准备了200G软件测试教程资料免费分享给你  ,  关注微信公众号     【程序员小濠】免费获取~(主要分享软件测试的学习资源,帮助想转行、进阶、小白成为高级测试工程师…软件测试交流群:175317069) 

第二阶段 工具学习

软件测试的基础学完了过后,应该学习工具了。
其实学工具真的很容易,所以大家不用去纠结工具的选择。
把最基础的几个工具学习了就行了,以后用到什么工具就去学什么。

在这个阶段,学习工具什么的,重点在于接口测试的学习,所有的工具的学习,都是在为了接口测试的学习做铺垫。
下面我会列出需要学习的工具和知识点,按顺序学习就好。

  • 简单的网络协议:TCP/UDP,HTTP/HTTPS
  • Linux的基本操作和常用指令。
  • mysql数据库的基本操作和常用sql语句。
  • fiddle抓包工具的使用。
  • postman接口测试工具的使用。
  • jmeter和loadrunner性能测试工具的使用。

第三阶段 代码学习

OK,学完了以上两个部分,恭喜你,你已经是一个出色的初级测试工程师了。
接下来,你要考虑你的发展方向了。
是成为一个自动化测试工程师呢?
还是性能测试工程师呢?
还是安全测试工程师呢?
啊!这个问题好难!我也不知道该怎么选。
反正我啥都会一点,哪个岗位都能去面一面。
关于方向的选择,看我的这篇文章。

嗯,相信你心中已经有了答案了,那我们继续往下面说。
这个阶段,我们应该学习代码了,关于编程语言的选择,我推荐python
还有数据库也是必须掌握的!在工具篇的学习里,我认为你已经可以掌握数据库的相关的应用了!
所以现在各位可以去学习编程语言了,
不过不用像开发那样,学的那么深入。

比如Java。 python的话也是一样的(python现在变成主流了)
总之前期你两者二选一的学习就OK了。建议是学习python
啥?你问我学的啥。
我当然是两种都会啊。
哈哈哈哈哈哈哈,惊不惊喜!意不意外!

基础知识是面试时的重中之重

1、软件缺陷有哪些?

1)软件未实现产品说明书要求的功能

2)软件出现了产品说明书指明不应该出现的错误

3)软件实现了产品说明书未提到的功能

4)软件未实现产品说明书虽未明确提及但应该实现的目标

5)软件难以理解、不易使用、运行缓慢或者从测试员的角度看最终用户会认为不好

为了发现软件产品中的各种缺陷,而对软件产品进行验证和确认的活动过程,此过程贯穿整个软件开发生命周期。简单的说,软件测试是以发现错误为目的而执行的一个程序或系统的过程。

2、你如何理解软件测试的目的?

  • 验证软件需求和功能是否得到完整实现

  • 验证软件是否可以发布

  • 尽可能多的发现软件中的bug

  • 尽可能早的发现软件中的bug

  • 对软件质量做出合理评估

  • 预防下个版本可能出现的问题

  • 预防用户使用可能出现的问题

  • 发现开发过程中的问题和风险

3、软件测试有哪些原则?

  • 所有测试的标准都是建立在用户需求之上 。

  • 合理控制测试深度与广度,完全测试不可能,测试的投入与产出要均衡。

  • 80-20原则,软件中80%的bug可以在分析、设计与评审阶段就能被发现与修正,16%的缺陷在系统的软件测试中发现,最后剩下的4%是用户长期使用的过程中才能暴露出来。

  • 尽可能早的开展测试,越早发现错误,修改的代价越小。

  • 发现错误较多的程序段,应进行更深入的测试。

  • 软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试 。

  • 软件开发人员即程序员应当避免测试自己的程序

  • 严格执行测试计划,排除测试的随意性,以避免发生疏漏或者重复无效的工作

优秀测试人员应具备的素质

1)沟通能力与表达能力 

2)好奇心与怀疑精神 

3)责任感与抗压能力 

4)自信心,坚持自己的观点

5)耐心与细心 

6)逆向思维的能力 

7)善于学习与总结 

8)团队协作精神 

9)文档编写能力

优秀测试人员应具备的技能:

1)精通业务知识 

2)具备软件编程能力,比如C,C++,JAVA等。

3)可以用脚本语言编写小测试工具

4)主流操作系统应用与网络知识,可以搭建测试环境 

5)熟练掌握各种数据库知识 

6)精通软件测试理论与方法 

7)掌握常用测试与开发工具的使用 

8)优秀的文档编写能力

文中所涉及的内容可以 关注微信公众号【程序员小濠】 获取

送给大家一句话,共勉:当我们能力不足的时候,首先要做的是内修!当我们能力足够强大的时候,就可以外寻了!

遇到问题

对于这些基础知识的学习过程并不轻松,时常会碰到不能理解的知识点,我的习惯是一般会先跳过这些点,有些是知识点的编排问题导致后面才会解释的概念提前出现,看到后面再回过头来自然就能理解了;另一些情况确实是书籍讲解的不够细致,比较直接的办法是直接搜索相关文章、博客、问题等帮助理解(有些专门针对于一个技术细节的文章讲得会比书中详细得多),麻烦一点的话就是找其他书的对应部分做参照,如果还没有找到答案,我觉得大概率这个问题其实并不重要,有时候过分关注于细节就是一种浪费。

一方面是不懂的地方可以暂时跳过,另一方面是如果一本书读完还觉得云里雾里,完全没了解到这门课程的内容,那么绝对不能就此罢休,可以换个课程学一段时间再回过头来再细读一遍,或者干脆就换本书继续学。还是前面所说的,基础知识值得我们“往死里学”。

 做为一名自动化软件测试,接下来我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名高级测试者需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到黑的朋友!

最后

下面分享我整理的这份2021年可能是最全的软件测试工程师发展方向知识架构体系图。

一、Linux必备知识
Linux作为现在最流行的软件环境系统,一定需要掌握,目前的招聘要求都需要有Linux能力。

二、Shell脚本
掌握shell脚本,包括shell基础与应用、shell逻辑控制、shell逻辑函数等。å¨è¿éæå¥å¾çæè¿°

三、互联网程序原理
自动化必由之路:前端开发基础知识以及互联网网络必备知识。

å¨è¿éæå¥å¾çæè¿°

四、Mysql数据库
软件测试工程师必备Mysql数据库知识,不仅仅停留在基本的“增删改查”。
å¨è¿éæå¥å¾çæè¿° ​

五、抓包工具
Fiddler、Wireshark、Sniffer、Tcpdump各种抓包工具适用于各种项目,总有一款适合你。

å¨è¿éæå¥å¾çæè¿° ​

六、接口测试工具
接口测试神器,你绕不开的强大工具:Jmeter。小巧灵活:Postman。

å¨è¿éæå¥å¾çæè¿° ​

七、Web自动化测试Java&Pyhton
了解自动化的目的,熟练掌握testng&unittest自动化框架,以及断言与日志处理。
å¨è¿éæå¥å¾çæè¿° ​

八、接口与手机自动化
专业接口调用、测试解决方案。组建完整的web和接口自动化框架,Appium整体使用。
å¨è¿éæå¥å¾çæè¿° ​

九、敏捷测试&TestOps构建
揭开TestOps的神秘面纱,持续集成Jenkins框架烂熟于心。

å¨è¿éæå¥å¾çæè¿°​ ​

十、性能测试&安全测试
软件测试的彼岸:性能测试和安全测试,选对方向,努力爬坑吧!

å¨è¿éæå¥å¾çæè¿°

上面就是我为大家整理出来的一份软件测试工程师发展方向知识架构体系图。希望大家能照着这个体系在3-4个月完成这样一个体系的构建。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。

看完这篇内容后,相信以下两件事,也会对你的个人提升有所帮助:

1、 点赞,让更多人能看到这篇文章,同时你的认可也会鼓励我创作更多优质内容。

2、 让自己变得更强:想一想,如果你想在测试这个行业一直做下去,你的经验和测试技术是远远不够的,你需要进阶,你需要丰富你的技术栈!还等什么!

最后:【可能给予你助力的教程】

​ ​​​ ​这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

关注我的微信公众号:【程序员小濠】就可以免费获取了~

以上是关于我的大学软件测试学习之路——从开始到微信/支付宝/抖音Offer的主要内容,如果未能解决你的问题,请参考以下文章

Android应用跳转到微信和支付宝扫一扫

手机网络安全问题,浏览器里面的网页跳转到微信支付,或者支付宝,在支付的过程中会有木马病毒吗?

微信怎么都打不开了微信支付到微信看微信支付宝

通过手机点链接后可以跳转到微信支付的源码怎么写?

微信发支付宝红包(花呗)

APP怎样接入支付宝或微信支付