# tester-interview **Repository Path**: test-interview/tester-interview ## Basic Information - **Project Name**: tester-interview - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-03 - **Last Updated**: 2024-03-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 测试开发Guide|测试岗位面试题汇总 你好,我是臻叔,曾就职于估值100亿美金的独角兽公司。职位是测试开发工程师。 希望能分享自己的工作技能与工作经验,能带给大家一些帮助。 标签:python、linux、前端、java、自动化测试、测试工具、devops。

公众号 哔哩哔哩 知乎 CSDN testerhome 简书 掘金 开源中国

# 前言(善用Ctrl+F) 根据我工作几年来的面试经验,加上之前收集的资料,整理出来350+道字节跳动、阿里、腾讯、百度、快手、美团等大厂常考的面试题。 虽然这篇文章很长,但是绝对值得你点击一下star。 祝大家顺利拿到心仪的offer。 **面试题后续会第一时间更新在微信公众号上,感兴趣的可以扫码关注**

![](http://tva1.sinaimg.cn/large/006F2AR3gy1gdpsdb0u7nj31062nxti1.jpg) # 目录 ### 一、开场白 > Q:简单自我介绍一下吧 > > Q:项目和实习经历?(注意使用STAR法则表述) ### 二、软件测试基础 #### 工作内容 > Q:按测试内容划分,测试有哪些种类? > > Q:软件开发(测试)的流程是怎么样的? > > Q:你印象最深刻的 bug 是? > > Q:谈谈你对 CI/CD 的理解 > > Q:谈谈你对 DevOps 的理解 > > Q:什么是 BDD ? 什么是 TDD ? > > Q:APP的一个页面,你怎么区分是原生Native页面,还是H5? #### 测试方法 > Q:黑盒测试的方法有哪些? > > Q:白盒测试的方法有哪些? > > Q:什么是单元测试? > > Q:什么是集成测试? > > Q:测试用例怎么编写与设计? > > Q:什么是灰盒测试? #### 测试文档 > Q:测试用例都包含哪些要素? > > Q:测试报告需要展示哪些要素? > > Q:测试排期应该怎么估算? > > Q:谈谈你构造数据的经历? #### 自动化测试 > Q:举例说明,都有哪些功能可以用自动化来进行? > > Q:如何判断一个功能能否进行自动化测试? > > Q:定位xpath路径都有哪些方法? > > Q:如何定位一个动态的元素? > > Q:如何定位类似于悬浮在web页面上的元素(类似于web上飞来飞去的广告) > > Q:列举你知道的自动化测试工具 #### 测试工具 > Q:聊聊 fiddler 的抓包原理 > > Q:fiddler 怎么抓取 https 请求? > > Q:wireshark 抓包的头部有什么? #### 性能测试 > Q:性能测试如何做的? > > Q:性能测试需要关注哪些方面? #### 游戏测试 > Q:印象最深的游戏是哪个?哪些方面最吸引你? > > Q:印象最深的游戏里有过哪些bug,分析下原因 > > Q:如何对一个大地图游戏进行测试?该有哪些测试点? > > Q:测试程序设计的不合理 与 测试程序完善但是测试人员出现失误,哪一项更严重? > > Q:游戏测试的定位和职责你觉得是什么? > > Q:游戏采用客户端和服务器架构的必要性是什么? > > Q:LOL脚本的原理是什么? > > Q:为什么RPG游戏脚本没有LOL这种竞技类脚本开发的多? > > Q:有一个触发概率极低但是非常致命的BUG,明天项目一定要上线,你怎么处理,不用非得解决,就是问我怎么处理这种事。 > > Q:为什么想做游戏测试? > > Q:让你做一个游戏,你更想做哪个类型的(MMORPG?MOBA?FPS?RTS?) > > Q:说说游戏史,除了游戏还有什么爱好? > > Q:列举你知道的游戏测试的测试工具 ### 三、软件测试实战 #### 排查问题的思路 > Q:网页崩溃的原因是什么? > > Q:有个用户反馈上传头像失败,分析原因? > > Q:app闪退的原因? > > Q:偶然闪退的排查? > > Q:网页卡顿的原因是什么? > > Q:10%的用户反馈用不了功能,你讲如何排查? > > Q:登录的按钮不能点击,如何排查问题? > > Q:压测的时候,QPS一直上不去,你会怎么排查? > > Q:APP提示无法连接网络,你会如何排查? > > Q:怎么判断一个BUG到底是前端的BUG还是后端的BUG? #### 实战案例 > Q:微博发动态,设计一下测试点 > > Q:对一台自动售货机进行测试用例设计 > > Q:设计微信发红包测试用例 > > Q:设计抖音直播功能测试用例 > > Q:设计微信扫码支付的测试用例 > > Q:设计百度首页的测试用例 > > Q:微信的点赞功能怎么测试? > > Q:微信红包是先计算每个人能获得的钱还是当这个人点了再计算。 > > Q:微信朋友圈评论功能怎么测试? > > Q:微信上线一个新的好友推荐功能功能如何测试? > > Q:测试微信换头像功能,设计测试用例 > > Q:抖音视频的安全性测试,测试点有哪些? > > Q:如果手机浏览器输入 http://baidu.com 打不开页面,你会怎么排查? > > Q:设计输入框测试用例? > > Q:编写一个登录界面的测试用例? > > Q:对一个接口编写测试用例 > > Q:搜索功能怎么测试? ### 四、语言基础 #### Java > Q:什么是多态? > > Q:什么是GC? > > Q:set 与 hashset 的区别 > > Q:map 与 hashmap 的区别 > > Q:hashmap 的查找,删除,添加的时间复杂度 > > Q:查找所有java进程 > > Q:杀死java进程 > > Q:介绍一下 java 的拷贝、四种引用 > > Q:java容器有哪些?简要介绍一下 java 的数组和链表 > > Q:谈谈你对 java 集合了解多少? > > Q:Java 三大特性是什么? > > Q:List 和 Map 有什么区别? > > Q:谈谈 List、Set、Map的区别? > > Q:重写与重载的区别是什么? > > Q:HashMap 和 HashTable 的区别是什么? > > Q:ArrayList 和 LinkedList 的区别是什么? > > Q:Map 的 put 方法 > > Q:java的封装,java 的访问权限关键字的作用域? > > Q:为什么 java 要面向接口编程? > > Q:什么是反射? > > Q:interface 和 abstract 的区别是什么? > > Q:熟悉 maven 么?谈谈你对 maven 的了解 #### Python > Q:全局变量和局部变量变量名能否一样? > > Q:Python 里 is 和 == 的区别? > > Q:Python 变量的创建与消亡过程 > > Q:Python的垃圾回收的机制 > > Q:dict的底层结构,tuple和list的底层结构的区别 > > Q:深拷贝浅拷贝的区别是什么? > > Q:什么是协程? > > Q:什么是装饰器?举一个你用过装饰器的例子 > > Q:@classmethod 和 @staticmethod 的区别,以及分别运用在哪些使用场景? > > Q:什么是鸭子类型? > > Q:python 的可变类型有哪些? > > Q:python 常见的数据类型有哪些? > > Q:列举 python2 和 python3 的区别 > > Q:什么是lambda函数?怎么用? > > Q:别的编程语言都有三目运算符,三目运算符在python中怎么表达? > > Q:try...except...else 和 try...except...finally 的区别是什么? > > Q:什么是可迭代对象?可迭代对象的原理是什么? > > Q:with...as 的原理是什么? > > Q:解释一下python的GIL锁 > > Q:python 是单继承还是多继承? > > Q:python 继承的顺序是什么? > > Q:什么是元类? > > Q:为什么都说 python 慢? #### Shell > Q:什么场景下,适合编写 Shell 脚本来处理? #### C++ > Q:指针和引用的区别是什么? ### 五、数据结构与算法 #### 链表 > Q:一个有序链表,怎么求第K大个节点? > > Q:怎么找出这两个链表是否有相交的点 > > Q:数组与链表的区别 > > Q:链表逆序 #### 数组 > Q:怎么对俩有序数组合并? > > Q:求数组中和为 n 的两个数,时间复杂度是多少? > > Q:int 型数组,怎么排序? > > Q:int 型数组,怎么去重? #### 复杂度 > Q:时间复杂度是什么? > > Q:怎么计算时间复杂度? #### 排序 > Q:八大排序都有哪些? > > Q:快排的原理 > > Q:归并排序的原理 > > Q:冒泡排序的原理 > > Q:插入排序的原理 > > Q:选择排序的原理 #### 树 > Q:数的定义,代码实现 > > Q:什么是树的高度?怎么求? > > Q:计算二叉树节点的个数 > > Q:什么是根结点?什么是叶子节点? > > Q:打印二叉树 #### 递归 > Q:什么是递归? > > Q:递归的时间复杂度是什么? #### 字符串 > Q:字符串长度可以改变么? #### 堆与栈 > Q:堆和栈都有什么区别 > Q:代码实现栈 #### 动态规划 > Q:什么是动态规划? #### 高级算法 > Q:什么是深度遍历?什么是广度遍历? #### 查找 > Q:能够实现二分查找的必要条件是什么? #### 哈希 > 待施工 #### 图 > 待施工 ### 六、框架 #### 开发框架 ##### Django > Q:简单介绍一下Django的目录结构 > > Q:了解什么是MVC么?为什么说 Django 是MTV模型? > > Q:一个网络请求在Django中的实现过程 > > Q:uwsgi是什么?用uwsgi和用Django的原生启动方式,有什么区别? > > Q:了解 ORM 么?简单介绍一下Django的ORM映射 > > Q:Django的 CBV 和 FBV 的区别?实际项目中你会使用哪种方式?为什么? > > Q:怎么把 Django 的 module 同步到数据库中?同步过程中会遇到什么坑么? ##### Spring > Q:Spring 框架介绍 > > Q:什么是 IOC? > > Q:什么是 DI? > > Q:什么是 AOP? #### 测试框架 ##### selenium > Q:selenium框架的运行原理 > > Q:selenium定位元素的方法都有哪些 ##### Appium > Q:Appium用过吗?原理是什么? ##### Unittest > 待施工 ##### Pytest > 待施工 ##### TestNG > 待施工 ##### Junit > 待施工 ### 七、计算机基础 #### 计算机网络 ##### TCP/UDP > Q:简单介绍 TCP 三次握手(为什么不是两次、四次) > > Q:四次分手是什么? > > Q:TCP 拥塞是什么? > > Q:TCP怎么保证安全的,UDP能否也像TCP那样安全,怎么做? > > Q:你知道 tcp 的控制可靠性的策略和重传机制么? > > Q:TCP协议属于哪一层? ##### HTTP/HTTPS > Q:cookie 和 session 机制、区别 > > Q:输入url到网页显示出来中间的过程 > > Q:列举你知道的网页状态码 > > Q:3 开头的网络状态码的含义是什么?302和304的区别是什么? > > Q:4 开头的网络状态码含义是什么? > > Q:5 开头的网络状态码含义是什么? > > Q:什么是 HTTPS?原理是什么? > > Q:GET 和 POST 的区别是什么? > > Q:网络请求 method 有哪几种? > > Q:简单介绍一下什么是 RESTful API > > Q:PUT 和 POST 的区别 > > Q:列举常见的请求 Header 头 > > Q:一个HTTP请求报文是什么样的?(GET举例) > > Q:GET 的长度限制了解么? ##### 其他 > Q:最大连接数和QPS区别 > > Q:网络一共分为几层? > > Q:客户端向服务器请求图片和动态资源的区别 > > Q:图片渲染的过程 前端 > > Q:网络七层有哪些?tcp,udp,arp都在哪一层? > > Q:QPS 和 TPS 的区别是什么? > > Q:解释一下DNS > > Q:什么是反向代理? > > Q:什么是 socket? > > Q:【手撕】用 socket 实现一个聊天室功能? #### 操作系统 ##### 进程/线程 > Q:进程与线程的区别? > > Q:何时cpu处理进程最慢? > > Q:为什么会出现死锁? > > Q:进程间通信的方式? > > Q:线程间通信的方式? > > Q:如何做到线程同步? ##### Linux > Q:linux切换目录 > > Q:linux命令,统计一个文本中关键字出现的次数 > > Q:linux 查找当前目录下所有后缀为 .py文件 > > Q:知道的linux常用命令:查看指定端口进程 > > Q:cd - 和 cd ~ > > Q:linux 查看某个进程命令怎么写 > > Q:如何查看日志?怎么查看后500条日志? > > Q:awk有什么用?如何用(举个例子)? > > Q:如何查看系统性能? > > Q:如何查看剩余磁盘空间大小? > > Q:如何查看目录占空间大小? > > Q:你知道 xarg 的用法吗? > > Q:怎么从本地计算机与服务器中进行文件传输? > > Q:测试服务器之间怎么进行文件拷贝? > > Q:sed 有什么用?如何用(举个例子)? > > Q:怎么杀死一个进程? > > Q:怎么递归删除一个目录下的所有文件? > > Q:怎么查看内存大小? > > Q:怎么查看 CPU 使用情况? > > Q:怎么重启 Linux 服务器? > > Q:怎么打印出一个文件的第500-1000行? ##### 文件存储 > Q:静态存储和动态存储的区别 > > Q:视频在服务器的存储几种方式 > > Q:CDN有什么用? > > Q:为什么前端静态资源要上传到CDN上? ##### 其他 > Q:系统资源包括哪些? > > Q:什么是 IO 操作? > > Q:什么是内存? > > Q:什么是硬盘? > > Q:什么是CPU? > > Q:什么操作比较消耗CPU? > > Q:什么是UTF-8?什么是Unicode? > > Q:什么是 IO 多路复用?以及怎么实现? > > Q:谈谈什么是分布式?为什么要用分布式? #### 数据库 ##### 非关系型数据库 > Q:非关系型数据库有哪些? > > Q:Redis的数据结构有哪些? > > Q:Redis 和 Memcached 的区别? > > Q:Redis 的用途? > > Q:Redis一秒能写入多少数据? > > Q:Redis为什么快? > > Q:Redis的过期时间怎么设置?哪些场景适合缓存更长时间? > > Q:什么是缓存雪崩? > > Q:什么是缓存击穿?缓存击穿和缓存穿透的区别是什么? > > Q:什么时候适合用MongoDB? > > Q:Redis 适合做消息队列吗?为什么? > > Q:Redis 的数据是存储在内存当中的,假如断电之后就会造成数据丢失,那怎么对 Redis 进行数据固化? ##### 关系型数据库 **数据库基本理论** > Q:有哪些数据库优化的方式? > > Q:关系型数据库和非关系型数据库的区别? > > Q:数据库的事务有什么用?什么时候应该使用事务,什么时候不该使用事务? > > Q:数据库索引有什么用?什么是联合索引? > > Q:主键适合用自定义ID还是自动ID? > > Q:外键是什么?为什么大公司有时候不建议使用外键? > > Q:索引设置得越多越好吗?索引得优缺点是什么? > > Q:InnoDB是基于什么实现的? > > Q:为什么会造成数据库死锁?怎么解决? > > Q:事务都有哪些特点? > > Q:数据库设计的三大范式是什么? > > Q:一张数据表最多不建议超过多少行? > > Q:为什么要进行分表分库? > > Q:分表分库有哪几种方式?举例说明 **SQL** > Q:【手撕】数据库,查找一个学生两门功课都大于80分的姓名 > > Q:【手撕】联表查询2个表中工号为“123”的人的所有信息 > > Q:【手撕】一个人员表,一个部门表,人员表中存了部门id,查人员表各部门表所有数据 > > Q:【手撕】查询一个城市列表里面重复的城市名,并且统计重复次数 > > Q:【手撕】查找一个学生成绩表中平均分数大于90分的学生名单 > > Q:【手撕】查找学生成绩表中平均成绩最高的同学 > > Q:数据库怎么拷贝数据? > > Q:删除数据的方式有哪些?说说 drop table和truncate table的区别? ### 八、智力题 > Q:跳台阶问题 > > Q:4分钟沙漏和7分钟沙漏怎么漏出9分钟 > > Q:两个粗细不同的香,燃尽时间都是1个小时,怎么用这个2根香计算15分钟的时间 > > Q:赛马 > > Q:10堆苹果,每堆10个,9堆每个50g,1堆每个40g,有一个称,求只称一次,找出这个轻的一堆 > > Q:飞机加油问题 > > Q:逻辑:四个开关四个灯泡 > > Q:地球弧形 ### 九、编程题 > Q:求最大回文个数 > > Q:一个数组中有正数有负数(没有0),请将它排成正负相间的数组(多余的全部放后面),时间复杂度 > > 不超过O(n); > > Q:一道编程题,输入一串由ABCD四个字随机组成的字符串和一个整数k,返回字符串种前k个字的顺序重复了几次。 > > Q:编程:判断一个字符串是否符合ipv4格式 > > Q:代码题,给一个句子,只把单词翻转然后输入 > > Q:【手撕代码】字符串中只出现一次的字符、找出数组中最小的四个数字 > > Q:代码:一串字符串中最小的整数 > > Q:写代码,类似高考成绩,一个表中有很多数据(无序的),给你一个成绩,查出在表中的排名 > > Q:编程题,鸡兔同笼,一半的兔子伸起一半的脚,输入地上有几只脚,列出所有的可能性(兔子是基数则整除2) > > Q:判断一个字符串是否是点分十进制的ipv4格式 > > Q:100万个学生 按照成绩 及对应排名录入 分数查找排名(hashmap) > > Q:python的编程题,输入一个字符串然后空格切割在统计每个字母出现的次数 ### 十、HR常问 > Q:为什么想做测试 > > Q:对测开的理解 > > Q:测试过程中有没有出现问题,是如何解决的 > > Q:最近看了什么书?学了什么?为什么学?有看什么技术书籍吗? > > Q:个人优缺点,举例 > > Q:测试看重什么能力 > > Q:项目问题细挖 > > Q:为什么选择xx公司? > > Q:你对我们公司有什么了解吗? > > Q:之前实习收获了什么 > > Q:介绍下自己的优缺点 > > Q:抗压能力如何,描述一件自己如何抗压的经历 > > Q:反问环节:你有什么问题想问我么? > > Q:项目中收获了什么? > > Q:平时怎么学习的 > > Q:为什么要离职? > > Q:你的期望薪资是多少? # 关于我 [【关于我】](http://mp.weixin.qq.com/s?__biz=MzAxMTA2OTY0Nw==&mid=301785273&idx=1&sn=feedd9980f4d5027e2bd2e4e59b2ef14&chksm=0f4ef1193839780f802d1ffa152a785682a514383ee27840727f17e9ecb8a783a558af50f6ac#rd)。