背景
leader让胖虎当回面试官, 招一位合适的测开同学.
由于是第一次当面试官, 肯定要认真对待一下, 所以精心准备了一些面试题.
讲道理胖虎经历过很多次面试了, 不过都是以面试者的角度, 首次以面试官的身份来面试别人还是有点期待的!
制定评判标准
首先我列了个能力需求和对应的打分机制, 也就是评判标准.
- 沟通表达能力(20分)
- 技术能力(40分)
- 团队协作能力(20分)
- 学习能力(20分)
面试考验的是综合素质, 在我看来, 只要「80分以上」就能通过我这关, 还是比较人性化的~
项目相关问题
「面试者自我介绍」
- 考察点: 对沟通表达能力,以前的公司,技能点有大致了解
「面试者介绍项目」
- 考察点: 对项目的熟悉程度
- 考察点: 做过的项目是否真实 沟通表达能力
- 考察点: 测试思维能力
「你们的项目测试流程是什么样的?」
代码语言:javascript复制追问: 比如明天版本准备上线,今天开发修改完最后的版本提测,测试结果发现很多基础功能的bug,这时候你怎么处理接下来的情况?
- 考察有没有质量把控能力/意识
- 考察团队协作能力
「做过哪些提升测试效率的工作,效果如何?」
代码语言:javascript复制追问: 搭建过程中遇到过哪些问题,怎么解决的?
- 考察点: 自动化,测试脚本/工具开发 能力
「工作过程中遇到过什么印象深刻的bug, 怎么解决的?」
- 考察点: 表达能力
- 考察点: 问题排查定位能力
- 考察点: 团队协作能力
编程能力问题
看面试者更熟悉哪门语言, 针对性提问, 默认是java
编程这块是从实际使用出发, 没考特别偏难的概念, 都是很常见的知识点,分为基础篇和进阶篇.
Python
「基础题」
- 讲下python的基础数据结构,各自的特点是什么?
- 发送邮件, 操作mysql 一般用什么库来操作
- 使用列表的话, 你常用哪些api?(append, pop, 切片,sort, reverse)
- python的类中, 类变量,实例变量的区别是什么? 实例是否可以调用类变量?
「进阶题」
- 对 *args **kwargs 的理解
- 对装饰器了解吗, 写一个统计函数运行时间的装饰器
Java
「基础题」
- 讲下java基础的数据结构
- 讲下链表常用的api有哪些?
答: add(), remove(), set(index, obj), size(), contains()
- 对静态变量和实例变量的理解
- 对 this 和 super 关键字的理解
追问: 加 或者 不加括号 有什么区别?
答: 不加:调变量或者普通方法 加:调构造方法
「进阶题」
- 单例模式了解吗?写一个饿汉式单例的实现
- 对重载和重写的理解?
- 数组和链表的底层实现了解吗?增删查的时间复杂度是多少?
- 多线程的几种实现方式,常用api, 死锁(备用)
计算机网络相关
- 浏览器输入url后发生了什么
- TCP UDP
- https原理
数据库相关
「基础」
- 左连接,右连接,自连接
- 查询第10-20条数据怎么写
limit 9,10
- order by, having, limit, where, group by 这几个关键字, 一般是怎么排序使用的
关键字书写顺序
select from -> where -> group by -> having -> order by -> limit
先where过滤,再分组, 再分组过滤, 再排序, 再限制数量
「进阶」
- mysql索引
- 慢查询优化
- mysql锁相关
- redis理论(缓存击穿, 缓存穿透,缓存雪崩)
部署相关
- Linux上你是怎么部署项目的,可以拿一个最熟悉的项目部署举例
- Docker
Dockerfile中 RUN 和 CMD 命令区别
答:
RUN命令是构建镜像时执行的命令,属于创建Docker镜像(image)的步骤, 一个Dockerfile中可以有许多个RUN命令
CMD命令是构建容器后调用,也就是在容器启动时才进行调用, 一个Dockerfile仅仅最后一个CMD起作用。
- Jenkins
用过什么插件, 完成过什么功能
有哪几种运行job的方式?
一个简单的算法题(字符串的相关操作)
代码语言:javascript复制寻找字符串中,括号里面的最长字符串
例如: a = "dfnk(y)452(dx)dm,,(biklk9e)ds5"
预期: biklk9e