草庐IT

想自学软件测试?一般人我还是劝你算了吧。。。

程序员二黑 2023-03-28 原文

本人7年测试经验,在学测试之前对电脑的认知也就只限于上个网,玩个办公软件。这里不能跑题,我为啥说:自学软件测试,一般人我还是劝你算了吧?因为我就是那个一般人!

软件测试基础真的很简单,是个人稍微认真点都能懂,这就是好多人说软件测试简单、易懂、好学,然后就是一顿浮夸的言论,误导那些小白,这里我就给那些轻浮的人泼一桶冷水,懂和学会是一码事吗?

先来说一下软件测试这个就业吧,我现在生活在祖国的肚皮上——成都,下面亲生经历,我是自学的软件测试,反正当时自我感觉良好,之后就开始找工作,投了10家简历,欣赏了6家写字楼的酒店环境,所幸的是面的6家中有4家给了我offer,虽然工资都不高,但好歹我觉得我还不是那么一无是处,也算是入了行,到后面一步步走上进阶之路,也算是在众多自学人中比较成功的一个了,后面是我写给那些铁憨憨的,你当真要自学软件测试,一定要按我说的做…

这里详细的给大家说下,对于0基础的朋友,应该怎么去学习软件测试。

学习软件测试有2条路可以选:

1.找个靠谱的培训机构去培训啦,你就什么都不用想了,跟着培训结构认真的学习就行了。(90%的人走的路线)

2.当然是自学啦,这里并不会给你推荐培训机构,今天讲的是怎么去自学软件测试。(10%的人走的路线)

二、自学软件测试需要多久?(从真正的零基础到找到软件测试的工作)

从零基础到找到软件测试的工作需要多久呢?还是分两条路来讲:

1.培训机构:最短的2个月,最长的4个月多!(根据公司招生的质量来定的!)

2.自学软件测试:时间的话就真的不好说了,和你手头的资料以及你个人的毅力有关,排除资料的问题,假设你能够弄到靠谱的资料(比如:全套测试视频,全套PPT等),然后开始自学按照一个正常人的毅力来判断:至少4个月把!

从零基础到找到一份正常的软件测试工作,4个月绝对是一个保守的时间,你想想,有些培训机构都要用4个月的时间,培训机构是8小时学习的,你觉得你的毅力能8小时不间断的学习吗?当然我这里并不是鼓励你们去培训机构,而是陈述一个事实!

三、怎么自学软件测试(这是真正的从零开始自学的方案)

我按照薪资的不同大致划分成3个档位:

  • 月薪5-9k:从零基础入门到能够找到工作
  • 月薪15-25k:测试在职搞定性能测试和自动化测试
  • 年薪30W+:搞定测试开发,进入一线大厂

第一阶段:月薪5-9k,刚刚入行,先学会功能测试!

可能你是刚毕业的学生,也可能你是打算转行进入软件测试这个行业,那么首先以下基本的理论你是必须要掌握的:

  • 软件测试的定义、生命周期、工作流程、需求分析;
  • 测试用例的设计、编写、评审;
  • bug的基本知识以及禅道的使用;
  • 测试计划、测试报告的编写;
  • SVN、Git版本控制工具的使用;

搞定上上面的这些基本必备内容,就已经知道可以做具体的实战内容,这个时候最好是先找一个web测试项目去做一下,假如一个项目拿到手之后,按照下面的一套流程跑一遍:

  • 发布项目进行立项,建立项目组进行分工;
  • 需求评审,学会如何看需求文档,进行需求分析,罗列测试点;
  • 整理测试点,编写测试用例,然后进行用例评审;
  • 执行测试,比如功能、界面、前后台、兼容性、数据库,对于发现的bug提交到禅道;
  • 分析、总结、编写测试报告;

这个流程完整的跑一遍之后,只能说对于整体的测试流程算是掌握了,但是仍然不足以找到一份合适的工作,想要学会做功能测试,以下的内容也是必须掌握的:

  • Linux、数据库、接口测试、APP测试等

嗯,大概就是以上的内容吧,以上全部都是理论和文档能力、只要你肯背、肯写,都是能独立的掌握的。

会了以上这些内容,只能说是能够获得一份工作,但是现在行业招人的要求原来越高,搞定自动化或者性能测试,才能拿到10k以上的月薪。

第二阶段:月薪15-25k,搞定性能、自动化测试,独当一面!

先说性能测试,行业内是有很多误区和痛点的:

  • 只测不调,无法给出研发和运维人员执行建议
  • 无法定位问题,缺乏清晰的逻辑和数据证明价值
  • 性能测试工具≠性能测试
  • 性能测试技术体系落后(loadrunner),急需拥抱开源软件

如果要搞定这些问题,那么性能测试你得这么去学:

  • 性能测试的概念和流程:常见问题剖析、流行工具、方案设计
  • 性能测试工具:jmeter工具的使用、实战;jmeter多协议、拓展与定制;分布式压-测与任务调度;
  • 性能监控:性能监控体系与监控数据采集
  • 性能实施:分布式服务压测,场景设计、场景执行;测试结果关联分析,TPS、响应时间、线程关联分析,压力和资源使用率关联分析
  • 性能分析与报告:jvm调试与系统调试;性能瓶颈分析

性能测试你能到这个程度,15k那是妥妥的了,如果下面自动化测试的学习内容你能够掌握,那就可以直接冲击月薪25k!

搞定Python或者Java语言,建议先从Python入手,先学习Python的基本语法等。

  • web端的自动化测试:selenium安装、录制、处理;web控件、JavaScript脚本、PO模式;
  • 移动端APP自动化测试:appium使用、录制、元素定位方法;APP控件定位、交互,参数化用例;appium问题定位分析、源码分析、二次封装;
  • 服务端接口自动化测试:接口自动化测试框架request;接口请求构造、断言;json/xml请求、响应断言;headcookie处理、认证体系;
  • 第三阶段:月薪30k+,对标大厂,冲击测试开发岗位!

性能和自动化玩精通,月薪在10k+甚至是20k+都是很轻松的,那如何冲击30k+呢,这就要求往技术专家或者管理层去发展了,但是即使做管理,也必要要求技术水平够硬?说做管理不需要技术精通?你试试底下的人会不会反你?

  • 在测试开发的路线上,就要求更加专精,更加全面:

  • 完善测试技术体系:Linux、docker、shell、SQL、Python/java

  • 打牢自动化测试技术基础:

  • web自动化测试:selenium测试框架;PageObject设计模式、原则、演练;

  • APP自动化测试:Android自动化测试框架;appium高级应用于原理剖析;APP自动化测试实战;测试框架封装改造;ios自动化测试;

  • 移动专项测试:健壮性测试、弱网测试、崩溃检测、耗电量分析等;移动端性能测试;移动端安全测试;

  • 接口自动化测试:接口协议与抓包、代理技术与mock;接口自动化测试框架、HTTPrunner测试框架;dubbo接口自动化测试;接口管理工具swagger、接口安全测试

  • docker容器技术:docker容器、docker镜像;

  • 持续集成/持续交付/devops:jenkins持续集成;Jenkins持续交付;

四、自学软件测试可以找到工作吗?自学软件测试能就业吗?

自学软件测试可以找到工作吗?

首先我给的答案是肯定的!关键就看你懂不懂路,入没入行!隔行如隔山!

其实学软件测试是很好找工作的,因为一般的高等院校没有专门的软件测试专业,就算有,也不成体系,所以大部分人才都是通过培训机构培养的,但是远远赶不上每年的人才需求,因为软件测试的人才缺口很大。另外软件测试分为功能测试、性能测试、接口测试、自动化测试,只要掌握好其中一个方向,就能够找到相关的测试工作。

作为初级的测试人员,用人单位对你的期待并不高的。你要做的就是积极的表现自己的优点来,比较强烈的做测试的愿望,比较积极的态度,比较主动的学习能力。

五、自学软件测试如何找工作(这是一个测试老司机总结的经验)

1.自学软件测试如何找工作呢?

首先:个人建议刚开始出来最好是去一线城市:北上广深,因为一线城市的就业机会多很多,相对来说更容易接纳刚入行的人,并且一线城市对软件测试这一块更加重视,在流程以及技术方面能够学到更多的东西!

2.自学软件测试简历如何写?

对于简历这一块,个人的建议是必须要包装,必须要包装,必须要包装,重要的事情说三遍!!!为什么呢?因为如果你不包装简历的话,那么在一线城市,你接到的面试电话90%都是培训机构的电话,到时候腿跑断了还没有一个正式的面试你就知道有多悲催了!

我太难了!那怎么包装呢?这里笔者贴一份初级测试工程师包装的简历:

六、总结忠告

努力了不一定有回报,但不努力是一定不会得到回报的。人类的幸福和快乐在于奋斗,而最有价值的是为理想而奋斗。要努力,不放弃,为了自己的理想,为了美好的明天。有梦就去追啊,愣在原地做什么。无论明日,有多落魄,至少今天,没有蹉跎。 生前何必久睡,死后自会长眠。如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以加入我们的学习群(735745871),大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

有关想自学软件测试?一般人我还是劝你算了吧。。。的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  3. ruby - Ruby 的 Hash 在比较键时使用哪种相等性测试? - 2

    我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。

  4. ruby - RSpec - 使用测试替身作为 block 参数 - 2

    我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere

  5. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  6. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test

  7. ruby - 即使失败也继续进行多主机测试 - 2

    我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r

  8. ruby-on-rails - 如何使辅助方法在 Rails 集成测试中可用? - 2

    我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel

  9. ruby-on-rails - Cucumber 是否只是 rspec 的包装器以帮助将测试组织成功能? - 2

    只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您

  10. ruby-on-rails - 如何调试 cucumber 测试? - 2

    我有:When/^(?:|I)follow"([^"]*)"(?:within"([^"]*)")?$/do|link,selector|with_scope(selector)doclick_link(link)endend我打电话的地方:Background:GivenIamanexistingadminuserWhenIfollow"CLIENTS"我的HTML是这样的:CLIENTS我一直收到这个错误:.F-.F--U-----U(::)failedsteps(::)nolinkwithtitle,idortext'CLIENTS'found(Capybara::Element

随机推荐