时光飞逝,我从前端开发岗位转入测试岗位已经三年了,这期间从迷茫到熟悉,到强化,到熟练,到总结,感受还是很深的!
三年前的某一个晚上,我正准备下班回家,我们的项目经理把我叫到办公司和我谈话,谈了很多,具体说什么不记得了,大体意思就是说测试组缺人,而前端组人员暂时较充足,问我能不能从前端岗位转到测试组的岗位。我当时感觉很惊讶,不明白为什么是我,难道是因为我才来公司半年?经理给我了一天时间来考虑,感觉一天都是恍恍惚惚的;
最后,我还是服从了公司的安排,当然困难也是随之而来,我对测试完全是一窍不通,在以往的测试过程中,我个人还认为测试就是找茬的,来和开发过不去的,今天站在测试的位置上看,以前的开发兄弟们怎么看我?说我是叛徒?以后我要是找出bug来了,他们会不会及时修改?这些问题我应该怎么处理?当然,在前期主要还是技术上的问题,这主要反映在几个方面:
测试流程方面:我的组长是一位经验丰富的老测试了,到目前已经9年了,我在她的带领下,从最开始的分析需求开始,逐步地跟着项目走完整个测试流程,包括纯手工测试,包含了自动化的测试流程,包含了性能测试的测试流程,直至每一个测试报告的最终形成。使我完全理解了一个科学,正确,严谨,正规化的测试流程。
测试方法方面:我个人特别注重理论知识和实际操作相结合,在理论知识方面,我主要是购买一些视频、书籍,从最基础的软件测试理论到各种各样的程序设计语言,再到自动化测试,包括Java语言的自动化测试,Python语言的自动化测试,到性能测试的各项性能指标的分析,数据分析都是我自己在视频上的知识来获得的,在淘宝上面有各种各样的书籍和视频教程,我基本上都看了个遍,到目前为止,我的各种学习资料用了1T的移动硬盘来装,书籍也有一百多本了,在实际操作方面,我主要向我的组长请教,她是因为女生,特别注重细节,当我有不懂得地方就去请教她,我会问她为什么要这么操作,然后我会对比理论和实际的区别,为什么有这种区别。就这样我就通过一个个的项目来夯实理论知识和实际操作,每一次做完项目我都会进行一个总结,自己学到了哪些新的技术和方法?遇到了哪些新的问题?以后再遇到怎么处理?
我还是想把资料分享给大家【文末见】,因为,生活不会一帆风顺,如果没有人替你负重前行,那么就让我们自己相互抱团取暖吧,只要我们足够努力,生活还是未来可期。
新的知识补充方面:随着项目的不同,所运用的知识也不同,每一次学习不同的知识既是工作项目的需要,也是自己学习新知识的契机,比如说学习python语言,本来我们测试人员是不用写代码的,或者说可以用Java写,但是目前市面上都在用python语言来写自动化测试脚本,肯定是有它的道理的,那么我当时给自己的目标并不是仅仅为了满足写自动化脚本那么简单,我还想把python语言全部学会,我下定决心之后就立即着手执行,因为我本来就是开发出身,会代码,所有的语言都是相通的,都有变量,流程控制语句,和方法三大内容。JavaScript和Python都是弱类型,解释性的语言,所以在学习的时候我就在对比起来学习,很快学会了这门语言,所以我个人觉得,不管做什么,我们不仅仅要会用它,而且要知道它为什么这样用?最好是能够精通,对我们的测试工作是十分有利的。
知识结构方面:我们作为一个测试人员,不仅仅要做好本职工作,把自己的测试技术练好,而且还要一个广泛涉猎,对前台,后台,硬件知识,网络知识都应该去学习,对我们快速定位bug,提出有效针对性的修改硬件非常有好处,如果有条件的话,尽量向全栈发展。开发的发展方向是向深度和精度发展,而测试是一个向广度发展的岗位,需要不同的知识来融合,因为我们测试的是一个集成的,有多种技术融合而成的系统项目,就需要我们广泛涉猎和学习,所以从职业规划和寿命度上面来看,测试的工作也是非常的不错,所以不断的学习才是硬道理!
团队的氛围方面:我本人是军人出身,历来重视团结的重要性,所以和开发人员,测试人员,需求人员以及上级相处要从大局出发,我们的每一个人员都是一个项目不可或缺的一份子,必须团结起来,才能为最后产品的顺利交付打好基础条件,所以同事之间的相处是最需要拿捏分寸的,特别是开发人员,人和人都是相互的,只要讲道理,相信别人是会理解的,总之一句话:从整个项目的大局出发,把工作做好。
回首测试经历,我总结了以下几点:
一、软件测试人员应该居安思危
身为测试人员,虽然我们平常的工作大部分都比较安逸。但是千万不能温水煮青蛙。应该自强不息,不断学习,提高自己的测试技术。因为测试本来门槛就稍低,如果懈怠,随时都有可能被取代。重点就是深入学习测试技术,然后将技术应用到现有的项目中。
二、测试人员应该深入学习
不断学习,不能丧失对新知识学习的渴望,对旧的知识形成体系,夯实基础,测试理论知识基本上这么多年以来没有变过,主要是一些方法和工具的改变和升级,广泛涉猎相关知识,为测试工作服务;
由于历史原因,大部分测试人员,最开始接触都是纯功能界面测试,随着工作年限,会接触到一些常用测试工具,比如抓包,数据库,linux等。零基础快速入门软件测试门槛并不高,掌握下面的软件测试理论基础知识就可以去面试了。
随着大数据时代的到来,数据抓取、自动化测试、爬虫等技术越来越受互联网大厂的关注。甚至,像产品、运营这样的岗位非技术岗位,也需要对这些技术有所了解。也因此,近年来,Python 是出尽了风头。Python 入门快,简单易学,特别是在功能测试在往自动化测试提升上面有更大的优势,现在大部分初级功能测试人员都在向自动化、性能、安全靠拢,这里给大家提供一份软件测试快速提升的学习路线。
1)测试基础理论
掌握测试流程、用例设计、缺陷跟踪、测试报告
- 软件测试的定义、生命周期、工作流程、需求分析;
- 测试用例的设计、编写、评审;
- bug的基本知识以及禅道的使用;
- 缺陷管理及工具;
- 测试计划、测试报告的编写;
- 禅道、SVN、Git版本控制工具的使用;
搞定上面基本必备内容,就已经知道可以做具体的实战内容,这个时候最好是先找一个 web测试项目去做一下,假如一个项目拿到手之后,按照下面的一套流程跑一遍:
- 发布项目进行立项,建立项目组进行分工;
- 需求评审,学会如何看需求文档,进行需求分析,罗列测试点;
- 整理测试点,编写测试用例,然后进行用例评审;
- 执行测试,比如功能、界面、前后台、兼容性、数据库,对于发现的bug提交到禅道;
- 分析、总结、编写测试报告;
这个流程完整的跑一遍之后,只能说对于整体的测试流程算是掌握了,但是仍然不足以找到一份合适的工作,想要学会做功能测试,以下的内容也是必须掌握的:
Linux、数据库、接口测试、APP测试等
一、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个月完成这样一个体系的构建。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。
面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!朋友们如果需要可以自行免费领取 【保证100%免费】
这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你