10月辞职,11月下旬开始面试,面试了大约10+家公司,20+轮面试,整理一些大中厂面试时常见的测试问题。
一、项目经历
- 系统架构
- 项目背景(主要针对技术驱动的项目)
- 项目的测试难点,如何解决?
- 需求紧急上线,QA人力紧张,如何解决该问题?
- 测试流程介绍,哪些环节可以优化?
- 测试时影响范围如何评估?
- pm和研发测试项目如何保证质量?
- 除了手动测试,还有哪些测试手段保证测试质量?(我的回答是自动化+流水线的一些能力)
- 业务线整体的测试策略?
- QA如何应对线上故障?
- 测试数据问题如何解决?
- 线上问题发现的手段?线上监控有哪些指标?系统监控和业务层面的监控分别有哪些?
- diff应用在哪些,接口或者DB层面。
- 压测问题
二、测试用例设计
考得比较少,但是也需要准备,主要是几个分类都说全,不能只讲功能层面的用例设计
- 账号密码登录
- 微信发红包
- 视频网站发弹幕
三、Mysql
- SQL语句:主要考察左右连接join、group by、order by、limit分页
- 引擎:两个引擎的区别
- 索引:索引有哪些类型?全文索引使用那个引擎?索引的使用,索引失效的条件,索引的最左匹配原则以及原因(B+数节点存储)
- Mysql数据库锁有哪些?
- mysql事务隔离有哪些,分别有什么问题,默认隔离级别是哪个?
- Mysql锁优化方式
- 慢查询的优化
- Mybatis的使用介绍
四、Redis && ES
- Redis/ES使用在哪种场景?原因是什么?
- Redis如何和DB保持一致,不一致如何解决?
- 缓存击穿、缓存雪崩、缓存穿透是什么?如何解决?
- Redis支持几种数据类型,读写的操作命令分别是什么?
五、MQ
- 如何保证MQ消息的可靠性和幂等性?
- MQ框架有哪些?区别是什么?
- MQ消息测试的主要测试点?
- 消息积压的处理办法?
六、自动化
- 自动化建设的原则?什么算优质的自动化?(覆盖率、稳定性、有效性、执行效率、精准反馈等)
- 自动化覆盖率标准?
- 如何评估自动化的价值?(发现问题数量,提测准入,测试完成后的回归,版本升级等自测需求的回归测试,其他拓展使用比如环境稳定性可用性)
- 自动化框架介绍
- 自动化测试数据如何构造?
- 自动化失败原因有哪些?如何解决?(拉练等等)
- 编写一个接口的自动化考虑哪些东西?
- 如何看待自动化的作用?
七、Java&&通用问题
Java知识点很多,考察的东西比较散,200+常见的Java面试题包含大约一半的问题,我记录一些比较常见的问题
- Java的基本数据类型
- Java线程是什么,如何实现多线程?如何保证线程安全?
- HashMap和HashTable的区别?
- Java类中的方法加载顺序
- Java中常用的链表有哪些?区别是啥?
- rpc和http的区别?
- gc产生的场景,如何解决?
- hash冲突如何解决?HashMap使用哪种方法?
- tcp和udp区别
- 一次完整的https请求的过程
- http和https的区别
- https加密解密以及传输过程,使用哪种加密方式
- get、post区别
八、Springboot
- Springboot的理解,使用它的优点有哪些?
- 常用的注解
- 调用某个方法报NPE的原因是什么?
- AOP和IOC介绍,实现一个AOP
九、工具相关
- 做某个工具的背景,解决什么问题?
- 需要和其他人协调吗?如何协调?自己在工具开发中是什么角色?
- 系统如何实现?使用了哪些框架中间件?
- 工具的难点是什么?如何解决?
- 目前哪些可优化?
- 目前的调用量,使用的范围?
- 后续计划
十、其他问题
- 目前你们的质量保障有哪些问题,如何解决呢?
- rpc、mq等中间件的底层框架是哪个?
- 持续交付的理解,业务QA可以做哪些?
十一、算法题
算法题很多,我列举面试中高频出现的几个
- 无重复字符的最长子串-计算长度或者子串 -- 这个很高频。
- 两数之和
- 顺时针输出二维矩阵
- 有效括号数量
- 最长有效括号
- 括号生成
- 回文数
- 最长公共子串
- 单词拆分
- 两个链表的第一个公共节点
- 大数的减法,优化手段?
- 数组偶数位从大到小排序,奇数位从小到大排序,给这个数组排序。
- Integer的数字输出为List的数字,例 1234 -> [1,2,3,4]
- 冒泡
- 快排
十二、主观题
- 最近一段工作成长最多的有哪些?
- 目前最需要成长的有哪些?
- 做的超出预期的工作有哪些?
- 自己下一份工作预期