一.基础题:
1.测试用例你一般是怎么设计的,怎么可以提高覆盖率?有没有形成自己的一套方法论?
2.电梯是怎么测试的?用例设计
3.从零到一独立负责一个大项目,你是如何开展测试的?
4.接口测试你是怎么做的?都发现了哪些问题,详细说下定位分析过程。
5.测试过程中你遇到最难得一个技术问题是什么?如何解决的?
一定要分点回答(逻辑清晰):
1、时间;
2、什么功能;
3、遇到什么问题;
4、怎么定位问题;
5、怎么解决问题,为什么要这样解决;
6、在性能、可用性、资源、用户产生了正面影响。
讲清楚问题是什么,难在什么地方,你是怎么解决的,你为什么要这样解决,有没有什么数据和测试证明你有效解决了,例如下面这个回答结构:
1、我(最近的一个时间)在做(怎样的一个产品/程序),这个产品/程序的目的是(帮助用户完成什么事),其中有一个(什么模块),为了实现(什么功能),用到了(什么技术),但是(遇到了什么挑战/难点/bug)。
2、我通过(怎样的手段)定位问题所在,问题出现的原因是(简要的点到技术点的描述),我在(至少两个资料来源)上找到了参考,最后基于(怎样的决策标准)决定采用(何种解决方法),运用了(哪种技术),最后成功解决了问题/实现了功能。
3、结果是这个产品/程序(对用户,系统,性能,可用性,资源等产生了何种正面的影响)。下一步,我认为我应该研究(何种更先进的方式),进一步(怎样让产品/程序做得更好)。
6.你们公司后端是微服务架构吗?介绍一下
二.数据库
1.说一下sql是怎么优化的?
2.怎么看索引有没有生效的?索引的几种类型说一下。什么情况会导致索引失效?一般都在哪些字段上面加索引?索引应用场景
3.什么是数据库死锁,如何避免?
4.手写sql单表查询,分组,排序等操作
5.手写sql多表连接查询,嵌套子查询等
三.网络
1.http,rpc协议的特点,除了http协议接口还测试过哪些协议接口?怎么测试的?
2.说下cookies,session,token鉴权机制?为什么要引入这套机制?
3.浏览器输入百度网址发生了什么?DNS解析过程
4.tcp为什么三次握手不是两次?
四.linux
1.linux监控操作系统的常用命令,查看JVM的命令
2.linux三剑客说一下有什么区别,应用场景是什么?
3.查找大于1M的文件linux命令
4.linux查找当前目录下所有后缀为.py的文件
5.shell学过吗?都会哪些东西?说一下应用场景?
五.python
1.说一下装饰器,应用场景有哪些,项目中是怎么用到的?
2.深浅拷贝
3.说下python的可变参数,应用场景是什么?
4.面向对象三大特征
5.类变量,实例变量,类对象,实例对象的区别
6.return和yield区别
7.推导式,迭代器,生成器
8.python中私有变量能否访问
9.python中类的方法种类和区别
六.接口自动化
1.有了postman,jmeter还有开源的接口自动化平台,为什么还要写代码来做自动化,你们这套自动化框架的意义是什么?
2.说下接口自动化分别用了哪些框架,怎么实现的,你主要负责哪些部分?
3.你们这套框架最难的技术点有哪些?
4.搭建框架过程中遇到哪些问题,怎么解决的?
5.数据驱动怎么做的?关键字驱动怎么做的?
6.这套框架覆盖了开发多少业务代码,怎么统计出来的?
7.每个框架的技术细节,不一一举例了......
七.性能测试
1.你们公司性能测试怎么做的,说一下流程?
2.TPS上不去什么原因,怎么排查?响应时间太长怎么分析?
3.线程阻塞和死锁问题怎么去定位分析,有什么现象?
4.内存泄露和内存溢出有什么区别?分别会有什么现象?怎么定位分析?
5.数据库是怎么监控的,sql慢查询怎么监控分析?
6.如何进行全链路监控分析,定位性能瓶颈?
7.压测线上环境都会遇到什么问题,数据隔离怎么做的?如何减小对生产影响?
8.测试过程中都发现了哪些性能问题,怎么定位分析的?优化方案是什么?
八.JVM
1.JVM内存结构
2.什么时候垃圾回收,哪些内存需要垃圾回收?
3.JVM参数怎么调优?
九.中间件
1.正向代理和反向代理区别?
2.mq是如何测试的?你项目中怎么应用的?不同mq的优缺点?为什么使用mq?
3.为什么使用redis,redis五种数据类型,如何测试redis的,项目中如何应用的?
4.都发现过哪些缓存方面的bug,怎么定位的?
5.redis穿透,击穿,雪崩机制,被问了好几次......
十.手撕代码
1.常见的排序算法,冒泡,快排等
2.数组,字符串的相关算法操作比如找一个字符串中重复最长的字符串等
3.简单的数据结构栈,队列,链表的操作等