中高级测试工程师68道面试题
中高级测试工程师68道面试题(不含答案)
软性热身题
这种题目,考的就是你的软性能力,比如表达能力,理解能力,协调能力,一个词概括就是套路。这类题目会在面试开始热身的时候,问一道两题,不会多,但是如果你能回答的有条不紊,清晰达意,那么就会给面试官留下非常好的印象,大致的题目如下:
- 自我介绍
- 介绍下你负责的公司项目
- 你有什么优点和缺点?
- 在同一个项目组内,你认为你怎么做会比另外一名测试更加优秀?
- 你为什么离开上家公司?离职原因(这个会在最后问)
测试理论基础题
这类题目就是考测试工程师的基本能力了,比如测试计划,测试流程,如何bug,你做过哪些测试,一般我们认为这些能力做的再好都是应该的,不会有加分,但是只要做的不好,那就是个不合格的测试工程师了。这种题目也不会问的太多,大概题目如下:
- 请描述下你上个公司的测试流程?
- 请描述下bug的几个要素?
- 白盒和黑盒的区别,你是怎么运用的?
- 你是如何做测试分析?
- 如何设计测试用例?什么样子的测试用例是好用例?
- 功能测试在 beta 版本对外的上线标准是什么?
测试管理题
这类题目就是考验你作为测试leader或者测试负责人的管理能力了。
- 如果项目周期很短,测试人力匮乏,你是怎么协调的?
- 描述下你团队的测试分工
- 对于团队成员,你是如何打kpi的?
移动测试相关
如今是移动互联网的天下,谁家没有个应用,所以这一块基本都会问到,同时也会看你的简历,如果你没有做过,基本也不会问的太深,如果你是专门做这一块的,那么要好好准备了。
概念题
- 描述下web测试和移动应用测试的相同点和区别?
- 你是如何做应用的兼容性测试的?
- 请讲出客户端下 3 个常用的性能指标的名称与具体含义?
- iOS应用和Android应用测试有什么侧重点?
- 请讲诉移动应用的灰度是怎么做的?
实践题
- 应用的闪退通常是什么原因造成的?如果应用闪退,Android 和 iOS 上是分别怎么抓取日志的?
- 请简述移动应用在升级安装时候应该考虑的场景?
- 给你一个应用,请简述你会从哪些方面去测试?
- 请描述下微信朋友圈发小视频的用例设计?
- 如果让你来测试扫码支付,你会考虑哪些场景?
- 如何测试一个应用的登录场景?
服务端测试相关
什么都离不开服务端,所以这是你逃不开的,一般来说服务端会问接口测试,性能测试,更深一点,埋点监控止血也会有。
- 请问你们公司是如何做接口测试的?
- 接口测试质量评估标准是什么?
- 请问你们公司是如何做性能测试的?请讲诉性能测试的相关指标?
- 压力测试和负载测试的区别
- 服务器中一般要监控哪些数据,如何监控的,怎么从监控数据中发现问题?
- 假设系统A调用系统B,我把B的接口都mock了,进行性能测试,这样有什么好处和坏处?
- 有一天早上打车高峰,滴滴服务端挂了大概30分钟,工程师抢修之后,马上上线,之后又挂了,请问有哪些原因会造成这个情况?
自动化相关
自动化永远是避不开的,反正你入职的岗位要不要用自动化,你必须得会一点,加分项。这一块包括,自动化一些理念和自动化的工具使用。
理念和概念
- 如何看待自动化和手动测试?怎样的一个比例才是健康的?
- 你们公司的自动化投入产出比怎样?效益怎样?
- 自动化测试用例的覆盖率多少?
- 完整运行一次自动化用例需要多久时间?
- 什么是分层自动化?
- 你的测试数据是怎么准备的?
- 测试脚本的维护成本是怎么样的?
- 工具使用
- WebDriver 相关
- 请问你的定位策略是什么?
- 请问如何实现用例失败或者异常时候需要截图?
- 请问如何分布式执行webdriver用例?
- 如何在脚本中执行 JavaScript 代码?
移动应用相关
- Appium 的定位策略有哪些?
- 请简述Appium的原理
- iOS 和 Android 的 UI 自动化的原理是什么?
- 当定位策略都失败的时候,你该怎么做?
- 请问Monkey测试的优缺点?
- 如果使用monkey发现了一个毕现闪退,请问怎么使用monkey重现它?
Jmeter
- 你用jmeter做什么测试?
- 如果有一个登录接口需要服务端返回参数,再带着这个参数去请求才能完成登录,用jmeter 怎么做?
- 所谓硬题就是答案一般都是固定或者标准的,答案也不会模棱两可,包括:算法,编程,sql,linux
算法
- 请写出冒泡排序。
- 1~9999数列中数字3出现的次数。用递推方法解出。
- 从一个数组中找出前4个最大的数,用最优解。
- 写一段程序,删除字符串a中包含的字符串b,举例 输入a = "asdw",b = "sd" 返回 字符串 “aw”,并且测试这个程序。
- 写一个方法,把字符串转为数字,比如 str="1234",变成 int 1234。并且测试这个程序。
编程
- 什么是面向对象编程?
- 讲下Java多线程的使用。
- 有三个线程T1,T2,T3,怎么确保它们按顺序执行?
- Thread 类中的start() 和 run() 方法有什么区别?
- 请写一个线程安全的单例模型。
SQL
- 说下左连接和右连接。
- 介绍下什么是索引。
- 使用sql生产10万条数据。
- 给你一张表,根据要求写sql,这个题目比较多,自己百度吧。
Linux
- 你常用的命令是什么?
- 用什么查看log?
- 如何查找一个文件大小超过5M的文件
- 如何查看进程?