有想找工作的小伙伴,可以在“霍格沃兹测试开发”公众号回复:面试,获取面试题。
以下为部分题目及答案,不定期更新。大家有好的题目和答案也可以回复在下面。
软件测试基础
工作内容
- 按测试内容划分,测试有哪些种类?
- 软件开发(测试)的流程是怎么样的?
- 你印象最深的bug是?
- 谈谈你对CI/CD的理解?
- 谈谈你对DevOps的理解?
- 什么事BDD?什么是TDD?
- APP的一个页面,你怎么区分是原生native页面,还是H5?
测试方法
- 黑盒测试的方法有哪些?
- 白盒测试的方法有哪些
- 什么是单元测试?
- 什么是集成测试?
- 测试用例怎么编写与设计?
- 什么是灰盒测试?
测试文档
- 测试用例都包含哪些要素?
- 测试报告需要展示哪些要素?
- 测试排期应该怎么估算?
- 谈谈你构造数据的经历?
自动化测试
- 举例说明,都有哪些功能可以用自动化来进行?
- 如何判断一个功能能否进行自动化测试?
- 定位xpath路径都有那些方法?
- 如何定位一个动态的元素?
- 如何定位类似于悬浮在web页面上的元素(类似于web上飞来飞去的广告)?
- 列举你知道的自动化测试工具?
测试工具
- 聊聊fiddler的抓包原理?
- fiddler怎么抓取https请求?
- wireshark抓包的头部有什么?
性能测试
- 性能测试如何做的?
- 性能测试需要关注那些方面?
游戏测试
- 印象最深的游戏是哪个?哪些方面最吸引你?
- 印象最深的游戏里有过哪些bug,分析下原因?
- 如何对一个大地图游戏进行测试?该有哪些测试点?
- 测试程序设计的不合理 与 测试程序完善但是测试人员出现失误,那一项更严重?
- 游戏测试的定位和职责你觉得是什么?
- 游戏采用客户端和服务器架构的必要性是什么?
- LOL脚本的原理是什么?
- 为什么RPG游戏脚本没有LOL这种竞技类脚本开发的多?
- 有一个触发概率极低但是非常指定的BUG,明天项目一定要上线,你怎么处理,不用非得解决,就是问我怎么处理这个事情?
- 为什么想做游戏测试?
- 让你做一个游戏,你更想做那个类型的?(MMORPG/MOBA/FPS/RTS)
- 列举你知道的游戏测试的测试工具?
软件测试实战
排查问题的思路
- 网页崩溃的原因是什么?
- 有个用户反馈上传头像失败,分析原因?
- app闪退的原因?
- 偶然闪退的排查?
- 网页卡顿的原因是什么?
- 10%的用户反馈用不了功能,你该如何排查?
- 登录的按钮不能点击,如何排查问题?
- 压测的时候,QPS一直上不去,你会怎么排查?
- APP提示无法连接网络,你会如何排查?
- 怎么判断一个bug到底是前端的bug还是后端的bug?
实战案例
- 微博发动态,设计一下测试点?
- 对一台自动售货机进行测试用例设计?
- 设计微信发红包测试用例?
- 设计抖音直播功能测试用例?
- 设计微信扫码支付的测试用例?
- 设计百度首页的测试用例?
- 微信的点赞功能怎么测试?
- 微信朋友圈评论功能怎么测试?
- 微信上线一个新的好友推荐功能如何测试?
- 测试微信换头像功能,设计测试用例?
- 抖音视频的安全性,测试点有哪些?
- 如果手机浏览器舒服baidu,com打不开页面,你会怎么排查?
- 设计输入框测试用例?
- 辨析饿一个登录界面的测试用例?
- 对一个接口编写测试用例?
- 搜索功能怎么测试?
语言基础
java
python
shell
数据结构与算法
- 一个有序链表,怎么求第K大个节点?
- 怎么找出这两个链表是否有相交的点?
- 数组与链表的区别?
- 链表逆序
- 怎么对俩有序数组合并?
- 求数组中和为n的两个数,时间复杂度是多少?
- int型数组,怎么排序?
- int型数组,怎么去重?
- 时间复杂度是什么?
- 怎么计算时间复杂度?
- 八大排序都有哪些?
- 快排的原理?
- 归并排序的原理?
- 冒泡排序的原理?
- 插入排序的原理?
- 选择排序的原理?
- 树的定义?代码实现?
- 什么是树的高度?怎么求?
- 计算二叉树节点的个数?
- 什么是根节点?什么是叶子节点?
- 打印二叉树
- 什么是递归?
- 递归的时间复杂度是什么?
- 字符串长度可以改变吗?
- 堆和栈都有什么区别?
- 代码实现栈
- 什么是动态规划?
- 什么是深度遍历?什么是广度遍历?
- 能够实现二分查找的必要条件是什么?
框架
- selenium框架的运行原理?
- selenium定位元素的方法都有哪些?
- appium的原理?
计算机基础
操作系统
- Linux
- Linux切换目录?
- Linux命令,统计一个文本中关键字出现的次数?
- Linux查找当前目录下所有后缀为.py文件?
- 知道的Linux常用命令:查看指定端口进程?
- cd - 和 cd ~?
- Linux查看某个进程命令怎么写?
- 如何查看日志?怎么查看后500条日志?
- awk有什么用?如何用(举例)?
- 如何查看系统性能?
- 如何查看剩余磁盘空间大小?
- 如何查看目录占空间大小?
- 你知道xarg的用法吗?
- 怎么从本地计算机与服务器中进行文件传输?
- 测试服务器之间怎么进行文件拷贝?
- sed有什么用?举例?
- 怎么杀死一个进程?
- 怎么递归删除一个目录下的所有文件?
- 怎么查看内存大小?
- 怎么查看CPU使用情况?
- 怎么重启Linux服务器?
- 怎么打印出一个文件的第500-1000行?
进程/线程
- 进程与线程的区别?
- 何时cpu处理进程最慢?
- 为什么会出现死锁?
- 进程间通信的方式?
- 线程间铜线的方式?
- 如何做到线程同步?
文件存储
- 静态存储的动态存储的区别?
- 视频在服务器的存储几种方式?
- CDN有什么用?
- 为什么前端静态姿态要上传到CDN上?
其他
- 系统资源包括哪些?
- 什么是IO操作
- 什么是内存?
- 什么是硬盘?
- 什么是CPU?
- 什么操作比较消耗CPU?
- 什么是UTF-8?什么是Unicode?
- 什么是IO多路复用?以及怎么实现?
- 谈谈什么是分布式?为什么要用分布式?
数据库
- 非关系型数据库有哪些?
- Redis的数据结构有哪些?
- Redis和memcached的区别?
- Redis的用途?
- Redis一秒能写入多少数据?
- Redis为什么快?
- Redis的过期时间怎么设置?那些场景适合缓存更长时间?
- 什么是缓存雪崩?
- 什么是缓存击穿?缓存击穿和缓存穿透的区别是什么?
- 什么时候适合用MongoDB?
- Redis适合做消息队列吗?为什么?
- Redis的数据是存储在内存当中的,假如断电之后就会造成数据丢失,那怎么对Redis进行数据固化?
- 有哪些数据库优化的方式?
- 关系型数据库和非关系型数据库的区别?
- 数据库的事务有什么用?什么时候应该使用事务,什么时候不该使用事务?
- 数据库索引有什么用?什么是联合索引?
- 主键适合用自定义ID还是自动ID?
- 外键是什么?为什么大公司有时候不建议使用外键?
- 索引设置的越多越好吗?索引的优缺点是什么?
- innoDB是基于什么实现的?
- 为什么会造成数据库死锁?怎么解决?
- 事务都有那些特点?
- 数据库设计的三大范式是什么?
- 一张数据表最多不建议超过多少行?
- 为什么要进行分表分库?
- 分表分库有哪几种方式?举例说明?
- 数据库怎么拷贝数据?
- 删除数据的方式有哪些?说说drop table和truncate table的区别?
代码
- 数据库,查找一个学生两门功课都大于80分的姓名
- 联表查询2个表中工号为“123"的人的所有信息
- 一个人员表,一个部门表,人员表中存了部门id,查人员表各部分表所有数据
- 查询一个城市列表里面重复的城市名,并统计重复次数
- 查找一个学生成绩表中平均分数大于90分的学生名单
- 查找学生成绩表中平均成绩最高的同学