想要通过软件测试的面试,都需要学习哪些知识
很多人认为,软件测试是一个简单的职位,职业生涯走向也不会太好,但是随着时间的推移,软件测试行业的变化,人们开始对软件测试行业的认知有了新的高度,越来越多的人开始关注这个行业,开始重视这个职位,那么,软件测试知识到底需要学到怎么样的成都,才能够轻松通过面试,在工作中游刃有余呢?
第一、测试理论
首先需要对测试岗位有一定的了解,测试岗位可以分为测试工程师,测试开发工程师,自动化测试工程师等等。你需要了解这些岗位的职位职责和职位要求。这些可以去boss直聘或者拉勾网去查看。
然后还需要对常用的测试方法有所了解,了解什么是黑盒测试,白盒测试和灰盒测试,以及了解他们分别能解决什么问题。了解测试方法,对我们设计测试用例很有帮助,比如我们测试数值区间的时候,常常会用到边界值法,测试不同条件下的功能时,常常用到等价分类,进行白盒测试时,还可以利用条件覆盖、路径覆盖等测试方法去设计测试用例。
平时可以抽空读一读《软件测试》这本书,了解基本的测试理论,除此之外,了解测试工程师的工作流程也是很有必要的。
在测试面试时,可以去牛客网刷一刷测试的基础题。这样对测试面试也会有很大帮助。
第二、计算机的基础知识
首先需要对操作系统有所了解,知道什么是内存、什么是CPU,什么是硬盘,什么是进程、什么是线程等基础知识。
另外我们平常可能接触的比较多的是Windows系统,但是现在大部分企业都会把服务部署在Linux服务器上。我们也需要掌握Linux操作系统的基本使用。至少对常用的Linux命令有所掌握,比方说你需要知道如何查看日志,会用Vim编辑文件,会用grep过滤文件文本。知道怎么杀死进程等等。
对于移动设备也不能只局限于会用app,测试并不是点点点就行了,你要比常人更会玩手机,比方说,你需要学会手机连代理进行网络抓包,安卓常用的app命令也需要掌握,ios的证书相关知识也要掌握,知道怎么在手机上信任证书等等。
除此之外,数据库的知识也是重中之重的,SQL语句一定要掌握,上面的内容,推荐大家可以看看《软件测试》《图解http》《MySQL必知必会》《操作系统》《鸟哥的Linux私房菜》《移动app测试实战》这几本书,当然看书是很耗费时间的,也可以在网上搜罗别人总结好的资料,关注我的公众号:程序员一凡,我也会不定期的更新一些资料。供大家学习。
第三、掌握一门编程语言
现在对测试的要求是越来越高了,再也不是仅靠点点点就可以找工作的时代了,除了具备测试能力以外,还需要掌握一定的代码能力,很多企业现在都在测试开放了代码的审阅权限。假如你能看得懂开发的代码,你对整个开发的逻辑将有更深的理解,测试也会更加全面,现在的测试开发,不仅仅要进行日常的业务测试,有时候也要去开发测试平台、测试工具,假如不会代码的话,是无法完成开发工具的工作的,当今的测试面试中,肯定也是少不了编程算法题的,这个需要你对编程语言要熟练掌握,要不然编程面试环节肯定是过不了的,建议初学者可以把Java或者Python作为入门的编程语言进行学习,我建议是都学。
因为Java目前是主流的后端编程语言,阿里、美团等大厂都在用,另外Java的编程思想、设计模式都比较成熟,要是学会Java之后再学别的编程语言,会觉得比较容易,Python是最近几年特别火的编程语言,语法简单,快的话基本上花一周时间练习,就能够入门。并且,Python在测试行业也是特别流行的,很多测试团队开发测试工具都喜欢用Python开发,一般耐住寂寞,把基础教程学完,另外对简单的方法要有所了解,比如说八大排序等等
第四、需要掌握一些基本的测试工具的使用
最重要的肯定是要学会网络抓包,这是测试工程师的必修课,抓包工具五花八门,一般抓Http请求的,用得最多的是Fiddler和Charles
接口调试工具,可以使用Postman和Jmeter
App的测试工具,需要了解Monkey的使用
自动化的测试工具,可以学习Selenium和Appium
除了测试工具之外,再给大家推荐测试工作中常用的四款软件
第一个是Jenkins,这个是持续集成工具,说的通俗一点,就是利用这个平台可以进行App的打包,代码构建或者脚本执行
第二个是Wiki,这个是一款在线文档工具,可以作为企业的知识库
第三个是Jira,可以用来做项目管理或者Bug管理,
最后一个是Gitlab,这个是代码仓库,也就是存放和管理代码的地方
这些工具至少都要会使用。