面试题小集锦

有想找工作的小伙伴,可以在“霍格沃兹测试开发”公众号回复:面试,获取面试题。

以下为部分题目及答案,不定期更新。大家有好的题目和答案也可以回复在下面。 :wink:

软件测试基础

工作内容

  1. 按测试内容划分,测试有哪些种类?
  2. 软件开发(测试)的流程是怎么样的?
  3. 你印象最深的bug是?
  4. 谈谈你对CI/CD的理解?
  5. 谈谈你对DevOps的理解?
  6. 什么事BDD?什么是TDD?
  7. APP的一个页面,你怎么区分是原生native页面,还是H5?

测试方法

  1. 黑盒测试的方法有哪些?
  2. 白盒测试的方法有哪些
  3. 什么是单元测试?
  4. 什么是集成测试?
  5. 测试用例怎么编写与设计?
  6. 什么是灰盒测试?

测试文档

  1. 测试用例都包含哪些要素?
  2. 测试报告需要展示哪些要素?
  3. 测试排期应该怎么估算?
  4. 谈谈你构造数据的经历?

自动化测试

  1. 举例说明,都有哪些功能可以用自动化来进行?
  2. 如何判断一个功能能否进行自动化测试?
  3. 定位xpath路径都有那些方法?
  4. 如何定位一个动态的元素?
  5. 如何定位类似于悬浮在web页面上的元素(类似于web上飞来飞去的广告)?
  6. 列举你知道的自动化测试工具?

测试工具

  1. 聊聊fiddler的抓包原理?
  2. fiddler怎么抓取https请求?
  3. wireshark抓包的头部有什么?

性能测试

  1. 性能测试如何做的?
  2. 性能测试需要关注那些方面?

游戏测试

  1. 印象最深的游戏是哪个?哪些方面最吸引你?
  2. 印象最深的游戏里有过哪些bug,分析下原因?
  3. 如何对一个大地图游戏进行测试?该有哪些测试点?
  4. 测试程序设计的不合理 与 测试程序完善但是测试人员出现失误,那一项更严重?
  5. 游戏测试的定位和职责你觉得是什么?
  6. 游戏采用客户端和服务器架构的必要性是什么?
  7. LOL脚本的原理是什么?
  8. 为什么RPG游戏脚本没有LOL这种竞技类脚本开发的多?
  9. 有一个触发概率极低但是非常指定的BUG,明天项目一定要上线,你怎么处理,不用非得解决,就是问我怎么处理这个事情?
  10. 为什么想做游戏测试?
  11. 让你做一个游戏,你更想做那个类型的?(MMORPG/MOBA/FPS/RTS)
  12. 列举你知道的游戏测试的测试工具?

软件测试实战

排查问题的思路

  1. 网页崩溃的原因是什么?
  2. 有个用户反馈上传头像失败,分析原因?
  3. app闪退的原因?
  4. 偶然闪退的排查?
  5. 网页卡顿的原因是什么?
  6. 10%的用户反馈用不了功能,你该如何排查?
  7. 登录的按钮不能点击,如何排查问题?
  8. 压测的时候,QPS一直上不去,你会怎么排查?
  9. APP提示无法连接网络,你会如何排查?
  10. 怎么判断一个bug到底是前端的bug还是后端的bug?

实战案例

  1. 微博发动态,设计一下测试点?
  2. 对一台自动售货机进行测试用例设计?
  3. 设计微信发红包测试用例?
  4. 设计抖音直播功能测试用例?
  5. 设计微信扫码支付的测试用例?
  6. 设计百度首页的测试用例?
  7. 微信的点赞功能怎么测试?
  8. 微信朋友圈评论功能怎么测试?
  9. 微信上线一个新的好友推荐功能如何测试?
  10. 测试微信换头像功能,设计测试用例?
  11. 抖音视频的安全性,测试点有哪些?
  12. 如果手机浏览器舒服baidu,com打不开页面,你会怎么排查?
  13. 设计输入框测试用例?
  14. 辨析饿一个登录界面的测试用例?
  15. 对一个接口编写测试用例?
  16. 搜索功能怎么测试?

语言基础

java

python

shell

数据结构与算法

  1. 一个有序链表,怎么求第K大个节点?
  2. 怎么找出这两个链表是否有相交的点?
  3. 数组与链表的区别?
  4. 链表逆序
  5. 怎么对俩有序数组合并?
  6. 求数组中和为n的两个数,时间复杂度是多少?
  7. int型数组,怎么排序?
  8. int型数组,怎么去重?
  9. 时间复杂度是什么?
  10. 怎么计算时间复杂度?
  11. 八大排序都有哪些?
  12. 快排的原理?
  13. 归并排序的原理?
  14. 冒泡排序的原理?
  15. 插入排序的原理?
  16. 选择排序的原理?
  17. 树的定义?代码实现?
  18. 什么是树的高度?怎么求?
  19. 计算二叉树节点的个数?
  20. 什么是根节点?什么是叶子节点?
  21. 打印二叉树
  22. 什么是递归?
  23. 递归的时间复杂度是什么?
  24. 字符串长度可以改变吗?
  25. 堆和栈都有什么区别?
  26. 代码实现栈
  27. 什么是动态规划?
  28. 什么是深度遍历?什么是广度遍历?
  29. 能够实现二分查找的必要条件是什么?

框架

  1. selenium框架的运行原理?
  2. selenium定位元素的方法都有哪些?
  3. appium的原理?

计算机基础

操作系统

  • Linux
  1. Linux切换目录?
  2. Linux命令,统计一个文本中关键字出现的次数?
  3. Linux查找当前目录下所有后缀为.py文件?
  4. 知道的Linux常用命令:查看指定端口进程?
  5. cd - 和 cd ~?
  6. Linux查看某个进程命令怎么写?
  7. 如何查看日志?怎么查看后500条日志?
  8. awk有什么用?如何用(举例)?
  9. 如何查看系统性能?
  10. 如何查看剩余磁盘空间大小?
  11. 如何查看目录占空间大小?
  12. 你知道xarg的用法吗?
  13. 怎么从本地计算机与服务器中进行文件传输?
  14. 测试服务器之间怎么进行文件拷贝?
  15. sed有什么用?举例?
  16. 怎么杀死一个进程?
  17. 怎么递归删除一个目录下的所有文件?
  18. 怎么查看内存大小?
  19. 怎么查看CPU使用情况?
  20. 怎么重启Linux服务器?
  21. 怎么打印出一个文件的第500-1000行?

进程/线程

  1. 进程与线程的区别?
  2. 何时cpu处理进程最慢?
  3. 为什么会出现死锁?
  4. 进程间通信的方式?
  5. 线程间铜线的方式?
  6. 如何做到线程同步?

文件存储

  1. 静态存储的动态存储的区别?
  2. 视频在服务器的存储几种方式?
  3. CDN有什么用?
  4. 为什么前端静态姿态要上传到CDN上?

其他

  1. 系统资源包括哪些?
  2. 什么是IO操作
  3. 什么是内存?
  4. 什么是硬盘?
  5. 什么是CPU?
  6. 什么操作比较消耗CPU?
  7. 什么是UTF-8?什么是Unicode?
  8. 什么是IO多路复用?以及怎么实现?
  9. 谈谈什么是分布式?为什么要用分布式?

数据库

  1. 非关系型数据库有哪些?
  2. Redis的数据结构有哪些?
  3. Redis和memcached的区别?
  4. Redis的用途?
  5. Redis一秒能写入多少数据?
  6. Redis为什么快?
  7. Redis的过期时间怎么设置?那些场景适合缓存更长时间?
  8. 什么是缓存雪崩?
  9. 什么是缓存击穿?缓存击穿和缓存穿透的区别是什么?
  10. 什么时候适合用MongoDB?
  11. Redis适合做消息队列吗?为什么?
  12. Redis的数据是存储在内存当中的,假如断电之后就会造成数据丢失,那怎么对Redis进行数据固化?
  13. 有哪些数据库优化的方式?
  14. 关系型数据库和非关系型数据库的区别?
  15. 数据库的事务有什么用?什么时候应该使用事务,什么时候不该使用事务?
  16. 数据库索引有什么用?什么是联合索引?
  17. 主键适合用自定义ID还是自动ID?
  18. 外键是什么?为什么大公司有时候不建议使用外键?
  19. 索引设置的越多越好吗?索引的优缺点是什么?
  20. innoDB是基于什么实现的?
  21. 为什么会造成数据库死锁?怎么解决?
  22. 事务都有那些特点?
  23. 数据库设计的三大范式是什么?
  24. 一张数据表最多不建议超过多少行?
  25. 为什么要进行分表分库?
  26. 分表分库有哪几种方式?举例说明?
  27. 数据库怎么拷贝数据?
  28. 删除数据的方式有哪些?说说drop table和truncate table的区别?

代码

  1. 数据库,查找一个学生两门功课都大于80分的姓名
  2. 联表查询2个表中工号为“123"的人的所有信息
  3. 一个人员表,一个部门表,人员表中存了部门id,查人员表各部分表所有数据
  4. 查询一个城市列表里面重复的城市名,并统计重复次数
  5. 查找一个学生成绩表中平均分数大于90分的学生名单
  6. 查找学生成绩表中平均成绩最高的同学
4 个赞

这个面试题有相关的答案吗?

求答案,谢谢大佬们

可以带着问题去学习,学会了把答案回复在这里

linux基础

  1. linux切换目录
    使用cd切换目录,使用zsh的话可以使用d,快速查看到达最近的目录,可以安装插件wd,到标记好的目录

  2. Linux命令,统计一个文本中关键字出现的次数?grep以每行的形式展示出来,wc统计有多少行

    grep -o 'mqtt' history.txt| wc -l

    grep -o 或 --only-matching : 只显示匹配PATTERN 部分。

    wc -l 或–lines 显示行数。

  3. Linux查找当前目录下所有后缀为.py文件?

    只是查找当前目录可以使用 ls |grep '.py$'

    查找当前目录及所有子目录使用 find . -name '*.py'

  4. 知道的Linux常用命令:查看指定端口进程?

    sudo lsof -i:22 lsof表示 ls open files需要使用管理员权限

    netstat -tunpl|grep 22 只能打印出部分数据

  5. cd - 和 cd ~?

    cd - 返回上一次工作目录

    cd ~ 前往用户根目录,一般为/home/username

  6. Linux查看某个进程命令怎么写?

    知道进程命令名称可以使用 ps -aux |grep name

    只知道进程pid可以使用 cat /proc/PID/status

    也可以使用 ps -au|awk '$2==113323'

  7. 如何查看日志?怎么查看后500条日志?

    (1)cat ,vim, head,tail,more,less

    (2)tail -n 500 history.txt

    如果需要实时查看的话 tail -f history.txt --n 10

  8. awk有什么用?如何用(举例)?

    是一个非常强大的命令,主要对文本进行分段处理操作

    核心语法是 awk 'pattern{action}' pattern是匹配表达式,action是行为表达式

    history|awk '$2~/mosquitto_sub/{print $9,$11}' 把命令历史记录中的使用mosquitto_sub的命令的第9和11行打印出来

  9. 如何查看系统性能?

    查看cpu负载和内存的话使用 top命令

    查看内存的话使用 free -h

    查看磁盘io使用 iostat

    查看网络使用iftop

  10. 如何查看剩余磁盘空间大小?

    df -h

  11. 如何查看目录占空间大小?

    du -sh dir

  12. 你知道xarg的用法吗?

    一般跟管道一起使用,将上一个命令的输出,过滤之后作为下一个命令的输入参数

    比如将所有jpg文件打包

    find . -type f -name '*.jpg'|xargs tar -czvf images.tar.gz

  13. 怎么从本地计算机与服务器中进行文件传输?

    scp source targetuser@targethost:targetdir

  14. 测试服务器之间怎么进行文件拷贝?

    也是使用scp吧,使用其他比如搭建ftp服务要使用一些软件比较麻烦

  15. sed有什么用?举例?

    sed是流式编辑器的简称,主要用来定位和修改数据,偏重于对数据的编辑

    把所有匹配到的数字

  16. 怎么杀死一个进程?

    kill -9 pid

  17. 怎么递归删除一个目录下的所有文件?

    rm -rf dir

  18. 怎么查看内存大小?

    free -h

  19. 怎么查看CPU使用情况?

    top

  20. 怎么重启Linux服务器?

    reboot

  21. 怎么打印出一个文件的第500-1000行?

    sed -n '500,1000p' filename

数据库代码SQL

  1. 数据库,查找一个学生两门功课都大于80分的姓名
    select name from grade where grade.math > 80 and grade.english > 80;
  2. 联表查询2个表中工号为“123"的人的所有信息
    select * from info as i left join records as r on i.eid == r.eid where i.eid == 123;
  3. 一个人员表,一个部门表,人员表中存了部门id,查人员表各部分表所有数据
    select * from 人员 left join 部门 on 人员.部门id == 部门.id;
  4. 查询一个城市列表里面重复的城市名,并统计重复次数
    select name, count(name) from city group by name;
  5. 查找一个学生成绩表中平均分数大于90分的学生名单
    `SELECT student_name FROM grade GROUP BY student_name HAVING AVG(score) > 90;
  6. 查找学生成绩表中平均成绩最高的同学
    SELECT student_name, avg(score) FROM grade GROUP BY student_name ORDER BY AVG(score) DESC LIMIT 1;

有个错别字


3Q 已修改