相信每个准备软件测试面试的同学,不管你是大学刚毕业,满心憧憬着进入公司实习、非计算机行业转行软件测试、自学测试就业还是培训后就业,都会面临着众多的疑问和不解,那就是该怎么走出着第一步,今天本文一次性告诉你,该怎么准备?
本文共10000+字,适用测试小白转行、测试老鸟跳槽,建议收藏慢慢看~~
由于篇幅较大,准备了目录,方便阅读:
一、自身技能积累篇
二、简历制作篇
三、常见面试题-智斗HR篇
四、常见面试题-技术篇
五、写在最后-友情赠送
入行软件测试的路有很多,诉求也是因人而已,你可以选择自学、培训入行,但按照全栈软件测试的要求准备,可以适用不同行业要求;
1、学习方式
培训方式入行,其实是最实惠、花费时间最少、有效的一种方式。如果你不能脱产培训学习,可以边上班边学习,充分利用好晚上、周末时间进行学习,充分利用网络资源,在技能积累足够的时候,选择跳槽即可。
2、常见的测试工具
测试工具永远是软件测试人员的得力助手,不能完全依赖工具,但也不能没有工具,在学习软件过程中,要著中软件测试工具的使用,下图覆盖初、中级软件测试工程师所需具备的测试工具,要想学好,下手学习吧。
混在软件测试职业圈,工具千千万,不可能每个都会用,至少要知道有哪些工具可用,什么时候该用什么工具,每个工具能解决什么问题,然后再深入应用几款工具即可,下面就带大家总结一下。
禅道:简单好用,市场主流,互联网行业居多
Jira:简单好用
QC/ALM:复杂,收费,电信/金融行业使用较多
bugzilla:功能简单 svn:代码和文档管理工具
git:但是多分支管理比svn好
Jmeter(开源) postman SoapUI 推荐使用 jmeter 和 postman。
loadrunner:大而全,要学精通还是有点难度,重量级工具,过去和现在都是行业老大
jmeter:基于java平台的性能开源测试工具,其实也很强大,而且比较好用
Locust:基于python的一个性能测试工具
junit/testng:java下的单元测试框架
unittest/pytest:python下的单元测试框架
cppunit:跨平台的c++单元测试框架
PhpUnit:Php语言下的单元测试框架
TestBed:一个重量级的白盒测试软件,可以进行单元测试、集成测试、静态测试,军工行业常用
Klockword:静态测试工具,军工行业常用
Jenkins:比较常见的一种CI工具 Hudson
以HTTP/HTTPs协议为主,网络测试工具有: wireshark fiddler charles
appium:这个应该算是目前最流行的基于app的自动化测试框架了
uiautomator:安卓自动化测试框架,基本上支持安卓的所有事件操作
Monkey:安卓自带的测试工具
Monkey Runner:Monkey改进版,支持自己编写脚本测试,用Python语言
Robotium:一款国外的Android自动化测试框架,用法比较
appscan:算是用的非常多的一款工具了,扫描后能够将绝大部分的漏洞找出来
fiddler:网络抓包工具
burpsuite:暴力破解、抓包工具
skipfish:这是一个轻量级的安全测试工具,处理速度很快,每秒可处理2000个请求。
3、全栈软件测试技能要求
先来看下软件测试工程师的技术进阶路线吧,从测试工程师入门,可以经历功能测试、自动化测试(app、web、接口)、单元测试,最后可以定位测试开发工程师发展。
不要再道听途说,软件测试是一个点点点的行业了,那已经是老黄历了,如果仅仅是点点点,是没有任何竞争力的,给自己定个长远点的目标,勇敢的跨出一步吧。
(1)通用软件测试技术及理论
测试基础理论是我们迈入软件测试行业的基础,不少人会以为这些是无用的,作为十年的测试老兵负责人的告诉你,这些东西决定着你对软件测试理解的深度,决定着你将来能走多远。这些也是各种中高端软件测试技术、新技术的基础。
(2)测试环境配置
测试环境配置、搭建也是一个测试工程师必备的技能,这就要求你要对Liunx系统、mysql数据库、docker等有一定的了解,至少这些知识可以作为测试的辅助,而不是包袱,也是你从测试工程师向测试开发工程师迈进的的基础。
(3)掌握至少两门脚本语言
测试工程师还是要区别于开发的,开发可以在一个语言上纵向发展,但是作为测试工程师,就要要求掌握多种语言,以应付不同的项目、不同的团队要求。建议大家以python为首,java语言为辅学习,查看各大招聘网站,基本上也是以这两种语言为主的。
(4)UI自动化测试(web、app、小程序)
我们以python栈为主线,梳理自动化测试需要掌握的技术点,我们自动化又可以分为web端自动化技术、app端自动化测试技术及接口自动化测试技术。
UI端的自动化测试技术在经过前面几年的发展及验证,存在着很多自身的不足、性价比低的特点,企业需求也在逐渐减少。
(5)接口测试(短期内需求猛增的技术)
接口测试是一种目前较为流行的测试方向,名字看起来特别的高大上,但是技术实现非常简单,通俗点就是把浏览器做的事情(打包请求),我们自己手动来打包,并完成发送,通常市面上的主流的测试工具都可以实现打包的要求。
(6)性能测试技术
作为非功能性测试的技术,算是软件测试的半壁江山,前几年的辉煌,也在云服务慢慢被中小型企业接纳的今天,逐渐没落。
(7)持续集成
随着软件系统越来越复杂,软件测试越来越繁琐,传统的软件集成模式也不再适应。
针对这种情况,持续集成被引入到测试工作中,协助测试人员进行自动化部署、启动、测试,常用到的工具有,jenkins、docker、git/svn。更多测试技术,我这里都为大家准备好了,点击下方小卡片免费领取~
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!qq群号:110685036
简历是你展示给企业的第一名片,对你印象好坏,能不能吸引HR的目光,决定着你能不能进入面试环节,所以一个好的简历起到了至关重要的作用。
此处重点关注两个点:
1、技能列表
把自己熟练掌握、掌握、熟悉、了解的技术、工具按照顺序展示出来。
自己的亮点一定放在最显眼的位置,直接抓住HR的眼光。
技术上要齐全,包括功能测试、接口测试、性能测试等,及其相关工具的使用。
对网络协议、数据库、Linux等也要有一定的基础
对语言类,一般要掌握java、python两种脚本语言的使用。
2、项目经验
根据自己的实际工作经验,梳理项目,可以分项目描述及项目职责两部分即可。
作为软件测试的面试者,整个面试过程都会与HR打交道,但是需要斗智斗勇的还是电话初面、终面谈薪。
1、电话初面
要知道,初面是HR通过各种渠道(boss直聘、智联、猎头)获得你的简历,初选后与你进行的第一次接洽,要知道现在的HR对你的理解都是从简历上来的,那这次电话面试很大层度上想了解下面几点,【你只需要回答她想听的即可】。
【在介绍完自己的基本信息之后,从项目、自己工作职责角度,逐步引出自己擅长的技术、工具等,通过间端的 介绍,让面试官了解到简历中所看不到的一些信息】 你好,我叫xx,来自xx,毕业于xx。目前有两年的功能测试经验。最近的一份工作是xx公司,主要参与app系统测 试,负责xxapp,一款类似抖音的短视频app功能测试,负责过的功能模块有拍摄、上传、搜索、推荐引擎等。 主要运用边界值,等价类,错误推测等常见黑盒测试方法。
2、现场面试(二面、三面....)
如果电话初面没问题,符合他们企业要求的话,就会约你线下二面,当然这块以技术面试为主,也会有HR在场问一下HR关心的问题
3、终面谈薪
通过了技术面试,根据技术面试官的评级,HR就会根据岗位薪资范围定薪,这次电话就是和你确定几个情况,如果都能谈妥,HR就可以发邮件申请发送offer了。
其实对面试题准备,无非下面几点,我们只需要在面试前,分门别类去整理即可,有的需要去背、理解,有的需要去操作、使用,但不管怎样,最终的要求都是能说出来,而且是转化为自己语言说出来,这个很重要,如果存粹是背的,会给面试官留下不好的印象,只有自己真正理解了,才能获得更多的机会。
下面每个部分,提供五六个面试真题,权当抛砖引玉。
下面每个部分,提供五六个面试真题,权当抛砖引玉。
1、测试环境问题
这块主要是有关windows、linux、mysql、docker相关的内容,是属于测试基础技能。
(1)为什么使用数据索引能提高效率
(2)当前有两张表,表A字段为id,name,address;表B字段为id,english成绩 chinese成绩:请以id关联来那个张表并以enlish成绩由高到低排序
(3)简述ls,pwd,tail,sudo等linux命令的用途,使用方法
(4)如何关闭centos7的防火墙
(5)docker的作用是什么,简单介绍如何在docker中搭建LAMP环境
2、测试基础理论问题
测试理论、方法、原则相关的问题,是属于测试入门级别技能。
(1)什么是回归测试?
(2)如何测试一个 纸杯?
(3)Beta测试与Alpha测试有什么区别?
(4)测试中的“杀虫剂怪事”是指什么?
(5)web系统测试点
3、测试工具使用问题
(1)简述Jmeter和postman工具的区别?
1.支持的协议不同 Postman只支持HTTP及HTTPs协议。
Jmeter支持HTTP、HTTPS、socket、POP3、smtp、JDBC的多种协议
2.步骤的实现(有区别)
Postman使用Collections管理用例,Jmeter是线程组管理用例
Postman和jmeter都是创建http请求
区别1:postman请求的请求URL是一个整体,jmeter分成了4个部分(协议、主机、端口、路径)
区别2:postman可以在请求中直接填写请求头信息, jmeter需要通过添加http请求头管理器添加请求头
3.数据用例的实现
区别1:jmeter比较适合进行数据与操作分离,而postman比较适合把数据和操作放在一起,显然postman操作更简单,jmeter更便于维护
区别2: postman也支持csv数据文件的导入,但是每次执行时都需要收工加载数据文件。不方便(所以只能做半自动化)
Jmeter可以进行完全自动化,特别是引入ant后效果更明显
4.断言的实现
区别1:Postman有很多自带的断言函数,直接引用即可,操作非常方便。。。 jmeter也自带断言组件,操作非常直观。 区别: postman用函数断言, jmeter用元件进行断言
区别2:jmeter支持正则表达式断言,postman不支持
区别3:Jmeter的断言更丰富。 postman需要通过编程来实现同样的效果,所以难度更大
5.执行
区别:默认执行,postman不能保存结果,jmeter可以报存结果
Postman可以通过newman实现批量执行和保存结果,jmeter可以通过ant实现批量执行和保存结果
6.其他
Postman比较适合做手工接口测试,因为简单,可以实现半自动化
Jmeter比较适合自动化接口测试,因为功能强大并且可以保存脚本,批量执行设置很容易
Postman一般用来做接口测试,用来发现BUG,验证后台程序
Jmeter可以进行接口测试及性能测试。
(2)monkey如何使用
(3)常见的ADB命令
(4)postman工具进行接口测试
(5)fiddler的常用使用场景
fiddler的核心功能还是抓取HTTP/HTTPs报文,但也提供了mock、弱网等功能。
4、测试流程问题
(1)软件测试流程
(2)自动化测试流程
5、大厂企业真题(是真题奥)
工作中一些实际问题
不管你是有过软件测试相关工作,还是转行过来,都需要了解软件测试工作中的一些【梗】或者【细节】,这样更方便你快速融入团队。关注我不迷路,有被帮到的朋友点赞收藏吧!
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……