如何去面试软件测试工程师?
Posted 程序员小濠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何去面试软件测试工程师?相关的知识,希望对你有一定的参考价值。
花了3天时间,整理了100+大厂面试经验,汇总出来这份3000字的软件测试面试攻略给你!
(大厂面试真题我放在文末,自行获取,附答案!)
首先你要明白一个问题,面试的过程并不为为了显示面试官技术有多牛,也不是为了体现他们公司有多么难进,而是考察你的能力和招聘需求是否相匹配,进而评估你能否满足工作内容,甚至满足更过的岗位期待。
弄清楚了这个核心,那么就只需要把控好两方面的内容:
1、自己的技能水平可以满足招聘需求
2、面试官可能问到的技术或相关问题
首先说技能的问题,如果技能达不到招聘的需求,那么面试你肯定过不了!
高清图片文末获取
我根据薪资的不同,划分成以下几个级别具体说一下:
- 月薪5-9k:功能测试为主,可能要求有性能自动化经验
- 月薪15-25k:要求能够独立搞定性能或者自动化测试,有语言基础
- 年薪30W+:测试开发工程师
(文末有测试开发岗位简历模板,自己拿)
第一个级别:月薪5-9k,主要做的还是基础的功能测试,但是对于性能和自动化依然有要求
可能你是刚毕业的学生,也可能你是刚做这个行业不久,那么首先以下基本的理论你是必须要掌握的:
软件测试的定义、生命周期、工作流程、需求分析;
测试用例的设计、编写、评审;
bug的基本知识以及禅道的使用;
测试计划、测试报告的编写;
SVN、Git版本控制工具的使用;
搞定上上面的这些基本必备内容,就已经知道可以做具体的实战内容,这个时候最好是先找一个web测试项目去做一下,假如一个项目拿到手之后,按照下面的一套流程跑一遍:
发布项目进行立项,建立项目组进行分工;
需求评审,学会如何看需求文档,进行需求分析,罗列测试点;
整理测试点,编写测试用例,然后进行用例评审;
执行测试,比如功能、界面、前后台、兼容性、数据库,对于发现的bug提交到禅道;
分析、总结、编写测试报告;
这个流程完整的跑一遍之后,只能说对于整体的测试流程算是掌握了,但是仍然不足以找到一份合适的工作,想要学会做功能测试,以下的内容也是必须掌握的:
Linux相关技能
操作环境、命令、安装数据库、部署测试环境等
数据库相关技能
各种命令用法、字段、增删改查
接口测试相关技能
接口测试基本理论、http协议、测试方法;
接口测试需求分析、用例编写、评审;
几种工具的掌握,jmeter、postman、soupUI;
APP测试相关技能
安装/卸载、离线、UI、登录等测试内容;
兼容性测试、monkey、fiddler抓包;
OK,搞定了这些,基本上这个级别大部分的招聘需求你都能搞定了!
第二个阶段:月薪15-25k,要求性能、自动化测试,独当一面!
都说自动化玩好了很牛掰,但是性能测试才是互联网企业的核心痛点!
对于性能测试,业界很多都是在“耍流氓”,举个栗子:
我拿到了一份“流氓”的性能测试报告,上面只写了响应时间、TPS是多少,然后罗列了一下压力机基本配置情况,比如40个并发相应时间是5秒,TPS是260。
那么,我该怎么判断这次性能测试的有效性:
1.场景是否合理?
2.压力是否传递均匀或者传递到指定目标?
3.是否有干扰因素,或者说那些数据是否有效?
4.有没有一些可信的判断方法?
这些问题的出现,其实就是反映出了目前在做性能测试的一些误区:
- 只测不调,无法给出研发和运维人员执行建议
- 无法定位问题,缺乏清晰的逻辑和数据证明价值
- 性能测试工具≠性能测试
- 性能测试技术体系落后(loadrunner),急需拥抱开源软件
如果要搞定这些问题,那么性能测试你得这么去学:
性能测试的概念和流程
常见问题剖析、流行工具、方案设计
性能测试工具
jmeter工具的使用、实战;
jmeter多协议、拓展与定制;
分布式压测与任务调度;
性能监控
性能监控体系与监控数据采集
性能实施
分布式服务压测,场景设计、场景执行
测试结果关联分析,TPS、响应时间、线程关联分析,压力和资源使用率关联分析
性能分析与报告
jvm调试与系统调试
性能瓶颈分析
搞定这些,你完全可以很自信的和面试官说自己精通性能测试!
性能测试你能到这个程度,15k那是妥妥的了,如果下面自动化测试的学习内容你能够掌握,那就可以直接冲击月薪25k!
搞定Python或者Java语言,建议先从Python入手
基本的语言知识,语法、函数、模块、输入与输出、面向对象编程
脚本编写、标准库、多线程、第三方库,外部数据处理
unittest、pytest测试框架、参数化、数据驱动
web端的自动化测试
selenium安装、录制、处理
web控件、javascript脚本、PO模式
移动端APP自动化测试
appium使用、录制、元素定位方法
APP控件定位、交互,参数化用例
appium问题定位分析、源码分析、二次封装
服务端接口自动化测试
接口自动化测试框架request
接口请求构造、断言
json/xml请求、响应断言
headcookie处理、认证体系
上面这些说的是性能和自动化测试的学习路线和内容,搞定这些,基本上在这个行业,月薪2万以上是非常轻松的事情了!当然如果你想成为技术专家,或者想带领技术团队进行实施落地,那么请你接着往下看,关于年薪30W+的测试开发需要学习哪些内容:
完善测试技术体系
Linux、docker、shell、SQL、Python/java
打牢自动化测试技术基础
web自动化测试
selenium测试框架
PageObject设计模式、原则、演练
APP自动化测试
android自动化测试框架
appium高级应用于原理剖析
APP自动化测试实战
测试框架封装改造
ios自动化测试
移动专项测试
健壮性测试、弱网测试、崩溃检测、耗电量分析等
移动端性能测试
移动端安全测试
接口自动化测试
接口协议与抓包、代理技术与mock
接口自动化测试框架、HTTPrunner测试框架
dubbo接口自动化测试
接口管理工具swagger、接口安全测试
docker容器技术
docker容器、docker镜像
持续集成/持续交付/devops
jenkins持续集成
Jenkins持续交付
弄明白了各个薪资范围对应的照片需求是什么,那么下一步就看面试官会怎么问你问题了,我这里整理了80道最核心的经典面试题,文末自行获取。
技术类问题
1、以前做过怎样的项目?说一下你们的测试流程?在项目组中做过怎样的工作?
2、所做项目的情况,主要做什么类型的测试?
3、你认为是bug,而开发不认同时怎么办?
4、 给你一个网站,你如何测试?
5、熟悉数据库吗 ?平时数据库用的多吗 ? (大概测试过程的1/4时间在查数据库)
6、linux查看文件用什么命令,查看进程用什么命令 ?
7 、 查看日志常用什么命令,主要查看什么内容 ?
8、 软件测试用例设计/测试用例的内容/管理工具?
9、如何判断一个问题是bug?
10、平时写测试用例会用到的设计方法?
11、有哪些不同的测试计划活动?
12、哪些信息应该包括在开发的缺陷或错误报告中?
13、你觉得自动化测试的价值在哪里?你们公司为什么要做自动化测试?
14、举例一下说明一下你遇到过那些异常
15、什么是PO模式,为什么要使用它
16、你会封装自动化测试框架吗?
职业发展类问题
1、你对测试最大的兴趣在哪里?为什么?
2、 你的测试职业发展是什么?
3、你认为测试人员需要具备哪些素质?
4、你为什么能够做测试这一行?
5、一个测试工程师应该具备哪些素质和技能?
6、你认为做好测试用例设计工作的关键是什么?
7、您认为做好测试计划工作的关键是什么?
埋坑问题
1、怎样看待加班问题?
2、基于目前中国的国情,大多数公司的项目进度紧张、人员较少、需求文档根本没有或者很不规范,你认为在这种情况下怎样保证软件的质量?
3、为何尽可能不要让时间有富裕的员工去作一些测试?
4、如何减小测试人员跳槽带来的损失?
5、你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?
(超长图预警!)
高清原图文末获取
免费领取:80道测试经典面试题高清原图
由于内容较多,建议点赞和收藏,以后随时调阅!
最后:
如果你觉得我的回答对你有启发,我想邀请你帮三个忙:
1、点赞,帮助更多人,让TA们也能看到这篇文章
2、关注我 @霍格沃兹测试学院-测吧,让我们成为长期关系
3、查看文末,领取我为你专门准备的测试开发干货!
谢谢你的支持~
--福利福利--
免费领取:简历模板+面试技巧+自动化+测开+性能+用例模板+核心教程资料
--推荐阅读--
好的软件测试人员简历是什么样子的?www.zhihu.com如何编写测试用例?www.zhihu.com软件测试简历项目经验怎么写,没有项目经验?www.zhihu.com
赞同 312 条评论
分享
收藏喜欢
收起
继续浏览内容
知乎
发现更大的世界
打开
Chrome
继续
公众号“程序员臻叔”,专注测试干货分享!欢迎入群交流
33 人赞同了该回答
看到其他回答都在传授面试技巧,讲得都挺不错的。那我就补充补充一些 面试题 干货吧
根据我工作这几年来的面试经验,加上之前收集的资料,我整理出来350+道软件测试工程师常考的面试题。字节跳动、阿里、腾讯、百度、快手、美团等大厂常考的面试题,在文章里面都有提到。
虽然这篇文章很长,但是绝对值得你点击一下收藏。
想要找工作的同学,假如你每次面试之前,把此文拿出来过一过,好好复习一下,相信你一定能找到一个满意的工作。
Tip:我整理的面试题都按照这个脑图写,不定期更新,往下翻有目录,后期会不断把参考答案补充上去,点击标题阅读即可,此回答长期有效,找测试相关工作的同学一定要好好收藏。
http://weixin.qq.com/r/GUiagqPE6P6Xrefh9x0L (二维码自动识别)
一、开场白
Q:简单自我介绍一下吧
Q:项目和实习经历?(注意使用STAR法则表述)
二、软件测试基础
工作内容
Q:按测试内容划分,测试有哪些种类?
Q:软件开发(测试)的流程是怎么样的?
Q:你印象最深刻的 bug 是?
Q:谈谈你对 CI/CD 的理解
Q:谈谈你对 DevOps 的理解
Q:什么是 BDD ? 什么是 TDD ?
Q:APP的一个页面,你怎么区分是原生Native页面,还是H5?
测试方法
Q:黑盒测试的方法有哪些?
Q:白盒测试的方法有哪些?
Q:什么是单元测试?
Q:什么是集成测试?
Q:测试用例怎么编写与设计?
Q:什么是灰盒测试?
测试文档
Q:测试用例都包含哪些要素?
Q:测试报告需要展示哪些要素?
Q:测试排期应该怎么估算?
Q:谈谈你构造数据的经历?
自动化测试
Q:举例说明,都有哪些功能可以用自动化来进行?
Q:如何判断一个功能能否进行自动化测试?
Q:定位xpath路径都有哪些方法?
Q:如何定位一个动态的元素?
Q:如何定位类似于悬浮在web页面上的元素(类似于web上飞来飞去的广告)
Q:列举你知道的自动化测试工具
测试工具
Q:聊聊 fiddler 的抓包原理
Q:fiddler 怎么抓取 https 请求?
Q:wireshark 抓包的头部有什么?
性能测试
Q:性能测试如何做的?
Q:性能测试需要关注哪些方面?
游戏测试
Q:印象最深的游戏是哪个?哪些方面最吸引你?
Q:印象最深的游戏里有过哪些bug,分析下原因
Q:如何对一个大地图游戏进行测试?该有哪些测试点?
Q:测试程序设计的不合理 与 测试程序完善但是测试人员出现失误,哪一项更严重?
Q:游戏测试的定位和职责你觉得是什么?
Q:游戏采用客户端和服务器架构的必要性是什么?
Q:LOL脚本的原理是什么?
Q:为什么RPG游戏脚本没有LOL这种竞技类脚本开发的多?
Q:有一个触发概率极低但是非常致命的BUG,明天项目一定要上线,你怎么处理,不用非得解决,就是问我怎么处理这种事。
Q:为什么想做游戏测试?
Q:让你做一个游戏,你更想做哪个类型的(MMORPG?MOBA?FPS?RTS?)
Q:说说游戏史,除了游戏还有什么爱好?
Q:列举你知道的游戏测试的测试工具
三、软件测试实战
排查问题的思路
Q:网页崩溃的原因是什么?
Q:有个用户反馈上传头像失败,分析原因?
Q:app闪退的原因?
Q:偶然闪退的排查?
Q:网页卡顿的原因是什么?
Q:10%的用户反馈用不了功能,你讲如何排查?
Q:登录的按钮不能点击,如何排查问题?
Q:压测的时候,QPS一直上不去,你会怎么排查?
Q:APP提示无法连接网络,你会如何排查?
Q:怎么判断一个BUG到底是前端的BUG还是后端的BUG?
实战案例
Q:微博发动态,设计一下测试点
Q:对一台自动售货机进行测试用例设计
Q:设计微信发红包测试用例
Q:设计抖音直播功能测试用例
Q:设计微信扫码支付的测试用例
Q:设计百度首页的测试用例
Q:微信的点赞功能怎么测试?
Q:微信红包是先计算每个人能获得的钱还是当这个人点了再计算。
Q:微信朋友圈评论功能怎么测试?
Q:微信上线一个新的好友推荐功能功能如何测试?
Q:测试微信换头像功能,设计测试用例
Q:抖音视频的安全性测试,测试点有哪些?
Q:如果手机浏览器输入 http://baidu.com打不开页面,你会怎么排查?
Q:设计输入框测试用例?
Q:编写一个登录界面的测试用例?
Q:对一个接口编写测试用例
Q:搜索功能怎么测试?
四、语言基础
Java
Q:什么是多态?
Q:什么是GC?
Q:set 与 hashset 的区别
Q:map 与 hashmap 的区别
Q:hashmap 的查找,删除,添加的时间复杂度
Q:查找所有java进程
Q:杀死java进程
Q:介绍一下 java 的拷贝、四种引用
Q:java容器有哪些?简要介绍一下 java 的数组和链表
Q:谈谈你对 java 集合了解多少?
Q:Java 三大特性是什么?
Q:List 和 Map 有什么区别?
Q:谈谈 List、Set、Map的区别?
Q:重写与重载的区别是什么?
Q:HashMap 和 HashTable 的区别是什么?
Q:ArrayList 和 LinkedList 的区别是什么?
Q:Map 的 put 方法
Q:java的封装,java 的访问权限关键字的作用域?
Q:为什么 java 要面向接口编程?
Q:什么是反射?
Q:interface 和 abstract 的区别是什么?
Q:熟悉 maven 么?谈谈你对 maven 的了解
Python
Q:全局变量和局部变量变量名能否一样?
Q:Python 里 is 和 == 的区别?
Q:Python 变量的创建与消亡过程
Q:Python的垃圾回收的机制
Q:dict的底层结构,tuple和list的底层结构的区别
Q:深拷贝浅拷贝的区别是什么?
Q:什么是协程?
Q:什么是装饰器?举一个你用过装饰器的例子
Q:@classmethod 和 @staticmethod 的区别,以及分别运用在哪些使用场景?
Q:什么是鸭子类型?
Q:python 的可变类型有哪些?
Q:python 常见的数据类型有哪些?
Q:列举 python2 和 python3 的区别
Q:什么是lambda函数?怎么用?
Q:别的编程语言都有三目运算符,三目运算符在python中怎么表达?
Q:try...except...else 和 try...except...finally 的区别是什么?
Q:什么是可迭代对象?可迭代对象的原理是什么?
Q:with...as 的原理是什么?
Q:解释一下python的GIL锁
Q:python 是单继承还是多继承?
Q:python 继承的顺序是什么?
Q:什么是元类?
Q:为什么都说 python 慢?
Shell
Q:什么场景下,适合编写 Shell 脚本来处理?
C++
Q:指针和引用的区别是什么?
五、数据结构与算法
链表
Q:一个有序链表,怎么求第K大个节点?
Q:怎么找出这两个链表是否有相交的点
Q:数组与链表的区别
Q:链表逆序
数组
Q:怎么对俩有序数组合并?
Q:求数组中和为 n 的两个数,时间复杂度是多少?
Q:int 型数组,怎么排序?
Q:int 型数组,怎么去重?
复杂度
Q:时间复杂度是什么?
Q:怎么计算时间复杂度?
排序
Q:八大排序都有哪些?
Q:快排的原理
Q:归并排序的原理
Q:冒泡排序的原理
Q:插入排序的原理
Q:选择排序的原理
树
Q:数的定义,代码实现
Q:什么是树的高度?怎么求?
Q:计算二叉树节点的个数
Q:什么是根结点?什么是叶子节点?
Q:打印二叉树
递归
Q:什么是递归?
Q:递归的时间复杂度是什么?
字符串
Q:字符串长度可以改变么?
堆与栈
Q:堆和栈都有什么区别
Q:代码实现栈
动态规划
Q:什么是动态规划?
高级算法
Q:什么是深度遍历?什么是广度遍历?
查找
Q:能够实现二分查找的必要条件是什么?
哈希
图
六、框架
开发框架
Django
Q:简单介绍一下Django的目录结构
Q:了解什么是MVC么?为什么说 Django 是MTV模型?
Q:一个网络请求在Django中的实现过程
Q:uwsgi是什么?用uwsgi和用Django的原生启动方式,有什么区别?
Q:了解 ORM 么?简单介绍一下Django的ORM映射
Q:Django的 CBV 和 FBV 的区别?实际项目中你会使用哪种方式?为什么?
Q:怎么把 Django 的 module 同步到数据库中?同步过程中会遇到什么坑么?
Spring
Q:Spring 框架介绍
Q:什么是 IOC?
Q:什么是 DI?
Q:什么是 AOP?
测试框架
selenium
Q:selenium框架的运行原理
Q:selenium定位元素的方法都有哪些
Appium
Q:Appium用过吗?原理是什么?
Unittest
Pytest
TestNG
Junit
七、计算机基础
计算机网络
TCP/UDP
Q:简单介绍 TCP 三次握手(为什么不是两次、四次)
Q:四次分手是什么?
Q:TCP 拥塞是什么?
Q:TCP怎么保证安全的,UDP能否也像TCP那样安全,怎么做?
Q:你知道 tcp 的控制可靠性的策略和重传机制么?
Q:TCP协议属于哪一层?
HTTP/HTTPS
Q:cookie 和 session 机制、区别
Q:输入url到网页显示出来中间的过程
Q:列举你知道的网页状态码
Q:3 开头的网络状态码的含义是什么?302和304的区别是什么?
Q:4 开头的网络状态码含义是什么?
Q:5 开头的网络状态码含义是什么?
Q:什么是 HTTPS?原理是什么?
Q:GET 和 POST 的区别是什么?
Q:网络请求 method 有哪几种?
Q:简单介绍一下什么是 RESTful API
Q:PUT 和 POST 的区别
Q:列举常见的请求 Header 头
Q:一个HTTP请求报文是什么样的?(GET举例)
Q:GET 的长度限制了解么?
其他
Q:最大连接数和QPS区别
Q:网络一共分为几层?
Q:客户端向服务器请求图片和动态资源的区别
Q:图片渲染的过程 前端
Q:网络七层有哪些?tcp,udp,arp都在哪一层?
Q:QPS 和 TPS 的区别是什么?
Q:解释一下DNS
Q:什么是反向代理?
Q:什么是 socket?
Q:【手撕】用 socket 实现一个聊天室功能?
操作系统
进程/线程
Q:进程与线程的区别?
Q:何时cpu处理进程最慢?
Q:为什么会出现死锁?
Q:进程间通信的方式?
Q:线程间通信的方式?
Q:如何做到线程同步?
Linux
Q:linux切换目录
Q:linux命令,统计一个文本中关键字出现的次数
Q:linux 查找当前目录下所有后缀为 .py文件
Q:知道的linux常用命令:查看指定端口进程
Q:cd - 和 cd ~
Q:linux 查看某个进程命令怎么写
Q:如何查看日志?怎么查看后500条日志?
Q:awk有什么用?如何用(举个例子)?
Q:如何查看系统性能?
Q:如何查看剩余磁盘空间大小?
Q:如何查看目录占空间大小?
Q:你知道 xarg 的用法吗?
Q:怎么从本地计算机与服务器中进行文件传输?
Q:测试服务器之间怎么进行文件拷贝?
Q:sed 有什么用?如何用(举个例子)?
Q:怎么杀死一个进程?
Q:怎么递归删除一个目录下的所有文件?
Q:怎么查看内存大小?
Q:怎么查看 CPU 使用情况?
Q:怎么重启 Linux 服务器?
Q:怎么打印出一个文件的第500-1000行?
文件存储
Q:静态存储和动态存储的区别
Q:视频在服务器的存储几种方式
Q:CDN有什么用?
Q:为什么前端静态资源要上传到CDN上?
其他
Q:系统资源包括哪些?
Q:什么是 IO 操作?
Q:什么是内存?
Q:什么是硬盘?
Q:什么是CPU?
Q:什么操作比较消耗CPU?
Q:什么是UTF-8?什么是Unicode?
Q:什么是 IO 多路复用?以及怎么实现?
Q:谈谈什么是分布式?为什么要用分布式?
数据库
非关系型数据库
Q:非关系型数据库有哪些?
Q:Redis的数据结构有哪些?
Q:Redis 和 Memcached 的区别?
Q:Redis 的用途?
Q:Redis一秒能写入多少数据?
Q:Redis为什么快?
Q:Redis的过期时间怎么设置?哪些场景适合缓存更长时间?
Q:什么是缓存雪崩?
Q:什么是缓存击穿?缓存击穿和缓存穿透的区别是什么?
Q:什么时候适合用MongoDB?
Q:Redis 适合做消息队列吗?为什么?
Q:Redis 的数据是存储在内存当中的,假如断电之后就会造成数据丢失,那怎么对 Redis 进行数据固化?
关系型数据库
数据库基本理论
Q:有哪些数据库优化的方式?
Q:关系型数据库和非关系型数据库的区别?
Q:数据库的事务有什么用?什么时候应该使用事务,什么时候不该使用事务?
Q:数据库索引有什么用?什么是联合索引?
Q:主键适合用自定义ID还是自动ID?
Q:外键是什么?为什么大公司有时候不建议使用外键?
Q:索引设置得越多越好吗?索引得优缺点是什么?
Q:InnoDB是基于什么实现的?
Q:为什么会造成数据库死锁?怎么解决?
Q:事务都有哪些特点?
Q:数据库设计的三大范式是什么?
Q:一张数据表最多不建议超过多少行?
Q:为什么要进行分表分库?
Q:分表分库有哪几种方式?举例说明
SQL
Q:【手撕】数据库,查找一个学生两门功课都大于80分的姓名
Q:【手撕】联表查询2个表中工号为“123”的人的所有信息
Q:【手撕】一个人员表,一个部门表,人员表中存了部门id,查人员表各部门表所有数据
Q:【手撕】查询一个城市列表里面重复的城市名,并且统计重复次数
Q:【手撕】查找一个学生成绩表中平均分数大于90分的学生名单
Q:【手撕】查找学生成绩表中平均成绩最高的同学
Q:数据库怎么拷贝数据?
Q:删除数据的方式有哪些?说说 drop table和truncate table的区别?
八、智力题
Q:跳台阶问题
Q:4分钟沙漏和7分钟沙漏怎么漏出9分钟
Q:两个粗细不同的香,燃尽时间都是1个小时,怎么用这个2根香计算15分钟的时间
Q:赛马
Q:10堆苹果,每堆10个,9堆每个50g,1堆每个40g,有一个称,求只称一次,找出这个轻的一堆
Q:飞机加油问题
Q:逻辑:四个开关四个灯泡
Q:地球弧形
九、编程题
Q:求最大回文个数
Q:一个数组中有正数有负数(没有0),请将它排成正负相间的数组(多余的全部放后面),时间复杂度不超过O(n);
Q:一道编程题,输入一串由ABCD四个字随机组成的字符串和一个整数k,返回字符串种前k个字的顺序重复了几次。
Q:编程:判断一个字符串是否符合ipv4格式
Q:代码题,给一个句子,只把单词翻转然后输入
Q:【手撕代码】字符串中只出现一次的字符、找出数组中最小的四个数字
Q:代码:一串字符串中最小的整数
Q:写代码,类似高考成绩,一个表中有很多数据(无序的),给你一个成绩,查出在表中的排名
Q:编程题,鸡兔同笼,一半的兔子伸起一半的脚,输入地上有几只脚,列出所有的可能性(兔子是基数则整除2)
Q:判断一个字符串是否是点分十进制的ipv4格式
Q:100万个学生 按照成绩 及对应排名录入 分数查找排名(hashmap)
Q:python的编程题,输入一个字符串然后空格切割在统计每个字母出现的次数
十、HR常问
Q:为什么想做测试
Q:对测开的理解
Q:测试过程中有没有出现问题,是如何解决的
Q:最近看了什么书?学了什么?为什么学?有看什么技术书籍吗?
Q:个人优缺点,举例
Q:测试看重什么能力
Q:项目问题细挖
Q:为什么选择xx公司?
Q:你对我们公司有什么了解吗?
Q:之前实习收获了什么
Q:介绍下自己的优缺点
Q:抗压能力如何,描述一件自己如何抗压的经历
Q:反问环节:你有什么问题想问我么?
Q:项目中收获了什么?
Q:平时怎么学习的
Q:为什么要离职?
Q:你的期望薪资是多少?
欢迎关注我的知乎号NET.Dzreal,持续分享测试开发干货。
附:软件测试必读的48本书,你值得拥有↓↓↓
适合测试人员看的经典书籍有哪些?www.zhihu.com
如果对您有帮助,就请点一个赞吧,让更多的人看到!
赞同 334 条评论
分享
收藏喜欢
收起
继续浏览内容
知乎
发现更大的世界
打开
Chrome
继续
培训师
553 人赞同了该回答
辅导学员简历面试,发现还是有不少人思路不是特别清晰,也不知道该如何准备一次完美的面试。下面总结了关键的12个问题,能够比较完美地回答好这12个或者12类问题,相信能够给自己的面试带来很大的帮助:
第一个问题:自我介绍(心理学首因效应告诉我们第一印象非常重要),自我介绍最重要的是能够在面试官心目中留下一个好的第一感觉。说得更直白一点是让面试官舒服。但是我发现很多人就是直接简单的介绍了一下过去的经历,但是实际上一方面过去的经历没有很好的让人发现优点。其实面试好比相亲,你想说什么不重要,重要地是人家想听什么。比较好的自我介绍套路是这样:“您好,我叫XXX,很高兴能获得这次面试机会,今天来面试是想证明自己是最合适的人选,另一个方面是获得您的认可,结合我过去的工作和学习经历,我自信我能符合咱们公司的认可,接下来您看是我继续介绍我做过的项目,还是您问您关心的问题?”
第二个问题:项目介绍(项目经验直接决定一个人能否胜任一份工作,企业更应该看重一个人解决问题的思路和具体能力),项目介绍部分最重要的思路是应该先整体后局部,介绍整体的时候要有量化的数据(从项目度量的五大维度:规模,包括项目代码规模,需求规模、用例规模,工作量,进度,质量和成本),然后是整体的测试流程,然后再是角色与职责,接下来是项目中自己的特色,比如做得最好的是、遇到最大的困难时、最差的是,最后是心得体会。
第三类问题:数据库方面知识,最基本的要求是数据库记录的增删改查(insert、delete、update、select),表结构的增删改查(create、drop、alter、describe)、存储过程、触发器等。
第四类问题:linux操作系统相关,最基本的目标是熟悉常见的50个命令,比如find命令(-name、-type、-perm、-user、-group、-ctime、-atime)等,熟悉vi、熟悉linux搭建测试环境。比如LAMP环境搭建。
第五类问题:缺陷相关知识,最基本的是缺陷跟踪的流程(流程的基本要素),整体的流程,最好能在纸上给面试官画出来(尤其是男面试官,从男人好色的角度来看,写得很清楚很重要),缺陷单的属性,至少能列出20个属性,每个属性的意义,如何描述好缺陷单,缺陷单描述的5C原则,比如缺陷重现步骤应该complete。如何描述一个你认为的最经典的bug单。
第六类问题:用例相关,最基本的包括用例的格式要素,用例设计工程方法论,每个方法要求(方法的背景,操作步骤,优缺点、适应范围,与其他用例方法如何配合),在项目中如何利用测试用例设计工程方法。如何评价、评审测试用例,评审从哪些维度?要设计好测试用例需要哪些方面的知识结构,比如技术、业务、方法。
第七类问题:软件测试流程,系统测试相关规范和标准的流程:熟悉产品/项目,需求评审,测试需求,测试计划,测试方案,测试用例,预测试,第一轮正式测试、第二轮回归测试、第三轮测试,测试报告,测试总结,测试指南。
第八类问题,网络相关,最基本的网络基础知识,比如TCP/IP协议。
第九类问题,测试工具,包括三个大的类型,第一类是性能测试工具、自动化测试工具、测试管理类工具。最起码的要求是熟悉工具的使用。
第十类问题,给你一个软件,比如QQ、QQ斗地主,你如何去测试,这类问题基本的思路是,从软件质量模型、测试工具、测试方法、测试流程、探索式测试等角度先宏观解决,然后再具体微观讲解用例如何设计等。
第十一类问题,一个优秀/卓越的软件测试工程师应该具备哪些能力与素质,素质方面包括沟通、五心工程师、追求完美等;
第十二类问题,最后一个问题,面试官一般会问,您还有什么想问的吗?还有什么想了解的吗?总体上来说最重要的是留下一个好的近因效应,就好比相亲的时候,分手离开的时候,留下好的最后的印象,基本的思路应该分三种情况,第一种是面试官对你满意,自己也感觉不错的情况下,先表示感谢,然后积极主动的问题,比如,非常感谢您给的这次机会,但是我还是想问,如果我有下一轮面试,我想知道知道是什么时候,我应该再做哪些方面的准备。第二种情况是面试官和自己感觉都一般般,感觉自己是鸡肋,这个时候说不说很重要,基本的套路是,非常感谢面试官给的这个机会,坦白地说我对自己今天的面试表现不是非常满意,还可以表现得更好,但是如果我还是非常想得到这个机会,您能否给我一些建议。第三种情况是面试情况非常糟糕,这种情况下,很少有人能说出感谢,但这恰恰体现一个人的风度。基本的思路是,不管怎么样,还是得感谢您给的机会,让我自己认识到自己的不足,坦白地说我离这个岗位的要求还有些距离,但是我还是想知道,如果将来我还想来咱们公司面试,您能否给点具体建议。
总结,面试是一个相亲的过程,相亲的成败取决于很多要素,但是好的、充分地准备,能够让我们更加从容地和主动的去面对压力与挑战,而不是简单地把自己变成超市里面的菜,供人挑选。
更多内容,请关注我们的公众号 HGQATNT 或者访问我们的网站 http://www.qatnt.com
赞同 55338 条评论
分享
收藏喜欢
收起
继续浏览内容
知乎
发现更大的世界
打开
Chrome
继续
已认证的官方帐号
256 人赞同了该回答
写在前面:拿到面试机会的前提是能写出一份不错简历,如果对如何写出优秀测试简历不清楚的话,那就狠狠点击:
好的软件测试人员简历是什么样子的?www.zhihu.com
回到题主的问题“如何去面试软件测试工程师”,这个主题是站在用人单位的角度问这个问题,但是相信很多人搜到这个问题,目的是为了知道如何准备面试,以便拿到软件测试工程师的Offfer(所以我会更多站在求职者的角度去解答这个问题)。
但我们要清楚,找工作是出卖服务的过程。我们得先知道企业的需求是什么,才知道要怎么把自己卖出去,所以在面试之前,我们需要先分析企业的招聘需求。
企业的招聘要求里面会列出很多项内容。比如某公司的行政助理岗位,要求行政管理相关专业毕业、熟练使用Office、性格开朗、沟通能力强、积极主动等等。这些要求其实就是基于冰山模型的一套系统。
冰山模型简单为大家介绍一下。它是美国著名心理学家麦克利兰提出来的。用来表示个体素质的各个要素,现在成为很多企业进行人才筛选和培养的基础模型。
在该模型里面,知识与技能是冰山上面漏出海面的部分,它比较容易观测,而且相对而言容易后天习得,比如画PPT、做Excel等等;能力半浮半沉,改变周期长,但重要性更高,比如沟通能力、解决问题的能力等等;而性格特质、动机和价值观,基本上完全隐藏在海面之下,这部分不容易被观测,却对人的行为表现起到至关重要的作用,而且在成年后基本定型,不太容易受到外界影响而改变。
好,那我们已经知道了什么是冰山模型,现在就用这个模型来梳理一下行政助理的岗位要求:
1)首先,要素1:知识与技能,在招聘要求中,知识体现在对行政管理相关专业的要求上,技能则体现在熟练使用Offer这个要求上;
2)其次,要素2:能力,指思维、沟通等软能力,对应招聘要求里的沟通能力强;
3)最后,要素3:性格特质、动机和价值观,对应招聘要求里的性格开通、积极主动。
所以说,你可以用这个模型,将企业的招聘需求进行拆解,这样就能做到对企业的需求了然于胸了。
不仅仅是行政助理,软件测试等几乎所有岗位都可以按照冰山模型这么拆解(试试用冰山模型拆解下图中的测试岗位需求)。
冰山模型介绍完后,我们回到“如何去面试软件测试工程师”这个主题。
随着互联网及移动互联网的发展,越来越多的IT公司更加注重公司IT产品的质量,所以招聘测试工程师的岗位需求也越来越多,同时对软件测试工程师的要求也会越来越高。企业对于测试工程师的招聘需求大体也是遵守“冰山模型”,一般也都会包括以下几个方面:
- 技术层:技术能力
- 能力层:沟通能力+测试思维及解决问题的能力
- 性格特质:面试者的性格及抗压能力
所以我们完全可以按照该冰山模型去准备,下面我们来详细阐述:
一、考察技术能力
1、测试理论、测试流程类的问题。
比如会问面试者之前工作中的测试流程、测试提交的缺陷包括哪些要素?怎样提交缺陷能保证开发快速有效的解决对应的缺陷?另外也会问到测试用例相关的问题,比如测试用例包括哪些要素?设计测试用例的常用理论方法?也可能会被问到测试报告包括哪些内容?所以这一块的知识点是做为测试人员的必备基础知识,可参考以下技能树。
2、Linux操作系统相关
比如会被问到常用的一些命令(cat tail find grep ps kill top),一般主要回答查看文件(cat、tail、more、grep),查看进程(ps),查看内存(top、free)、cpu(top)以及杀掉进程(kill)等相关命令,不要回答cd 、copy、rm、mv等非常非常基础的命令。另外也有可能会被问到是否有在linux搭建过测试环境,那么这种情况下建议面试前自己去找一些后台系统去练习一下在linux上搭建环境。
3、数据库相关的问题
这一块最基本的增删改查的语句肯定要会,另外的话关于条件查询、联表查询也必须要会。再高级一点的话,可以去看一些存储过程以及触发器的实现 。
4、自动化相关的问题
自动化相关的问题会比较多,如果问UI自动化的话,那么必须要熟悉UI自动化的框架,比如Web自动化框架可以通过python+selenium+unittest来实现,而移动端自动化是通过python+appium+unittest来实现。针对selenium和appium对应的api一定要提前熟悉,同时也要知道对应的api所使用的场景。
5、网络通信类相关的问题
这一类问的比较多的可能都是跟http有关系,比如会被问到http头部包括哪些内容?http的GET和POST方法有什么区别。TCP/IP七层模型也有可能会被问题(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)
6、工具类的问题
抓包工具的使用,比如fiddler、charles是怎么实现弱网测试的。
7、app专项测试类的问题
app会做哪些专项测试?(安装卸载、兼容性、交叉测试、稳定性测试、PUSH推送测试、性能测试、用户体验测试)性能测试主要测试哪些性能?用什么工具测试的?(性能测试项包括内存、CPU、FPS、电量、流量、启动速度, 使用的工具是GT)
8、其他类的问题
有可能会问到性能测试或者安全测试(信息安全、sql注入、xss攻击、CSRF攻击、越权、)之类的问题,那么根据自己之前的经验来回答
技术问题对于测试人员而言属于门槛需求,非常重要,建议在面试前要反复刷题。给大家提供一份《黑马软件测试2020面试宝典》,网盘链接:https://pan.baidu.com/s/1o5rHWpg7N9FuQI9I6-0K1A 提取码:jei7
二、考察面试人员的思维及解决问题的能力
思维方面一般会问到的是如果测试过程中遇到了问题你会怎么处理?
针对这样的问题要从几个方面进行考虑:
1、要分析问题到底是前端的问题还是后端的问题
2、如果是前端问题,能直观的看到问题原因,可以直接提问题单
3、如果是后台的问题,那么先去检查后端的相关配置是不是正确的
4、如果配置正确,那么可以去检查对应的数据是不是正常的,比如数据库的数据、redis的数据
5、如果以上都是正确的,那么基本可以肯定是代码的问题,这时可以去查看对应的后台日志信息,并提交问题。提交问题单时可以将日志信息附上去。
三、考察面试者的沟通能力
企业一般通过两个问题来了解软件测试应聘人员的沟通能力
首先会让面试者做自我介绍,这一项是非常重要的,因为这一项会给面试官留下非常重要的第一印象。自我介绍时可以做一个简要的说明,来自哪里、毕业于哪里、以及结合自己之前的工作经验做一个简要的说明,这个过程时间大概在2-3分钟即可。同时说话要流畅、自信。
第二个问题可能会让你介绍一下上家公司产品的业务流程,那么这个时候要能非常清晰明了的说出产品的业务流程,同时针对面试官提出的业务疑问都能及时解答。
第三个问题可能会让你介绍“你有什么缺点”来了解你的沟通能力。
四、考察面试者性格或者是抗压能力
一般通过“请介绍你工作中最难忘的一件事情”等开放性问题来了解。针对这类体现性格、抗压性的问题,在面试前一定要认真准备,回答一定要是正向的,积极的。最好提前准备故事来体现我们的正向、积极、抗压能力强。
----------------------了解了考察的4个方面,接下来看如何准备面试--------------------------
以上四个问题,除了第一类技术问题是可以通过刷题来解决外(一般面试的时候,会安排笔试来考察),其他三类问题,面试官都需要通过与应聘者交流来获取。所以作为应聘者,我们需要通过三步走来进行充分准备以便于沟通。
第一步:逐条列出企业招聘需求,针对每条要求
1)横向比较:相比较其他人,是否做得更好?;
2)多多举例:这项要求是否有相应事例证明?请列出至少2件代表事例,且是周围人做不到的例子。
第二步:根据分析,填写匹配度
1)匹配度高:至少有两个有效事例作为证明,且强于绝大数人。
2)匹配适中:至少有一个有效事例作为证明,且强于一半以上的人
3)匹配度低:较难找到事例作为证明,未与其他人形成差异化优势
第三步:根据匹配结果确定下一步
1)填写完匹配表后,80%以上为“高”,且“低”最多一个的,工作匹配度很高,好好准备你已经整理好的故事。
2)50%-80%要求为“高”,且“低”不超过30%的,则要继续挖掘经历;
3)只有50%以下的要求为“高”,且“低”超过30%,嗯,建议放弃,看看别的公司。
通过以上三步,我们就实现了面试前“知己知彼”,最终实现面试时的“百战不殆”
最后,强烈推荐大家查看黑马测试为大家精心准备的非技术面试系列避坑问题《测试人员面试失败,绝大部分死在这29个问题上》,如下链接所示:
必看:测试人员面试失败,绝大部分死在这下面29个问题上-黑马程序员技术交流社区bbs.itheima.com
如果想了解到更多有关测试求职的知识,可以狠狠点击下方链接:
黑马软件测试面试帖大集合(含简历模板+面试真题+宝典+视...-黑马程序员技术交流社区bbs.itheima.com
敲字不易,如果此文章对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
---------------------------------------------------------------------------------------------------
最后,为方便大家自学软件测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。
包括软件学习路线图,黑马50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2020软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..
2020软件测试学习路线图,内附视频教程+自学路线+工具+面试篇-黑马程序员技术交流社区bbs.itheima.com
精华知乎文章推荐
一、测试前景类
二、测试择业类
本人女,想转行做软件测试,没有任何经验,也没有基础,现在已经毕业两年了,25岁,现在转行来得及吗?
三、测
以上是关于如何去面试软件测试工程师?的主要内容,如果未能解决你的问题,请参考以下文章
去面试没把握?担心面试官问的偏?百度测试工程师给你总结了各阶段必问的知识!建议收藏