/qa-interview

软件测试工程师面试的一些知识点。

Primary LanguageHTMLApache License 2.0Apache-2.0

!> 阅前必读

1. 👴 简历与面试

求职

招聘

劳动者权益与健康

2. 💻 开发技术

2.1. 计算机基础

2.1.1. 操作系统

操作系统原理与基础

  • 进程和线程区别,为什么进程切换开销比线程大?

Linux

  • 基础知识
  • linux 命令
    • 知道哪些 linux 命令?
    • 说下压缩、解压一个文件的完整命令?
    • 平时怎么查看日志?查看日志有哪些命令?
    • 怎么编写定时任务?
    • linux 中查找某个文件并删除它。
    • linux 根据端口号查找进程信息。
  • Bash

2.1.2. 计算机网络

基础理论题

  • 说下七层网络模型?

应用场景题

  • 打开一个网页都发生了哪些事?
  • 百度首页打不开,问题怎么定位?讲下定位流程。

TCP/UDP

  • 说下 TCP 的连接过程?
  • TCP 如何保证可靠性?
  • TCP 和 UDP 的区别?

DNS

  • 说下 DNS 域名解析过程?

HTTP/HTTPS

  • 介绍下 HTTP 报文结构?
  • 知道哪些 Header,含义是什么?
  • 知道哪些 http 状态码?
  • 401 和 403 的区别?403 怎么解决?
  • http 和 https 的区别?
  • 为什么 HTTPS 是安全的?证书是什么?
  • get 与 post 的区别?

2.1.3. 数据结构和算法

栈和队列

  • 简述下栈和队列?分别适合什么场景?

链表

  • 有两个有序链表,将他们组成一个有序链表。
  • 查找链表的倒数第三个数。

散列表(哈希表)

  • 给定一个列表,列表中每个元素包含两个属性 id 和 parentid,将列表转换成一棵树。
  • 计算一个给定二叉树的深度。

编程题

  • 有一组符号 ['-', '-', '+', '+', '+','-', '+','-', '+','-','-'],要求将 “+” 排到左边,“-” 排到右边。
  • 解析 json 为 kv 形式。例如 json 数据 {"a":"1","b":{"c":"2"},"d":[{"e":"3"}]},得到所有 key 和 value 的对应关系,例如 array("a"=>1, "b.c"=>2, "d.0.e"=>3)

排序算法

字符串

  • 给一个字符串,字符串里有 (){}[] 这六个符号,设计一个算法,判断这些符号是否成对匹配,即要检验这些括号是否都是成对出现的。
  • 有两个字符串类型的数字,实现一个方法将它们进行相加,并返回相加后的数值。(要考虑数据的长度问题)。
  • 判断一个字符串是否包含一个英文单词,例如 hello world 包含 hello 但是不包含 he。

动态规划

  • 计算斐波那契数列,不能使用递归。

2.1.4. 架构与设计

设计模式

  • 知道哪些设计模式?
  • 单例模式怎么实现?
  • 单例模式的使用场景?举几个例子。
  • 什么是工厂模式?

2.1.5. 中间件

服务器/网关

  • Nginx
    • Nginx 负载均衡策略?

缓存中间件

  • Redis
    • Redis 缓存更新策略?

消息中间件(消息队列)

  • RocketMQ
  • Kafka

2.1.6. 数据库

SQL

MySQL

  • 存储过程与函数
  • Q0012 MySQL 索引知道哪些?
    • 单一索引和组合索引,组合索引最左原理?
    • 数据库索引的优缺点?什么时候应该建索引?
    • 索引采用的是什么数据结构?为什么要用这种数据结构?
  • 数据库锁
    • 讲下数据库乐观锁和悲观锁?
    • 数据库会出现死锁吗?怎么避免死锁?怎么解决死锁?
  • 数据库事务

MongoDB

2.1.7. 通用语言

2.1.7.1. 正则表达式

2.2. 后端开发

2.2.1. Java

2.2.1.1. Java 基础

Java 语法

Java API

  • Q0013 浅拷贝和深拷贝的区别?深拷贝怎么实现?
  • 集合、容器
    • HashMap 的原理?哈希冲突怎么解决?
    • HashMap 和 HashTable 的区别?
  • 并发与锁
    • Java 多线程的创建方式?
    • wait 和 sleep 的区别?
    • 线程有哪些状态?阻塞和等待状态的区别?
    • 悲观锁和乐观锁?为什么乐观锁更快?两者的使用场景?举个例子?

JVM

  • 内存管理
    • 内存泄露和内存溢出的区别?
    • 内存泄露如何检测?
    • 什么是内存可见性?volatile 有什么用?
  • 类加载机制
    • 知道双亲委派机制吗?怎么破坏?
2.2.1.2. Maven
  • 类冲突有哪些解决方法?
  • 类冲突(Jar 冲突),为什么编译期没报错,运行时却报错?
2.2.1.3. Spring

Spring IoC

  • Spring @Autowired 和 @Resource 的区别?
  • Spring @Component 和 @Service 有什么区别?怎么实现的?

Spring AOP

  • Spring AOP 原理?静态代理和动态代理优缺点和应用场景?为什么动态代理慢?
  • Spring AOP 使用场景?怎么用的?

2.2.2. Python

3. 🐞 测试技术

3.1. 测试理论与基础

3.1.1. 测试用例设计

  • 什么是好的测试用例?如何评价一个用例的好坏?
  • 黑盒测试用例设计方法有哪些?你用过哪些?
  • 用例设计场景题:
    • 直播打赏。
    • 腾讯视频的播放界面。
    • B 站弹幕。
    • 微信发红包。
    • 微信支付,或者是支付宝转账。
    • 购物车。
    • 微信换头像。
    • 淘宝登录,京东登录,等登录功能。
    • 百度贴吧的发帖功能。
    • 抖音刷视频(上滑下滑播放暂停)。

3.2. 测试左移

  • 测试左移你会怎么做?

3.2.1. 代码评审

  • 怎么说服开发老大同意做代码评审,怎么跟进评估效果?
  • 代码评审发现过哪些问题?

3.3. 环境部署

3.3.1. 环境治理

  • 说下你们的测试环境?
  • 测试环境和线上环境如何保持一致?
  • 测试环境遇到了哪些问题,怎么解决的?

3.3.2. 容器技术

3.4. 用例筛选与追溯

3.5. 用例设计与执行

3.5.1. Web 端测试

自动化测试

  • 说说你对 PO 的理解?
  • UI 自动化有什么总结,知道哪些最新的技术、方向或改进方向?
  • UI 自动化稳定性如何?怎么提高稳定性?
  • Web 自动化遇到过哪些难题?怎么解决的?

Selenium

3.5.2. 服务端测试

自动化测试

  • 接口自动化关注哪些指标,怎么考核自动化?

性能测试

  • 性能测试指标有哪些?XX 指标解释一下?
  • 性能测试中什么情况内存过高,但 CPU 使用率不高?怎么排查定位问题?
  • 性能测试中什么情况 CPU 使用率高,但内存占用不高?怎么排查定位问题?
  • 如果 SQL 查询很慢,你怎么定位问题?

3.5.3. 移动端测试

性能与稳定性测试

  • 手机 App 崩溃闪退的原因?
  • 怎么测试 APP 启动时间?
  • APP 资源消耗怎么测试?比如 CPU、内存占用。

自动化测试

  • App 的测试工具知道哪些?你用过哪些?
  • UI 自动化中 WebView 怎么测试?
  • UI 测试做的是 iOS 还是 Android?讲讲 iOS 的 UI 怎么测?
  • 自动化测试中发现了哪些 Bug,举个例子?

3.6. 测试右移

  • 线上质量如何保证?

3.7. 质量度量

3.7.1. 覆盖率

3.8. 研发效能

jvm-sanbox

  • jvm-sanbox 原理?jvm-sanbox 有哪些用途?

CI/CD/DevOps

  • CI/CD 怎么做的?

4. 🏢 管理

管人、管事、管项目。

4.1. 测试管理

  • 你是如何构建质量体系的?
  • 微服务(如 dubbo)怎么测试的?
  • 你负责一个业务的测试,你打算怎么做?
  • 测试过程中有哪些风险点,怎么解决的?
  • 测试过程中怎么提高效率?

4.2. 项目管理

4.3. 团队管理

5. 🐾 工作总结/项目总结

5.1. 工作总结

  • 上家公司主要工作内容?
  • 说下你们的测试流程?
  • 什么是软件测试?说说你对测试的理解?
  • 做了多年的软件测试,你的感悟是什么?

5.2. 项目总结

业务测试

工具开发

5.3. 亮点难点

  • 你的亮点是什么?自己解决的最亮点的技术难点是什么?
  • 遇到过什么难点,如何解决的?测试过程中遇到哪些难题,怎么解决的?

6. 👀 通用问题

6.1. 智力题

6.2. 转场反问

6.3. 自我认知/个人总结

  • 请做下自我介绍?
  • 说说你的优缺点。
  • 对自己有什么职业规划?职业发展有什么打算?
  • 自己觉得最有成绩感的一件事或做过的一个东西?
  • 最近半年有什么提升(有学习什么)?

6.4. 软实力

沟通能力

  • 工作中有没有遇到过冲突,怎么解决的?
  • 入职之后,你最讨厌或者说最不喜欢和什么样的同事打交道?

7. HR

7.1. 情况了解

  • 有没有对象/打算什么时间结婚/有没有小孩/...
  • 为什么从上一家公司离职?
  • 为什么选择我们公司?说一下对本公司的看法和期望。
  • 上家公司入职时的职级、离职时的职级?绩效怎么样(每次的绩效)?

7.2. 双向选择

  • 如何看待工作压力?之前公司的加班情况怎么样/加班常态能否接受?
  • 之前的薪资是多少?期望薪资是多少?为什么会期望这些薪资?
  • 已经找工作多久了?手中是否还有其他 offer?能说下手上现在有哪些 offer 吗?

7.3. 入职相关

  • 接收到 offter 多久可以入职?