测试工程师面试题之 - 中高级

基础题

  • 这种题目,考的就是你的软性能力,比如表达能力,理解能力,协调能力,一个词概括就是套路。这类题目会在面试开始热身的时候,问一道两题,不会多,但是如果你能回答的有条不紊,清晰达意,那么就会给面试官留下非常好的印象,大致的题目如下:

  • 自我介绍

  • 介绍下你负责的公司项目

  • 你有什么优点和缺点?

  • 在同一个项目组内,你认为你怎么做会比另外一名测试更加优秀?

  • 你为什么离开上家公司?离职原因(这个会在最后问)

测试理论基础题

  • 这类题目就是考测试工程师的基本能力了,比如测试计划,测试流程,如何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的文件

  • 如何查看进程?