生活
软件测试
测试工程师
软件测试和开发
测试开发

请问测试开发该怎么入门?

想以后做测试开发,但发现要学的知识太多了,不知道该从哪里入手,哪些是重点需要掌握的,如何规划学习路线。希望能得到解答,感谢!
关注者
97
被浏览
103,770

29 个回答

以我掌握的技能为例,我画一下建议的入门路线。我不是这样的顺序,走了很多弯路。另外读者不用掌握我的所有知识。掌握的知识多并不能让工资比同岗位其他同事高,只能使我工作轻松一点罢了,以及使我业余可以写写书做做分享。你只需要掌握其中一小部分就足够了,至于是哪一小部分,就看各人了。

一,主线:python-》接口测试-〉简单web开发—》自动化测试-〉性能测试

主线学完前两项后可开始同步学习基础线。主线学完第二项可就业。

二,基础线:测试理论-》计算机网络-〉操作系统-》数据库

三,工具线:用到啥学啥。

1.我常用的python库:unittest,pytest,requests,jinja2,flask,hug,robot framework,re,os,sys,arrow,ansible,sqlalchmy,boto3,selenium,

太多了,其他不记得了。一共几十种吧。

2.我常用的其他工具:jenkins(我的核心技能之一,并不仅仅是搭一下用一下,而是保证整个团队用上稳定的持续集成系统。我现在的一些测试框架也把一部分未服务化的功能放到Jenkins上先凑合用)fiddler/charles,wireshark,tcpdump,docker,git,svn(已淘汰),postman,jmeter,maven,jfrog,github,gitlab,jira(包括调用其接口做自动化及用java写过插件),aws lambda,sql developer,elastic search,logstash,kibana,locust,mongodb,postgresql,mysql,soapui,sonar qube,echarts,

3.我常用或曾用的其他语言:groovy(要写),aws cloudformation(常用,其实不算语言),java(看得多,基本不写),ruby(已忘光),shell(常用),sql,nodejs

四,核心技能线(只是我的核心技能线,每个人应该有不同的线)

1.云计算:我是 openstack-》aws。但直接主攻一个任意平台其实都行。

大致上:平台的使用-》组件的使用-》组件的原理-》更好地使用组件

这条线走下去基本上是原生开发或云原生架构了。我在第二步。当然还有更牛的人,直接搞到云平台核心系统开发了,相当于以前我诺基亚开发openstack host os的那批人。当然搞其他自研云平台的公司也需要这样的。而我以前的组只是搞搞guest os上面的某一层平台。已经到云的应用层了。

2.CI/CD devops线

jenkins-》更大的团队的jenkins-》devops工具链

从jenkins开始,最终用到devops工具链。也就是几十种工具吧。jenkins本身的坑和缺陷要一个一个趟过去,比如备份与双工问题,升级问题,权限管理,存储问题,可视化问题,插件的bug,和其他工具的集成,以接口控制jenkins,以groovy控制jenkins,jenkins pipeline,jenkins自身部署,jenkins节点动态管理,用jenkins部署各种待测应用,

3.性能测试线

各种压测工具-》自研或部分自研压测工具-〉各种调优

这条线我刚走一点。工具主要从jmeter开始,然后其他工具也搞了搞,比如locust,gatling,grinder,还有云上的blaze meter。

自研部分压测工具则分:平台和小工具。

平台就是类似山寨版/优化版 blazemeter

小工具则真的很小,有些就是随手写的几十行脚本,完成某个任务中的某种数据监控,或者压力生成,或者数据计算等等单一的小任务。

至于调优真的是看积累的。工具级,比如调优tomcat服务器之类的。系统级,调优linux配置。架构级调优系统架构包括网络架构和软件内部架构。数据库级,调要用的数据库。等等。在没掌握海量知识前,调优还是找人协作最好。

4.测试开发线

测试脚本化-》持续集成化-〉工具化-》服务化-〉可视化(有人说最后还有智能化,但是我不会)

这条也算是我吃饭的核心技能。上面那么多工具,一大半为此服务。做测试平台都烂大街了,但做好测试平台还是很难得的。好体现在哪里?我的理念是这样的:首先底层基于云和容器,然后微服务化把功能打碎成服务,再然后提供傻瓜式接口给开发和测试开发使用。根本不需要笨重的图形界面,命令行和接口才是王道。我只在做可视化时使用图形界面(当然也和我缺少前端资源有关)。


看到最后了。我做一下付费社群宣传。年费只要218元。

编辑于 2020-08-01 06:55

谢邀!

看到这个问题我想起了我的一个朋友,他从对测试开发一无所知到无所不知,希望能帮到你理解测试开发。

关于背景

学生时代

  • 高中:精力都放在魔兽3冰封王座上了,种族UD,全校第一。各个班级和周边网吧都挑战遍了。结果当然是不学无术的我高考失利,上了三流大学。
  • 大一:因为酷爱电脑游戏报了计算机系。大一期间同样不思进取,打了一年的魔兽世界,60年代,全服第三工会中第一DPS。
  • 大二:这一年幡然悔悟,痛定思痛,洗心革面,痛改前非,重新做人。花了一年时间把英语4级过了(底子太差。。。花了这么久)。
  • 大三:这一年学java,学校跟一个培训机构合作在学校办班。我跟一帮同学报名并组了个项目组,接接活,日子挺愉快。当时对编程入迷,好像当初玩魔兽一样入迷。现在想想是入对了行业了,放到其他行业我都不能这么上心。
  • 大四:通过培训机构来北京实习,但由于学校和培训机构的利益纠葛闹翻了,学校挡着不让来。通过别的方式很难找到实习机会,毕竟我们的学校说出去都没人听过。所以我们几个同学大晚上的跑到导员家里送礼,好歹换来了导员睁一只眼闭一只眼的结果。我们一行5人搭上了北京的火车来到了文思的贫民窟(我们的戏称,因为给实习生住的宿舍实在太破,跟贫民窟似的)。大四这一年就是打杂,跟测试没啥关系,好不容易求爷爷告奶奶的混进了项目组,也是做的微软的外包,做本地化测试,技术含量为0。

大学期间貌似挺失败,苦哈哈的大早上起来去图书馆学习,到头来学业也没啥起色,恋爱也没谈一个,实个习都这么波折。但我都认了,高中没好好学习,大学就得还债,我自己种下的因,就得吃自己得下的果。

入行

毕业后待在了文思做微软外包,之后辗转各个欧美外包项目,从手动测试到自动化,从c#到java。后来到了一家小的外包创业公司何易达, 是文思的一位高管出来成立的公司。给美国的一家叫ariba的公司做外包项目。头几年就这么在外包中混混度日了,欧美项目很清闲,老外没有加班文化,挺养人的,这几年干下来身体也没落下什么毛病。也就让我有时间去研究自己喜欢的东西。那几年技术上没什么进步,外包么,核心的东西不交给你做的。不过由于都在做欧美项目,所以见识涨了不少,我见识到了很多优秀的人,见识到了微软,google等巨头的工作方式,我现在很多自动化的理念是跟他们学的。同样借着出差的机会,公费旅游了很多地方。我见过了首尔地铁的四通八达,旧金山金门大桥的如梦如幻,几乎被印度人包围了的硅谷,牛在街道上横行无阻的班加罗尔,蓝天白云的加利福尼亚,洛杉矶球场中三分战术还在雏形状态的勇士vs快船。我知道了原来加州牛肉面真不是加州的。外国女人真的是不做月子的,程序员真的是可以干到60多岁的,真有城市别说雾霾就连大街上一层灰都没有的,在outlet里一麻袋一麻袋买奢侈品的真的全是中国大妈。再一个就是英语口语终于锻炼出来了,我这个英语4级水平的小垃圾终于一点点适应了印度人的叽里咕噜式的发音。记得一开始每次开会都是老大帮我翻译,只要是我跟客户开会老大都会跑来帮我。那时候挺感激他的,我把会议录音下来一遍一遍的听,实在听不懂了就去问老大。现在能看懂技术文档,多亏了那时候打的底子。所以虽然那几年虽然技术上没啥长进。但我也不后悔。

波折

事情发展的很戏剧化,本来我就这么在外包公司休闲的呆着,一人吃饱全家不饿。但是后来我恋爱了,甚至开始谈婚论嫁。 那时候突然压力倍增。在北京才1W多的工资,我实在是没什么底气。外包这行还没什么年终没什么福利,公积金和社保都是按北京最低收入缴的。所以那时候有点焦躁,虽然媳妇没说什么,她不太在乎我挣多少钱。但我也不想就这么混下去。 后来我联系上了同学,就是之前说的我们一行5人来北京闯荡中的一个。 他把我介绍到了一家互联网公司面试,也就是58到家,一家让我又爱又恨的公司。我爱它因为它带我进入了互联网,让我有机会实践自己在外企学到的东西,让我开发一个又一个的工具和框架。它给我犯错的机会,给我成长的时间,让我认识了很多优秀的人--58同城技术委员会的主席沈剑大哥还有他下面的基础架构团队,后来我有幸也到他手下干活,受益匪浅。那是一段爆发时期,天天以肉眼可见的速度成长。恨的是我也同样见到了测试这一行业的黑暗和堕落。政治斗争似乎就是这家公司测试团队的主旋律。我的直属上司想吃掉其他几位测试老大,为了她的位子整日勾心斗角,背后阴人,笼络人心,抢占地盘,打压下属。整日不事生产,到处刷存在感乱指挥。出事以后推卸责任,让小弟背锅。只是她野心虽有,情商实在有点低,格局实在有点小。加之其他的测试老大也不是省油的灯,互相见招拆招下,她倒是日渐式微,我临走的时候她手下只有2个人了。那段时间很快乐也很痛苦,快乐的是我正在飞速的成长着,痛苦的是这种工作氛围简直是在慢性自杀。天天都在跟自己顶头上司吵架的人物也就我了,貌似她气走了那两个测试架构师以后主要火力就由我承担。那是一种在跟白痴吵架的无力感。是一种完全是外行人物却在瞎指挥内行人的愤怒。手下的人没人服她,要技术没技术,要业务没业务,要管理也没管理,就连工资都比我们低。我们私底下讨论的时候一直不明白这么一个人怎么做到这样的位子的。58果然是一个神奇的地方。我热爱这个地方,这里也有我舍不得的人和事,但是这里的测试团队实在不是做事情的地方,我也是寄人篱下,人轻言微。多番努力无果后,我也就萌生了离职的想法。 后来她看我实在是不听话,慢慢就架空我了。我也就顺势找下家四处面试,在今年2月份拿了年终奖就离开了那里。

沉淀

离开58前在各个地方面试,拿了微店,美团,和第四范式的offer。其实跟第四范式的缘分也挺戏剧化的。本来再隔两天就要去入职了,后来在猎头的推荐下,冲着戴文渊的名字去试试。面试的时候就感觉这是一个能专心做事的地方,每个面试官都透露出技术人的强大功底,对我想在58推行的持续集成十分认同。最后跟戴神聊过之后,当场就决定来这了,戴神一点不拖泥带水,直接让我第二天来上班。HR速度也很快,下午面试,晚上发offer,一切都充满了效率的感觉。当时公司刚创业1年多点,头一年没有QA,都是开发自己测试,所以来这的时候测试几乎是一片空白,需要从0做到1,测试流程,基础服务和管理工具,接口自动化,UI自动化,docker环境部署自动化,持续集成等等。桩桩件件都是我自己一行代码一行代码,一篇文档一篇文档磊起来的。虽然看着工作比较多,但都非常顺利。开发团队十分配合,帮我推流程,帮我写脚本,耐心的给我讲解产品的每一处架构。有些东西不用我说,人家都懂。我深深的觉得跟优秀的人在一起共事是多么幸福,不用苦口婆心的说服别人持续集成的效果,自动化的便利,流程的规范,单测的重要。在他们心里,这些都是很自然的。这段时间像是打了鸡血的战斗鸡,即便是在家,有时间就打开电脑学习,工作。 因为身边的人都很优秀,不会的东西又太多。 人工智能这个方向很难,非常难。招人的时候最担心的是对方可能在这干一年都不知道这产品在干嘛。我花了很多时间在学习机器学习的概念和原理,可到如今也依然是门外汉。前段时间脉脉上有人提问哪有AI的培训机构。我们都会心一笑,这玩意要是能培训速成那我也就不那么痛苦了。现在团队中也只有4个QA,不过一切都往好的方向发展,很多东西不在再是0到1的过程。而是1到100的过程。这一年不再像在58的那段爆发期,一切显得平稳起来。这一年沉淀了很多,不再那么杂乱无章。 这一年也沉稳了很多,不再像以前那么毛躁。


关于测试

  • 最近这一年我越来越重视业务,回归业务,拥抱业务。直到现在我都是手动测试的一员。我们不区分手动测试和自动化测试,我们都是业务测试。让业务逼着我们优化工具,让业务逼着我们把自动化做的更好。
  • 最近这一年我越来越务实,不再追求华而不实的测试平台,不再追求貌似高大上的录制回放和关键字驱动框架。回归本质,一行一行的写代码。跟着我一起做自动化的人,必须是能写好代码的人。我不需要不堪一击,动不动就崩溃的自动化。 我需要的是稳定,高效,应变样样不俗的能加入到持续集成的自动化。因为我见过case规模成千上万的UI和接口自动化。到了这个数量级的时候我知道录制回放和关键字驱动是多么不堪一击,我知道这时候运行稳定和性能是多么重要。
  • 最近这一年我越来越从全局看事情。事分主次,低优的给高优让道,低风险的给高风险让道。不再一头扎进一个技术里不出来,不再遇事一头热的不管不顾。所以到现在我也没弄出多少花样来。UI自动化,接口自动化,环境管理自动化,持续集成自动化。除了这几样基本上没啥了,没有什么静态扫描,自动遍历,自动生成case,这个平台那个平台的。一方面是产品业务和架构原因,有些东西不一定是适合这个业务的。 还有就是他们都在排队呢。开玩笑,前面说的那几位大爷还没做成熟呢,哪有那个人力管你们。
  • 最近这一年我的技术情怀越来越少,不再是看到这个技术高大上就搞,那个技术逼格满满就做。只选择对当前业务最有用的那个,最适合当前团队的那个。人总得现实一点,有时候项目需要和技术情怀是对立的。我们想更有竞争力,所以想学这个技术,那个技术。可这个技术那个技术的可能不适合你的项目。可以业余时间自己学习,但在项目里乱用就是不负责任。

关于责任

两年以前我还只是个只管开发测试工具的普通工程师,既没业务压力,也不需要对团队负什么责任。而现在我整天想的是怎么减少人力成本,怎么提高产品质量,怎么设计团队发展路线。挣得钱变多了,责任也就越大了。有些时候眼界挺重要的,我也不得不说BAT出来的人确有过人之处。小公司和龙头企业的员工看到的东西,确实是不一样的。 而当你承担了责任以后就得做好它,每做一件事,每投入一个人力都得思前想后,这个投入是否值得,这个投入是否有产出,这个投入是否是当前阶段该做的。因为人就那么几个,用一个少一个。没人告诉你该怎么做了,而是你决定该怎么做了。所以我现在做每一件事都想着要有产出,有产出是对自己负责,对项目负责,也是对老大负责。没有产出是在作死,是在瞎搞。什么是瞎搞呢,在工程项目中偷偷玩实验性技术是瞎搞,技术情怀泛滥是瞎搞。想学习,想提升可以在业余时间学习,但在项目里乱搞就是不负责任了。我记得我现在的老大对我们说过一句话,意思是说大家来创业公司都是有点追求的,创业公司也是最能给你机会给你权利做一些事情的。所以珍惜你手上的权利,做每一个决定前要思考清楚,这是你的责任。现在我总能想起这句话来,时刻提醒自己,别再跟以前一样,生产出一些看似高大上实际上没什么卵用的东西。

关于自动化

这一年我做自动化越来越看重节省成本,越来越看重提升团队工程化。我之前就说过做自动化的时候先别老想着发现的bug多少。要先想着自动化能为你节省多少成本。我们说的自动化不只是自动化测试,我要自动化的东西很多。我总能看见有些项目的自动化处于很奇怪的状态。搞自动化之前需要这些人,这些天。搞了很久自动化以后还是这些人,这些天,甚至为了搞自动化还加了人。自动化的实力不济也导致了根本没法持续集成。这是很危险的状态,没尽好责任的状态。这里面的原因很多,有的是因为自动化质量不高,人为维护成本太高。有的是没分清楚主次,在低优先级的事情上搞上了,高优的投入不够,结果项目还是堆人的状态。 不管什么原因,这都是一个恶性循环--技术投入不够解决时间和人力成本--项目堆人加班--加班太多没时间做技术改进--技术投入不够解决时间和人力成本--项目堆人加班。一如之前所说,恶性循环,你更没时间去做自己喜欢的技术来改进项目质量。我们做自动化的主要责任之一是节省人力,这个没做好,就是没尽好责任。这个我要深深的反省,之前搞的那个破关键字驱动项目就是典范。我今年总结自动化的良性状态应该是这样的:投入技术成本--减少整体成本--空余出的成本投入其他技术项目--减少更多的成本--有更多的空余成本投入其他能提高产品质量的技术项目上--产品质量越来越好,良性循环。

关于提升

昨日跟我同学喝酒之时他又跟我讲了很多,就是介绍我去58的同学,点醒我的同学。他现在是一家公司的测试总监,之前创过业,做过CTO,总之能力比我强的多。一路上他对我帮助很多。昨日酒意正酣时,他跟我说如果你想再往上一步,除了保持技术以外,你要站在更高的角度看东西。你要告诉你的老大你们的团队该做什么,这个团队的问题在哪,质量保证体系怎么搭建,该招多少人,多少人投入自动化多少人做手动等等等等,如果让你的老大告诉你这些,那你就还差的远。所以2017年,我希望我能锻炼到告诉我的老大这些问题的答案。

关于转型

今年关注了很多与测试息息相关但没那么直接的事情,除了自动化测试,持续集成等等。我更多的关注了工程自动化,devops。我主动请缨接管了公司内所有产品环境的自动化部署和管理工作,从编译,出包,部署。根据开发,测试,产品,运维对环境不同的需求定制了一套基于docker的环境管理方案。我开始更多的实践devops,我们部署在客户场地内的产品版本和环境是不一样的。我们开始制作基于不同操作系统与产品版本的部署镜像与自动化测试方案,希望让开发人员在出事的时候一键搭建客户的产品版本和部署的系统环境,解决问题后迅速自动化测试并出包发送给进场人员。 总之这一年,我开始像devops进军。

关于家庭

结婚,搬进新房,儿子还有4个月出世。这一年进度颇快~ 元旦前两天也是忍住学习与干活的冲动,放下电脑专心陪着待产的女王大人。感觉也是好久没这么专心的陪她了,我整天忙着工作没时间陪她不说,家里父母身体不好,在伺候完我嫂子和大侄子之后就回去养着了。我现在也只能给她做个早饭。她总是挺着肚子自己做午饭和晚饭,我心里真的很过意不去。父母身体的问题也让我很揪心,看着他们一点点变老,身体一点点的不好起来,我心里也是惶恐不安。希望新的一年,我能抽出更多的时间陪伴我的家人,为我的家人做更多的事。

以上

这些经历对你有帮助的话,点个【赞同】吧

编辑于 2020-07-06 14:26

说实话,软件测试这个行业看似入门很简单,但学起来没有那么容易,而且自学没有人指导的话,很容易困惑,因为软件测试的知识很杂,WEB测试、APP测试,功能测试,白盒测试,自动化测试,性能测试,网上的资料可能都包括这些部分,每一个类别的测试又是不同的技术,导致你不知道那个才是重点。那该怎么办呢?

如果是自学的话,建议抓住一个方向学习就好了,不要什么都想学,这样很容易导致抓不住重点。首先,建议你首先应该去学软件测试的基础。你要了解什么是软件测试,该如何测试?

这部分的学习目标:掌握软件测试的基本概念、软件测试的流程,并能熟练的应用常见的用例设计方法来设计测试用例。掌握常见的测试方法和类型,并知道如何进行每个阶段的测试。

而想要掌握这些内容,对于自学的小伙伴一般是有两种方式。

第一种是看书学习,第二种是看视频学习。

首先如果你是看书学习的话,可以给你推荐几本参考书目。

一、软件初级书籍:

1、软件测试

本书主要说明的是从事软件测试行业需要必备的知识,以及该如何学习,从入门到精通,主要给大家提供一些比较优秀的书籍,并给出学习的顺序。并且也会附上有用的视频教程,希望通过阅读本文,读者可以明确该如何学习测试,并学习哪些知识。

2、软件测试的艺术

第二本就是这本软件测试的“圣经”,这本书据说是硅谷测试人员必备的书。这本书最值得看的地方就是测试的思想。阅读这本书可以让你有豁然开朗的感觉。

3、计算机软件测试

这本书也是值得一读的,同样也是非常适合初学者阅读的。

二、软件测试进阶书籍:

这部分主要是针对有过一年左右测试经验的,真正测试过几个项目的。推荐的参考书主要是提高测试效率的,一些测试的经验。

1、有效软件测试

这本书主要是给软件测试的各个阶段提出了一些建议,一共50条。这些建议都十分中肯,值得一读。

2、软件测试经验与教训

听书名也应该了解了一大半了吧,这本书一共给出了293条经验,阅读它,它会让你重新思考关于测试的基本理论。

然后就是视频学习了,因为现在是互联网时代,网络非常发达。在这个行业相关的视频很多很多,在这里呢,就不作推荐了。但是也正因为视频很多,视频质量良莠不齐。

所以,在这里我就简单给你在选择视频资料的时候一些小建议:

1、选择录制时间较晚的视频。

2、选择主讲人,最好是一些业内比较知名的人,这类人通常拥有丰富的实战经验,其所接触到的行业知识,至少在国内而言,也应当是最先进的,其个人素质,自然也是过硬的。对你的学习会有很大的帮助。

希望能够帮助到你。

发布于 2020-12-01 14:17

测试开发, 简言之就是懂开发技能的测试工程师. 那么对于测试人员的开发技能要求, 肯定是不会与开发人员相同. 那么学习路径的话, 其实, 一个好的视角就是从实践出发.

这怎么理解呢, 就是从你的项目出发. 去发掘一下目前的项目, 哪些部分适合做自动化, 是哪种自动化. 从经验上来讲, UI层面的自动化是最好入门的了, 也是成效最为明显的, 所见即所得, 在产出上很明显, 并且在实践中所获得的成长, 那真真是相当高的.

如果要实现的话, 可以从最简单的录制工具开始, Selenium IDE, Katalon.

然后就是使用代码和框架:

  • Python+selenium+unittest
  • RobotFramework

剩下的就是接口测试, 那么需要

  • 协议基础
  • python+requests

就先这些吧, 过程如果需要操作数据库, 那就突击一下.

配置环境可能需要用到Linux, 那么就学吧.

以上, 除了自动化以外是线性的, 其它的, 都可以是并行的.

祝好~

发布于 2020-07-09 10:48

想要入门测试开发,先要了解测试开发这个岗位是如何发展起来的。

在开始正文之前,我先抛出一个观点,做80%的做测试的,都称不上为测试工程师。

好的,带着这个观点,咱们从行业目前的发展来了解一下测试开发。如果你没有进入这个行业,那么有些概念可能不太理解,没关系,先接触一下。

  • 作为 DevOps 关键角色,未来的软件测试工程师和质量人员必须同时具备一定的开发和运维能力。
  • 测试人员会更深入介入开发工作,通过“测试左移”,提前与开发人员一起制定测试计划,推动代码评审、代码审计、单元测试、自动化冒烟测试、测试精准化分析以及研发自测等来保证研发阶段的质量;
  • 另外,测试人员会也会参与配置部署,将自动化测试用例配置到持续交付链中,并通过“测试右移”,全流程监控发布后的应用质量。
这里为你准备了200G软件测试教程资料,包括用例模板、计划模板、报告模板、性能调优、自动化教程、测开模板、简历模板、面试技巧、大厂真题等!点击下方自行获取:

这里我所说的“测试左移”,也就是指的研发阶段的质量保证,“测试右移”也就是发布后的质量监控,搞明白这连个理念,就能很清晰的明白测试开发具体指的是什么了。

如果你是测试人员,你认为自己的公司不大,这些东西涉及不到我,我不关心。那么,上面我已经说了什么是测试开发了,下面就不用往下看了,你选择坐井观天,谁也拦不住的。

下面我就说一下整个测试行业目前,一个整体的一个现状。

这些情况不是我一个人得出的,是私下同阿里、360等行业内的测试经理交流所公认的。

第一个观点:XP、Scrum、CI/CD/DevOps的项目管理迭代的方法论的流行加大了测试压力

你要是刚开始进入这个行业,可能认为测试就是找bug,但是测试工程师的核心是质量保证。举个例子,以前一个项目,按月发布,两月发布一个,一月发布一个,现在呢,一个月也慢慢变成了两周,三周,甚至一周,甚至有的时候2天就可以发布一个功能,如果是按照这个节奏,研发只需要改一行代码,你要保证这一行代码的正确性,你要写很多的用例,甚至要回归,几十条甚至上百条的都有可能。那么他的改动会越来越频繁,而对于测试来说,每一次的改动,我们都要去做回归的,而这种回归,在这种短时间迭代越来越短的节奏下,其实已经没有办法再靠人力去支撑了,到时候必然就会带来测试工程师要进行加班,而且光加班也是解决不了的问题,所以这个时候,测试的压力是非常大的。

第二个观点:是原有的质量保证体系缺乏可以融入架构的工程化技术支撑。

原有的质量保证体系指的是什么呢,我们说最早期的手工测试的方法论,什么边界值啦,以及我们自动化最简单的一些自动化测试、压测,所有原来的这一套测试体系其实在当今的这个测试行业下,尤其是互联网快速发展的阶段里面已经慢慢的不太适用了。虽然说目前它仍然非常的有用,但是这样的一套体系很难融入已经流行的比如说持续交付、持续集成、DevOps等这样一个大的环境里面。你所做的自动化测试,如何融入到这个体系中去,如何能快速的发现线上的问题,以及更早的发现研发级别的问题,靠原有的这些质量保证手段,其实已经有点匮乏了。

第三个观点:行业大量技术根基薄弱的测试工程师面临淘汰和外包

这句话听起来比较残酷,但是你必须要看到这种变化。通过和一些测试经理进行沟通,也都是认为现在很多的测试工程师都不及格,要么是会点点点,要么是会一点自动化。20%-30%的人懂一点最基础的自动化,自动化的能力也是属于一个很薄弱的环节,既解决不了公司里面深层次的问题,又没有办法帮公司支撑和搭建更高的平台,完善更好的一套测试流程,所以也会导致这一类人也不太及格。

比如说阿里的一些现状,就是招测试开发,或者说招研发做测试,由测试开发以及研发来负责完成公司内的质量体系建设,公司的持续集成,持续交付,DevOps,以及一些质量监控平台,剩下的点点点,外包给其他的公司来做,这是他们目前的一个现状,也就是说,如果你们只是点点点,那么很快你将失去在大的公司的工作机会,直接会被外包公司吸收过去。

所以,这些也就是为什么很多公司都要招聘测试开发

说到这里,肯定很多会点点点的,都在抱怨为什么招普通的测试,还要会自动化,会语言基础?如果前面行业发展你可以理解,那么你也就可以懂得,他们对测试是有更高的期待的,已有的测试又不能解决,所以只能在招聘中体现这一点。

如果你是测试在职,我组建了一个2022年名企大厂测开岗位内推群,去年已经内推200+的同学进入大厂,最高的年薪达到70W+,点击下方进入内推通道:


-----------------------此处加个分割线-----------------------

延伸的多说一点吧

测试开发工程师的概念怎么来的?

这个名词一开始并不叫测试开发,只是说懂技术,懂研发的测试工程师,后来这个词又很长,再加上以前测试开发曾经在老的时代是有一个对应的词的,从微软的时代的时候,微软就把工程师称为软件工程师on testing,就是属于测试领域的一个开发工程师。后来这个词就慢慢的受到很多公司的采纳,之后测试开发这个词,逐渐的开始流行。

测试工程师需要会多少语言?

2门。第一门,推荐大家使用Python。Python是做自动化工作首选的一门语言,所以Python是第一位的。

第二个语言,等你月薪达到2万或者2万5以上的时候,这个时候光靠做测试,已经很难再产生更大的影响力了,这个时候需要怎么做呢?第一个,在研发角度,去影响研发团队提高质量,第二个,从运维和线上角度,去影响运维和线上用户,然后去分析更好的质量。

如果要做这两个事情,只靠Python,就有些乏力了,比如说全公司都在用Java,go,你用Python对接就会很麻烦,比如你要分析他们代码的规范,代码里面的内存泄漏,多性能的死锁,各方面的问题,你要发明工具去发现这些问题,技术栈不一样,会很麻烦。所以Python是你入门的第一门语言,Python之后可以走2个方向,一个是Java,一个是go,懂2门语言就够了。当然像前端,html,js,css,这肯定是每个人都需要去懂的,这些基本上都属于基础知识了。

测试开发做到后面,是不是和开发没有区别了?

测试实际上是比开发更牛的,只不过大家碍于现状,不好意思说这个事情。对测试的能力要求,比开发还要高,只不过是说现在的测试行业里面,大量的人是没有成长起来,导致大家觉得开发比测试牛。

举个例子,开发工程师每天做什么呢,学网站开发,学数据库查询,学各种工具,每天的工作就是产品经理告诉你我要在页面上加一个好评,有多少人点赞,你给我实现这个功能,开发就去后台里面,第一个,数据库里面加一个字段,第二个,代码里面加一段查询,第三个,在网页端,加一个展示的效果。每天,每年常年的都是在做这样的事情,你可以认为就是数据库的增删改查,加上网页的展现,多数的开发都是这样,只有少数的开发会走出来,比如说进到更强的架构层去思考解决方案。多数的研发也是困扰于日常的搬砖。

测试做什么呢?首先是人工的测试需要去做,第二个是自动化的测试要去做,第三个,专项的测试也要去做,之后是什么呢,测试的左移,对研发质量要提前发现一些问题,同时上线之后的产品要进行质量的监控,发现一些线上用户的崩溃问题,了解所有的业务场景。所以在总体的范围里面,测试比研发更有前途的。在技术能力的要求上,也要求测试具备比研发所不知道的一些东西。

举个例子,耗电量怎么去测,内存泄漏怎么去测,一些底层的性能,压测怎么去测,这些东西研发日常是接触不到的,反而是我们测试经常需要去关注这些指标。测试是比研发更有价值的一个岗位,但是遗憾的是,我们。行业所有的测试基本上都去忙点点点去了,忽略了对质量体系的建设,以及测试流程的建设。

后面你们会慢慢发现,随着devops、持续交付这一套东西的流行,测试,运维,会慢慢的去管控整个公司的质量,然后研发只需要负责写代码。在目前以及过去的这些年,研发是比测试有优势的,就是因为高阶的质量保障,测试行业基本上都没有做,大家做的都是低端的,不是点点点,就是低端的自动化,然后很少有人往上去走,如果你走上来你会发现,测试比开发更有价值。但是两者都是殊途同归,都是开发工程师,只不过一个专注于测试,一个专注于功能的开发。所以现在很多公司,特别是大的公司,招测试开发以及研发去做测试,然后点点点,外包。

好了,闲扯这么多,以后我会专门开始说说测试开发的简历是什么样的,关注我,受益你。

最后再次奉上200G软件测试教程资料,包括用例模板、计划模板、报告模板、性能调优、自动化教程、测开模板、简历模板、面试技巧、大厂真题等,一定有你需要的!点击下方自行获取:

福利福利:

推荐阅读:


更多技术干货请关注霍格沃兹测试学院官方机构号: 测吧 @测吧

测试开发是什么?为什么现在那么多公司都要招聘测试开发?

软件测试的岗位会越来越少吗?

软件测试真的干到35就干不动了吗?

编辑于 2021-11-08 10:07

测试开发顾名思义不单纯是测试,也不单纯是开发。我们蜗牛学院开设的测试课程也是一直致力于培训“测试开发”人才,就借着这个问题给大家做个分享。

首先我们要清楚测试开发是做什么的,测试开发其核心职能依然是测试,开发只是为了更好服务于测试。

测试开发目前主要基于业务驱动和框架平台,需要测试开发人员具备了开发和质量改进的思维,参与到软件开发的过程中去。主动挖掘整个开发过程中的软件的问题并设想解决方案。并通过对整体流程改进,针对软件开发过程中去开发出一些测试平台、框架、工具,最终目的是提升产品测试效率。

测试开发岗位的工作职责范围在不同行业、公司之间肯定会有不同,可以参考招聘平台的职责描述。如下图:

我只是随机截图了几个招聘,如需了解更多可自行去招聘平台查看。通过对比企业招聘的任职要求可以得出测试开发我该学什么?

1、测试基本功

知识要点:系统测试流程,软件测试专业术语,测试用例设计,测试报告,缺陷管理,测试需求分析,测试方案设计,测试用例设计,测试项目实施,缺陷报告与测试报告,测试项目全流程等知识点。

熟悉系统测试的流程规范、能熟练综合运用用例设计方法进行系统的用例设计,并且在项目中实践。

2、数据库

知识要点:常用的SQL命令,子查询、连接查询、存储过程、触发器、游标等数据库概念和语法。

3、操作系统Linux

熟练使用Linux常用命令,熟练部署基于Linux系统的测试环境。

4、编程语言

对于你的情况来说,如果想要入门又怕太难学不会,这时可以选择从Python入门。学习Python编程基础,语法规则,函数,数据类型,正则表达式,文件访问,Python面向对象,异常处理,文件IO,多线程,网络编程等知识点。能掌握Python编程技术并熟练运用Python进行程序设计,深入理解面向对象编程,异常处理机制,多线程原理,网络协议知识,并熟练运用于项目中。

PS:后续工作中公司用Java就学Java,公司用Python就学Python。

5、GUI自动化测试

知识要点:自动化测试工具 、 自动化测试框架 、实现自动化测试用例、通过前面学习的编程语言开发自动化测试工具 、测试框架。

6、接口测试

目前常见的两种接口是WebService接口、HTTP API接口,接口的组成主要有接口说明、调用URL、请求方法、请求参数、数据类型、参数类型、描述、响应参数说明等。

知识要点:通过了解接口的原理,从底层理解,接口该怎么测试。熟练运用各类接口测试工具,同时可以运用编程语言开发接口测试脚本。

7、性能测试

知识要点:性能测试原理、指标体系、场景设计、实施过程、指标监控、结果分析、Jmeter工具应用、Beanshell脚本开发基础、Web前端性能分析、JVM性能调优、MySQL性能调优、Tomcat性能调优、Nginx集群服务器架构部署

PS:做性能测试不单单是测试软件性能是否符合要求,更重要的是需要找到分析软件整体的性能瓶颈。

以上内容掌握好基本上都已经完成了知识的积累,接下来就需要进行响应的项目实战。当然实战这个环节也可以在学习中同步进行,只是为了方便分点描述我写在了最后。

8、综合练习

以移动应用专项测试为例,通过对移动应用功能、接口、性能、流量、弱网、兼容性等方面进行测试。常见的有响应延迟、画面流畅度、闪退、CPU占比、内存、网络、耗电等方面。

9、其他知识技能

持续集成与Jenkins、RobotFramework框架应用、Docker技术、图像识别技术应用、AirTest基础应用等

以上就是测试开发学习的路线规划,学习的内容确实不少,你也不要好高骛远,饭要一口一口吃,知识也是需要一点一点积累,祝你可以学有成效。

希望我的回答能给你带来帮助,如果你还有其他方面想要详细了解的可以私聊我。

祝好!

编辑于 2020-07-02 10:40

直接去看招聘网站,智联招聘这些,然后去搜测试开发的岗位描述就知道要学什么了。

如果你从来没有接触过测试,那么应该从最基础的测试理论,测试方法开始学起,测试用例是整个功能测试的核心。

如果你已经做过一两年的功能测试,想要提升做测试开发,那么肯定是先学编程语言,测试开发嘛,顾名思义,懂开发的测试,一般都是从Python开始入手,简单实用,尤其是写一些自动化测试的小工具,Python特别简单,代码量比较少,如果没人教的话,只能自己网上找视频看了,知乎和B站都有很多,我自己就是今年从手工测试转行的测开,今年大环境不太好,也没敢直接离职,报了测牛学堂的测试开发提升课程,就是在知乎上找了几家机构,对比了一下选的,线上课以老师演示为主的,不懂的问题也可以随时问,还是比较实在的。报班的好处就在于不用自己多操心,跟着老师的节奏踏踏实实学就行了。

编辑于 2021-11-25 08:41
你好,我是测试开发工程师——臻叔。
欢迎和我交流测试领域相关问题(测试入门、技术、python交流都可以)

我几乎是靠这套方法,从一个只会功能测试的小白,到成为测试开发工程师的。

别急,先慢慢看,只要按照下面的流程走一遍,你就会有收获,并有所改善的。

如果是完全的0基础小白,最少要掌握测试基础、计算机基础、业务能力、功能测试。但是如果想要成为一名优秀的测试开发,以上全部都要学。

臻叔从各大招聘平台上对测试开发的招聘要求、测试社区或博客对测试开发的描述以及结合自己的亲身经历,

得出以下结论:

「扎实的测试基本功」

  1. 对业务比较熟悉,能够独立负责某块业务功能的测试工作。
  2. 熟悉测试流程,能够合理的制定测试计划,掌控测试进度,具备敏锐的质量风险意识。
  3. 具备一定的测试思维,能够设计出较高质量的测试用例
  4. 测试手段丰富,至少在APP、小程序/H5、WEB、SERVER等,在其中某一端具备扎实的测试经验。
  5. 对于常用的测试工具做到如数家珍,并对这些测试工具运用自如
  6. 有一定的测试架构能力,对CD/CI有一定的了解,并且了解一些DevOps的具体实践

「扎实的计算机功底」

  1. 熟悉计算机网络,尤其是对HTTP、TCP协议要有深度的了解。
  2. 熟悉操作系统及基本原理,进程线程、CPU调度、内存管理、IO读写等
  3. 熟悉数据库,熟悉主流的关系型数据库及非关系型数据库,能写出复杂场景下的查询SQL。
  4. 熟悉Linux的基本使用,擅长编写Shell脚本

「扎实的编程功底」

  1. 掌握至少一门后端编程语言(Java/Go/PHP/C++),和至少一门脚本语言(Python/JavaScript)。
  2. 了解主流的测试工具/框架/平台,能够基于此进行二次开发
  3. 掌握WEB开发技巧熟悉后端开发框架及中间件,熟悉并掌握至少一个较为流行的前后端分离项目。
  4. 掌握IDE工具的基本使用会使用Git等代码版本控制软件。
  5. 具备良好的编程风格,了解基本的代码调优技巧。

「软实力」

  1. 敢想敢做,勇于尝试,具备创新精神。
  2. 善于思考,善于总结,善于查资料
  3. 具备勇攀高峰,克难攻坚的品格。
  4. 具备良好的沟通能力。

怎么入门测试开发?

「一、强化测试基本功」

加深对业务的理解

❝不能落地到业务的自动化测试,等同于耍流氓,我们做任何测试开发,最核心的目标,肯定都是要为业务赋能。那么如何加深对业务的理解呢? ❞

臻叔有几点建议:

  1. 长期维护一份全流程的测试用例,不用写得太细,但是要写得全,并且要经常更新。目的是帮助我们快速梳理业务细节。
  2. 养成手绘业务流程图的习惯,并善于总结和做笔记。
  3. 看开发写的业务代码,从代码层面去对深入理解业务细节。
  4. 研究竞品,包括功能、性能、稳定性方面。

提升个人测试能力

有以下几点建议:

  1. 掌握主流的测试手段,包括并且不局限于:自动化测试、接口测试、性能测试、稳定性测试、安全/渗透测试、移动端测试、服务端测试等。
  2. 对于业界流行的测试工具做到如数家珍,为此,臻叔专门写了一篇文章介绍《 测试开发「核武器」库:awesome-tester,了解一下》,或公众号后台回复:测试工具。
  3. 想要解决测试痛点,不要闷头苦想,闭门造车,你遇到的问题,大厂肯定都遇到过。可以在网上找一些大厂的解决方案,或直接询问在大厂工作的朋友。

「二、强化计算机功底」

❝计算机基础就像男人的存款,可以不用,但是不能没有。❞

「如果实在没有一点基础」,建议进行系统性的去学习,可以去网易云课堂进行深入学习: study.163.com/curricula


「如果有一定的计算机基础」,有以下几种途径来强化基础:

  1. 时间充足的情况下,系统的去看计算机专业书籍。推荐《操作系统》、《图解HTTP》、《图解TCP/IP》、《MySQL必知必会》等。关于测试岗位必读书籍,臻叔专门写了一篇文章介绍《 软件测试必读的48本书,你值得拥有!》
  2. 看技术博客:小林coding、良许Linux。
  3. 刷技术面试题,可以查缺补漏涨姿势,还能为跳槽面试做准备,岂不美哉?
  4. 极客时间、慕课网等在线学习平台进行自主学习。

「三、强化编程功底」

这里送大家四个字:勤学苦练。

编程语言的学习,千万不要一直停留在语法和基础的学习上,如果你长期停滞在这个阶段,不能突破,那么可能你真的不适合编程。

❝编程语言只是我们完成测试工作的一个工具,不要为了编程而编程。 ❞

为了把编程技术落到实处,我们应该多去学学一些测试工具/框架/项目,以及Web开发框架/项目,利用这些项目来帮助我们达到目的。

这里推荐大家几个比较优秀的「GitHub项目」去钻研学习,学学人家是怎么组织代码,以及是如何把工具变得简单易用的:

「UI自动化」

  • 【uiautomator2】基于Python的ui自动化框架,API简单易用。

「接口自动化」

  • 【sosotest】基于Django(Python)的接口自动化框架,支持HTTP、Dubbo测试。

「稳定性测试工具」

  • 【Maxim】号称智能Monkey,真香。

「抓包工具」

  • 【Mitmproxy】对Python有良好的支持

「命令行工具」

  • 【Arthas】阿里开源的Java诊断工具,易用性高,可以学习该工具的测试思路

「前端后台项目」

  • 【vue-element-admin】基于vue、element-UI的后台项目模版

「整站开发项目」

  • 【mall】Java的电商平台整站开发项目,学完能够对电商系统的设计有更深的了解,并且前后端都会涉及到,技术提升全面。
  • 【RuoYi-Vue】前后端分离的后台项目,基于vue+springboot,可以作为测试平台的搭建基石

以上项目,可以在GitHub去搜索获取。

「四、强化软实力」

学会看英文技术文档,以及看优秀的项目是怎么去编写技术开发文档的,不断的模仿、学习、提升。

另外,可以多在公司小组内进行技术分享,提高沟通和表达能力。


我是专注分享测试干货的臻叔,喜欢的可以 关注哦~

其他精华文章——

臻叔自己转行到测试开发的经验总结(精华)

软件测试必看书单:

❤既然都看到这里啦,请你帮个忙:

1、点赞,让更多小伙伴看到;
2、关注我,持续更新测试干货。

发布于 2021-04-20 12:27

什么是测试开发?

  • 一定不仅是测试(需要你具备敏锐的开发视角,及其强大的开发能力)
  • 一定不是开发(测试平台不是产品,而是工具,无须严谨校验,无须完美的用户体验)

测试开发平台是产品吗?

对于一个不是产品的东西,我们测开(或者领导)对它的要求是什么?

  • 效率
  • 至少能实现基本的自动化测试
  • 无需花里胡哨的功能
  • 无需繁琐的校验
  • 能用轮子尽量用轮子
  • 能少写一段代码,就少写一段代码

想学会测试开发,首先得会编程,测试开发可选语言Python或者Java。

如果我选Python,那么测试开发应该怎么学习呢?怎么规划学习路线呢?

第一部分:Python高阶编程

(万丈高楼平地起, 没有一个扎实的编程基础, 学测开那就是天方夜谭)

01:虚拟环境及编码规范,具体内容如下图:

02:数据&函数进阶,具体内容如下:

03:面向对象进阶,具体内容如下:

04:并发编程,具体内容可以看下图

第二部分:Web前端

(虽然测开不是专职前端, 前端"灵魂画师"不好做, 但页面基本的"美容", 看得懂, 改地动, 那是非常有必要的)

01 HTML&CSS

02 JavaScript

03 Jquery&Vue

第三部分:django框架&实战

为了提升平台开发效率, 站在巨人的肩膀上, 那是必然的

现今最流行的Django框架结合Django restframework框架来开发符合restful风格的API接口

掌握上面3个部分,你基本上就可以开展测试开发的实战项目了。实现测试开发平台

测试平台
柠檬班测试开发平台

第四部分:测试开发专项技术

不会化妆术, 不懂PS技巧的小姐姐, 是没那么美的.同样, 好的测开平台, 没有周边技能那是不行的

01 Shell脚本编程

02 容器技术Docker

03 Devops持续交付

04 App专项测试技术

第五部分:Flash框架&框架演示

好的东西再多也不嫌够, 我们既要感受"精装房"的美, 也要享受"毛坯房"各种DIY的无限自由, 所有Flask框架的加持可以让我们飞!

01 Flash基本操作

02 Flash数据库操作

03 项目实战

如果能掌握上述这条学习路线,那么你就是测试开发大佬了。

Boss直聘上月薪30-40K的测试开发岗位,可以随便投了

最后分享一个测试开发岗位是面试经验分享

PS:如果还是一头雾水,文末最后准备了测试开发学习视频,内容涵盖如下:

视频不断更新中......有需要的同学可以留言

希望我的回答对你有用哦

编辑于 2019-10-11 15:18

1.测试开发不完全等于测试

2.测试开发不完全等于开发

3.测试开发不完全等于自动化测试

将123综合一下,就是测试开发了。

至于怎么入门,你得先把你的环境条件交代一下呀?不然怎么给你建议呢?

大体来说,应该是


1.找到一门熟悉且熟练,能快速产出小工具的开发语言

2.熟悉项目内各种工具的使用方法和实现方式。

2.1 如果是脚本,那么用你可以写一个简单点的工具进行整合(耗时3天内,超过就不要动了)

2.2 如果是内部工具,尝试理解,并且拿到源码尝试进行修改

2.2.1 如果没有人维护的话,你得进行维护,尝试添加新功能

2.2.2 如果有人进行维护,你多向他请教,然后尝试添加新功能(别改主干代码,会炸)

2.3 如果是外部工具,尝试抽离出需要的核心功能逻辑

2.3.1 简单的话,自己尝试实现

2.3.2 不那么简单的话,找一找有没有命令行的执行方式,例如是用了压缩工具,你搜一下[rar bat]就可以找到很多rar的命令行工具。在自己的语言内把这个工具调起,例如java,你可以用Runtime.getRuntime().exec(cmdStr);

2.3.3 实在有困难的话,还有一招,世上无难事,只要肯放弃,嘿嘿。

3.只要智商不滑坡,办法总比困难多,面向百度编程,你能遇到的绝大多数问题,前人都踩过坑了

测试开发,需要的技术栈会有很多

1.在小厂里,资深测试开发需要用到的技能通常需要有很大的包容性,这里推荐走专门的自动化脚本开发的路子,怎么深入业,百度呀

2.在大厂里,大家都是螺丝钉,你选一块感兴趣的,深入,例如集成测试或者单元测试,或者版本流程相关,做好一块就可以了

3.以上都是我瞎编的,包括这一句和下一句。我都不懂测试和开发,真正的大佬哪有空上知乎来吹水,也就我这种只会摸鱼打酱油的食物链底端高级打杂工程师才这么闲的吧.....

发布于 2019-09-17 10:05

测试开发是什么?

其实很多人对于测试开发这个词语不陌生,可问起具体是干什么肯定还是很疑惑,说白了,同时具备专业的测试技术和软件开发的能力,干着服务于开发与测试的工作,这就是测试开发。

测试开发工程师的技术栈要求:

对测试开发工程师来说,看懂代码,熟练使用测试工具,能做ui、接口、性能的测试,具备测试经验和测试思想逻辑是基本要求;

既要会业务功能测试,又要能做代码层接口及单元测试,更重要的是通过能力和经验的积累,能搭建适用于技术研发团队的工具平台,以更好的降低公司成本和提高工作效率,从而要求我们能够开发更适合公司内部业务的测试工具系统。

更多软件测试行业资讯可关注主页哦~

发布于 2023-01-11 17:47

测试开发顾名思义就是测试思维+开发技术+质量管理,所以作为测试开发工程师三者方面都得具备的,你具体可以看看 Python服务端测试开发实战 - 网易云课堂,深入的学习下这部分的知识。希望我的回答能够帮助到你!

发布于 2022-07-28 17:12

学习测试开发技能,我看下面视频感觉还是讲的挺实在的,一个细字贯穿全场,最主要的是有项目案例来实操,边封装边实战。讲的挺详细的。

发布于 2023-08-01 16:28

测试开发成长学习路线——引导篇

我相信,有很多测试人员会不断问自己,自己到底要不要坚持做测试,测试的职业发展到底怎么样?如果你还在迷茫,在到处找各种大牛问类似的问题,我希望这篇文章,你看完能够结束你的这个烦恼,给你更多的指明方向,当然也有更多的压力。

这个问题,就像大学报考专业一样,很多人问选什么专业比较好,将来毕业就业前景好,薪水起点高。我不会争论这种思想如何不好,回到中国的一句谚语:360行,行行出状元。假如你现在是做测试,你身边同事是做开发,你们对比,肯定有伤害,是吧。会不会有一种,选择了做测试,死路一条的感觉,后悔过没有。后悔也没用,关键是如何去弥补,我们和别人的差距。任何职业,只要你足够努力和坚持,你也会成为大牛和专家。

测试工程师主要干的事情就是测试,找出程序的Bug,尽量在程序发布出去之前,把一些潜在的,严重的bug给提前指出来,降低软件研发过程修复bug的成本。

测试是一个比较综合和全面的职业。测试人员需要和很多人员打交道,这些包括开发人员,产品经理,业务人员,运维人员以及其他和这个人软件生命周期有关的人员。软件测试入门门槛低,几乎简单培训不到一个月,人人都可以做测试工作,但是不是人人都能做好测试工作。

我们私下经常调侃,一个好的测试人员,他可以写代码,水平甚至不输给一般开发人员。好的测试人员,可以去产品,他懂得一些设计常识,为什么好多招聘app测试的要求要有互联网思维,能够提出对产品的改进意见,就是这个道理。好的测试人员,可以去做运维工程师的事情,测试也需要代建环境。好的测试人员,可以熟悉linux和shell脚本,有的可以做软件的持续部署,这个在测试持续集成里面的技能。好的测试人员,可以去做业务。有人在银行软件测试,之后被银行录取了,就因为人家非常了解银行业务,从软件测试就到了甲方的业务人员。

所以,测试很容易做,也很难做好,做精通。测试职业发展之路,很长,需要不断学习,不断进步,不断提高自己各个方面的技能,包括软技能和硬技能。硬技能,主要是技术相关,这个是你吃饭的本身,软技能主要是你的工作中的情商,如何处理矛盾,如何处理人际关系等等。

到了这里,对软件测试职业发展,有了一定了解,有动力,也有更多的是压力。有迷茫,不知道如何下手如何去提高。所以,现在开始聊聊,如何提高技术能力这个话题。大致的意思就是,从软件测试入门,学习各种技术,然后到达一个比较好的职位和薪资水平。这是一个很长的,很痛苦的过程。有很多人,没开始就放弃,有很多人,开始了一点,就死在沙滩上,不想改变自己。有的人前进了一大步,初步达到了他想要的结果和目标。下面,我给出一个学习成长路线,也许不适合你,但是希望对你有帮助。



上面只是描述了一种测试职业道路发展规划,偏重代码技术方面。测试领域有,服务器端测试,客户端测试,安全测试,性能测试,接口测试,自动化测试,渗透测试,测试开发。所以,如果你达到了测试开发的水平,其他方面测试,对你来说也不会太难。

软件测试理论知识,这个必备,当然,有些基本概念我都不清楚,所以,有时间,我也得去学习,复习下软件测试理论。这部分包括,软件测试基础理论和方法。例如软件生命周期,测试用例编写方法,软件测试原则。软件测试管理相关技术,软件各个阶段评审,软件测试计划编写,软件测试过程管理,软件验收,软件测试整个过程一些文档规范等等。

语言基础,这部分,你可以选择Java或者Python入门。或者其他编程语言,这部分,在我博客都有入门教程。看你适合Python还是Java,我个人推荐先Python入门,然后再去学习Java。初学诶,认真学习一个月足够,第二门语言,一个礼拜就可以入门。基本上很多思想和语法是相通的。

手工转自动,这是一个痛苦过程,有些人天天看语言基础,不知道如何练习,天天入不了门。这里推荐,在你学习了一个语言之后,你一定要找一个事情去练习,熟悉这个语言的基本使用。推荐,结合Selenium学习Web自动化测试。通过脚本编写,有助于你提高语言基础知识的理解和运用。在练习自动化脚本过程中,你得到快乐,会帮你提升学习兴趣。

自动化脚本开发,这个是在手工转自动过程之后,你需要大量的练习,如果Selenium自动化脚本开发,你起码要完成100个自动化测试用例,你需要对seleinum达到熟练使用的地步。快速写出自动化测试用例。

了解和接触框架,这里提到框架,是指自动化测试框架,不是指开发用到的框架。继续深入研究Selenium和一些自动化测试框架的知识。例如,什么是框架,框架解决什么问题,框架组成组件有哪些。这部分包括,单元测试框架,Java中Junit或者testNG,Python中unittest.

设计简单测试框架,这个在我博客也有,例如Python+Selenium从零开始到设计自动化测试框架。先学会设计一个POM设计思想的框架。

常见设计框架设计,前面我们有了POM设计框架的思想,接下来我们要学习数据驱动框架,关键字驱动关键,混合测试框架,还有行为测试驱动框架。

Linux和数据库,不用说,自动化测试到一定深度,也需要用代码连接数据库去进行测试,linux和shell脚本,基本上测试环境也会接触到。如果要做自动化部署和运维,常见的linux和shell脚本是有必要学习的。这部分,请看linux和shell脚本入门系列。

版本控制和持续集成,有些人在公司接触了版本控制软件,例如SVN和git,随意选择一个你公司在使用的版本管理软件,去学习它,要学会基本的操作,工作中常见的,用得到的需要掌握。持续集成,这个一个很火的话题,看到持续集成就要想起Jenkins,需要安装和简单配置Jenkins,如何在上面挂一个job等等,这部分,接下来我会写系列文章。

Web前端,放在这里,是为后面的web开发学习做准备的,前面的自动化测试,我们接触了一点点前端的知识,这部分已经有了javascript入门教程写,接下来会写HTML和XHTML和XML和CSS等入门教程。

写一些小程序,假如你是选择Python,你可以试试爬虫。Java其实也是可以写爬虫。

完全掌握一门编程语言,这个可以放在和写一些小程序一起去学习和实践。如果你选Python,你可以学习Django框架进行开发一个web或者一个博客。如果是Java,你需要学会web开发入门,尝试去了解Java三大web框架,优先学习SSH框架。后面的阶段,我就不介绍了,我也不会,也是我的一个学习目标。

虽然市场上,很多测试开发工程师,没有这里提到的各种水平,但是他们有一个特点,开发,代码基础特别扎实,甚至有些做过一两年开发。我强烈建议你按着这个学习路线进行学习,坚持学习,尽量到达测试开发的目标,如果达不到,你也会接近这个目标,你到时候的能力也会让大部分羡慕,相信自己,努力学习,坚持下去,不轻易放弃。

原作者:Anthony_tester
原出处:CSDN
原文链接: blog.csdn.net/u01154194
版权声明:本文为博主原创文章,转载请附上博文链接!
发布于 2020-09-03 14:53

我的职业生涯开始和大多数测试人一样,开始接触都是纯功能界面测试。那时候在一家电商公司做测试,做了有一段时间,熟悉产品的业务流程以及熟练测试工作流程规范之后,效率提高了,工作比较轻松,也得到了更好的机会去发展。

在后来的公司得到了领导的信任,待遇方面工资加上年终奖,加起来年薪能达到20W。由于当时公司规模和产品的局限性,导致自动化测试始终未能应用到公司项目中。外面的世界很大,自动化已经流行而且越来越普及,内心经过一番抉择后,我更想要突破自己的技术瓶颈,所以选择顶住了压力,跳槽到一家公司专职做自动化测试工作。通过不断的项目经历和机会,我将公司产品前后端的自动化测试全部落地实现。


那些自动化脚本真正成为了公司资产,每次上线回归带来的收益远超出我的预期。并且定时在公司的技术分享会展示效果,那种从0到1的成就感非常难忘。后面负责自动化测试团队工作,核心框架搭建。学习用到的技术栈:包括Python、Selenium、RF、Requests、Jenkins、以及见识到先进主流的Docker容器技术,持续集成


从手工到自动化测试/测试开发,给我带来的帮助不仅仅是20W到40W,待遇上面的提高,包括做自动化测试遇到的坑,解决问题的思路,以及技术瓶颈的突破,形成一套知识框架体系,得到一套有效落地的自动化测试方案

目前测试平台项目研发已经完成,并且在Github开源,有兴趣的朋友可以去Github下载 github.com/ooqitech/ATP

这10年,我看到了太多想提升技术而没有明确方向的人,深刻的体会到测试人的技术痛点,以及初级测试这个角色在互联网公司的待遇和地位远不及其他岗位,甚至还是会有很多人会认为测试在公司随时能被取代,可有可无。

一切的迷茫都是因为想得太多而做的太少!每位软件测试行业从业者都能意识到目前自己面临的窘境,但能及时作出改变,顺应时代变化的人还是太少。IT技术行业唯一不变的就是一直在变!多数人明明“泰山崩于前而面色如土”却只能眼睁睁看着自己被行业淘汰吗?

并不是,下面的测试人测试开发成长路径,会给你带来灵感和方向:

零基础快速入门分为五大模块:

一、测试理论(掌握测试流程、用例设计、缺陷跟踪,测试报告)

二、Linux(掌握XSHELL/XFTP的使用以及SHELL命令使用)

三、MYSQL数据库(掌握MYSQL数据库服务端和客户端的安装与使用)

四、接口测试(掌握接口测试的理论以及工具的使用)

五、APP测试(掌握APP的ADB/MONKYE指令的使用)

全栈进阶自动化测试开发分为六大模块:

知乎问:Java测开好python测开好?

写回答:python对于初级者更容易上手,开发效率高,对于测试工程师来说,python也是市场主流,占据了70%,java只占了20%,其他语言10%
python也是爬虫利器,大数据,人工智能的高级语言。在 Google 公布的编程语言流行指数中,Python 依旧是全球范围内最受欢迎的技术语言!

一、测试进阶-Python语法

掌握基本的Python基础语法规则,全方位提升Python编程技能,面向对象思维。

二、测试高级-Web自动化测试

全面掌握元素定位技巧、POM设计模式,关键字驱动、数据驱动、Selenium的WebUI自动化测试技能。

三、测试高级-APP自动化测试

全面掌握app元素定位、小程序自动化,Python+Appium的APPUI自动化测试技能。

四、测试高级-接口自动化测试

全面掌握Requests库的HTTP协议接口自动化测试技能,Websocket接口测试、Dubbo接口测试。

五、测试高级-持续集成

掌握自动化持续技能能力、自动化用例脚本运行产出报告、自动化发送邮件、全流程持续集成自动化。

六、测试架构-开发测试框架

独立搭建接口、UI测试框架、接口与UI框架整合一体化、场景关联应用,建立自己的技术体系。

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

如果你是一个自我管理能力非常强的人,建议自学,如果不是,那么建议参加专门的测试培训班。企业落地实用的项目十分重要!

我还整理了一些测试人从手工到测试开发的全栈内容和项目(九大项目实战+多套框架+场景实战演练)

加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。

最后:

种一棵树最好的时间是十年前,其次是现在。测试人~晚安!

发布于 2020-07-11 03:32