其实初级测试学的东西并不多,如果脱产学习的话2~3个月差不多就能简单入门。
另外不要担心,初级测试对于Python/Java编程,自动化测试,性能测试这些都是初步的了解和学习。如果说要深度掌握,那确实是还需要很多时间。
好了,现在开始正题。
自学软件测试,学到什么程度可以出去找工作?
首先祭出我的法宝——测试成长技能图谱v1.0

乍—看好像很多,但是其实可以主要分为三大部分:
1)软件测试的基础理论︰软件测试的定义、分类、目的,生命周期,以及黑盒测试和白盒测试。
2)测试的工作流程∶需求评审与分析,测试计划与排期,测试用例编写,测试用例评审,构造测试数据,测试环境部署,执行测试,Bug提交与跟踪,测试报告编写,测试文档编写。
了解了这些知识,你才算一只脚踏进了测试的大门。至少知道测试每天日常的基础工作都是做什么的,心里有个数。
1)熟悉操作环境: Windows、Linux、MacOS、Android、ios。
这里重点是要掌握Linux系统的使用。
2 ) Web测试:浏览器开发者模式(F12),浏览器清除缓存数据,浏览器查看网络请求,浏览器查看Console,浏览器查看DOM Tree,浏览器插件安装。
如果要测前端H5页面(比如618大促活动页),小程序,后台管理页面,都需要用到以上知识。
3 )App测试:APP安装与卸载,网络请求抓包,手机Wifi设置,APP UI、文案测试,APP交互测试。
4)网络抓包∶手机端抓包Fiddler、Charles、Stream ; Web端抓包∶浏览器F12;HTTP协议抓包:Fiddler、Charles ; TCP抓包: Wireshark。
简单来说,就是要了解这些工具到底是怎么用的,等你入职之后,安排给你一个测试任务,你要能自己抓包,看客户端和服务端之间的网络传输数据状况。
如果你之前是计算机相关专业的,这部分就很简单了,基本上不用学,复习一下就可以。
1)操作系统基础∶计算机的组成部分,计算机是怎么跑起来的,CPU是什么,内存是什么,硬盘是什么,IO是什么,进程和线程,进制换算。
2 ) Linux基础:终端工具使用:SecureCRT、Xshell、iterm2 ; Linux常用命令;目录操作: cd,pwd、ls ;文件操作:cat、more、less、tail、vim、mv、cp、rm;权限管理: chmod,chown、sudo、su ;进程管理:kill、ps。
Linux相关的命令和操作非常多,不需要全部记住,初学者记住我列出的这些最常用的,基本上工作中就够用了。
3)数据库基础∶数据库连接,创建数据库,创建数据表,数据库的增删改查,数据库可视化工具:Navicat、sQLyog、Workbench。
4)前端基础:HTML ,cSs ,JS,XPATH。
5 )计算机网络基础:HTTP协议,HTTP请求和响应,HTTP常见请求方法,GET和POST的区别,HTTP响应状态码,HTTP和HTTPS的区别,Cookie和Session的区别,URL和URI的区别,OSI七层网络模型,TCP/IP五层网络模型,TCP和UDP的区别,TCP三次握手和四次挥手,网络Socket。
不要小瞧这个计算机网络基础,至少30%的面试题都是从里边出的。而且工作以后你会发现,基础扎实对于你后边做接口测试和性能测试,有非常大的帮助。
最后,想要找到工作的话,其实面试官还是会更在意你的项目经验(培训班一般会提供商业项目让你去实测,但是这类项目和大型商业项目还是有一些区别)。
如果没有项目经验的,至少要让招聘方看到你扎实的基础,如果问到上边说的这些基础知识,一定要回答的出来。
不然的话你没有实战经验,基础又不牢固,找工作困难就不是那么顺利。
关于测试的基础部分,今天暂时写到这里,如果还有不明白的,欢迎在评论区和我交流~
最后我也整理了一些软件测试学习资料,对于学软件测试的小伙伴来说应该会很有帮助,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html