中高级测试工程师68道面试题以及部分答案

软性热身题

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

  1. 自我介绍

  2. 介绍下你负责的公司项目

  3. 你有什么优点和缺点?

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

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

     

测试理论基础题

这类题目就是考测试工程师的基本能力了,比如测试计划,测试流程,如何bug,你做过哪些测试,一般我们认为这些能力做的再好都是应该的,不会有加分,但是只要做的不好,那就是个不合格的测试工程师了。这种题目也不会问的太多,大概题目如下:

 

  1. 请描述下你上个公司的测试流程?

  2. 请描述下bug的几个要素?

    缺陷ID,状态,类型,所属项目,所属模块,缺陷提交时间,缺陷提交人(检测者),严重程度,优先级别,缺陷描述信息,测试步骤,测试前置条件,测试数据,期望结果,实际结果
  3. 白盒和黑盒的区别,你是怎么运用的? 

    1. 参考 https://blog.csdn.net/scmuzi18/article/details/72811882

    2. 白盒测试是穷举路径测试,黑盒测试是穷举输入测试,这两种方法是基于完全不同的观点,反应了事物的两个极端,它们各有侧重和优势,但不能彼此替代。在现代的测试理念中,这两种测试方法不是截然分开的,而是交叉使用。

    3. 白盒测试的优点 
      1、能仔细考虑软件的实现。 
      2、可检测代码中的每条分支和路径。 
      3、揭示隐藏在代码中的错误。 
      4、对代码的测试比较彻底。

      白盒测试的缺点 
      1、昂贵。 
      2、无法检测代码中遗漏的路径和数据敏感性错误。 
      3、不验证规格的正确性。

      黑盒测试的优点 
      1、对于子系统甚至系统,效率要比白盒测试高。 
      2、测试人员不需要了解实现的细节,包括特定的编程语言。 
      3、测试人员和编程人员彼此独立。 
      4、从用户的角度进行测试,很容易理解和接受。 
      5、有助于暴露规格的不一致或有歧义的问题。 
      6、测试用例可以在规格完成后马上进行。

      黑盒测试的缺点 
      1、只有一小部分输入被测试到,要测试每个可能的输入几乎不可能。 
      2、没有清晰、简明的规格,测试用例很难设计。 
      3、如果测试人员不被告知开发人员已经执行过的用例,在测试数据上会存在不必要的重复。 
      4、有很多程序路径没有被测试到。 
      5、不能直接针对特定程序段测试,而这些程序段可能很复杂,有可能隐藏更多的问题。 
      6、大部分和研究相关的测试都是直接针对白盒测试的。
      ————————————————
      版权声明:本文为CSDN博主「_s西瓜」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
      原文链接:https://blog.csdn.net/scmuzi18/article/details/72811882

  4. 你是如何做测试分析? 

    1. 参考 http://www.51testing.com/html/60/n-3718460.html

    2.  我们要规划测试流程,首先要熟悉整个项目的规划。因此积极参与到项目中的每个环节当中去是非常必要的。至于测试流程,每个公司有每个公司的实情,就如HTSM一样需要结合实际来定制一样,测试流程也需要结合公司的实际情况来规划。我稍微列举一下几个必要步骤:

        首先项目立项,立项以后,基本上每个阶段的时间都有了一个大概的评估。因此立项之后立马着手于测试计划的编写,当然这个不是最后的方案,测试计划也会根据实际项目的进行而调整。但是还是要先把初稿编写出来,自己心里有一个大概的框架。

        完成测试计划后,拿到需求文档并积极打听开发的设计方案。根据获取到文档信息,圈定测试范围,思考测试手段。最后编写测试方案。

        需求分析会后,对整个测试范围更加清晰,并可以分解测试点时,开始编写测试分析。测试分析不需要太详细,但一定要有清晰的思路。测试分析主要用于指导“你要测什么?”。

        编写准入测试用例,可以用于提供给开发自测。因此此类用例可写得比较详尽。

        编写全部的测试用例。注意测试用例包含的各元素(不会的网上有模板)。注意用例前置条件要写得清晰明了,因为用例主要用于“你要怎么测?”。

        执行准入用例。虽然开发已经执行过一次,但测试的角度与开发的角度明显不一致。执行后也可用于判断是否可以进入测试阶段。

        执行用例全集。此过程可判定软件质量,大型项目建议做日报以及周报。做到及时汇报软件质量情况。

        编写准出报告。根据准出标准,判定软件实现是否已达到与需求一致。

        编写用户使用手册。为了让用户快速上手使用软件,编写手册供用户参考使用。

        参考的文档:需求文档、开发设计文档、开发详细设计文档、开发接口文档、开发字典表等涉及的文档。

  5. 如何设计测试用例?什么样子的测试用例是好用例?

    1. 参考 https://zhuanlan.zhihu.com/p/33064087 

  6. 功能测试在 beta 版本对外的上线标准是什么?

 

 

测试管理题

这类题目就是考验你作为测试leader或者测试负责人的管理能力了。

  1. 如果项目周期很短,测试人力匮乏,你是怎么协调的?

  2. 描述下你团队的测试分工

  3. 对于团队成员,你是如何打kpi的?

 

移动测试相关

如今是移动互联网的天下,谁家没有个应用,所以这一块基本都会问到,同时也会看你的简历,如果你没有做过,基本也不会问的太深,如果你是专门做这一块的,那么要好好准备了。

概念题

  1. 描述下web测试和移动应用测试的相同点和区别?

  2. 你是如何做应用的兼容性测试的?

  3. 请讲出客户端下 3 个常用的性能指标的名称与具体含义?

  4. iOS应用和Android应用测试有什么侧重点?

  5. 请讲诉移动应用的灰度是怎么做的?

实践题

  1. 应用的闪退通常是什么原因造成的?如果应用闪退,Android 和 iOS 上是分别怎么抓取日志的?

  2. 请简述移动应用在升级安装时候应该考虑的场景?

  3. 给你一个应用,请简述你会从哪些方面去测试?

  4. 请描述下微信朋友圈发小视频的用例设计?

  5. 如果让你来测试扫码支付,你会考虑哪些场景?

  6. 如何测试一个应用的登录场景?

 

服务端测试相关

什么都离不开服务端,所以这是你逃不开的,一般来说服务端会问接口测试,性能测试,更深一点,埋点监控止血也会有。

  1. 请问你们公司是如何做接口测试的?

  2. 接口测试质量评估标准是什么?

  3. 请问你们公司是如何做性能测试的?请讲诉性能测试的相关指标?

  4. 压力测试和负载测试的区别

  5. 服务器中一般要监控哪些数据,如何监控的,怎么从监控数据中发现问题?

  6. 假设系统A调用系统B,我把B的接口都mock了,进行性能测试,这样有什么好处和坏处?

  7. 有一天早上打车高峰,滴滴服务端挂了大概30分钟,工程师抢修之后,马上上线,之后又挂了,请问有哪些原因会造成这个情况?

 

自动化相关

自动化永远是避不开的,反正你入职的岗位要不要用自动化,你必须得会一点,加分项。这一块包括,自动化一些理念和自动化的工具使用。

理念和概念

  1. 如何看待自动化和手动测试?怎样的一个比例才是健康的? 

  2. 你们公司的自动化投入产出比怎样?效益怎样?

  3. 自动化测试用例的覆盖率多少?

  4. 完整运行一次自动化用例需要多久时间?

  5. 什么是分层自动化?

  6. 你的测试数据是怎么准备的?

  7. 测试脚本的维护成本是怎么样的?

  8. 工具使用

  9. WebDriver 相关

  • 请问你的定位策略是什么?
  • 请问如何实现用例失败或者异常时候需要截图?
  • 请问如何分布式执行webdriver用例?
  • 如何在脚本中执行 JavaScript 代码?

移动应用相关

  • Appium 的定位策略有哪些?
  • 请简述Appium的原理
  • iOS 和 Android 的 UI 自动化的原理是什么?
  • 当定位策略都失败的时候,你该怎么做?
  • 请问Monkey测试的优缺点?
  • 如果使用monkey发现了一个毕现闪退,请问怎么使用monkey重现它?

Jmeter

  • 你用jmeter做什么测试?
  • 如果有一个登录接口需要服务端返回参数,再带着这个参数去请求才能完成登录,用jmeter 怎么做?

硬 题

硬题

所谓硬题就是答案一般都是固定或者标准的,答案也不会模棱两可,包括:算法,编程,sql,linux

算法

  1. 请写出冒泡排序。

  2. 1~9999数列中数字3出现的次数。用递推方法解出。

  3. 从一个数组中找出前4个最大的数,用最优解。

  4. 写一段程序,删除字符串a中包含的字符串b,举例 输入a = "asdw",b = "sd" 返回 字符串 “aw”,并且测试这个程序。

  5. 写一个方法,把字符串转为数字,比如 str="1234",变成 int 1234。并且测试这个程序。

编程

  1. 什么是面向对象编程?

  2. 讲下Java多线程的使用。

  3. 有三个线程T1,T2,T3,怎么确保它们按顺序执行?

  4. Thread 类中的start() 和 run() 方法有什么区别?

  5. 请写一个线程安全的单例模型。

SQL

  1. 说下左连接和右连接。

  2. 介绍下什么是索引。

  3. 使用sql生产10万条数据。

  4. 给你一张表,根据要求写sql,这个题目比较多,自己百度吧。

Linux

  1. 你常用的命令是什么?

  2. 用什么查看log?

  3. 如何查找一个文件大小超过5M的文件

  4. 如何查看进程?

  • 2
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值