啃下这350+软件测试工程师面试题,4面阿里测试岗,总算顺利拿到 offer

news2024/10/1 1:23:15

下边是我根据工作这几年来的面试经验,加上之前收集的资料,整理出来350+道软件测试工程师常考的面试题。字节跳动、阿里、腾讯、百度、快手、美团等大厂常考的面试题,在文章里面都有提到。

虽然这篇文章很长,但是绝对值得你点击一下收藏

想要找工作的同学,假如你每次面试之前,把此文拿出来过一过,好好复习一下,相信你一定能找到一个满意的工作。

一、开场白

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:你的期望薪资是多少?

以上内容均为初中级软件测试工程师、初级自动化测试工程师面试、笔试题的高频题目。后续还将继续更新对于以上这些知识点,经过长时间整理,已经形成了文档资料以及讲解视频等等,下面给出部分截图:

 

这份文档,对于今年备战金三银四面试的朋友来说,应该会有很大的帮助,希望大家都能收到满意的offer,大家觉得有用的话记得给我点赞收藏,点击下方小卡片均可以分享。   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/380810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript高级程序设计读书分享之8章——8.1理解对象

JavaScript高级程序设计(第4版)读书分享笔记记录 适用于刚入门前端的同志 创建自定义对象的通常方式是创建 Object 的一个新实例,然后再给它添加属性和方法。 let person new Object() person.name Tom person.age 18 person.sayName function(){//示 this.name…

MySQL运维篇之主从复制

02、主从复制 2.1、概述 主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行复制&…

Vue+ElementUI+SpringBoot项目配合分页插件快速实现分页(简单暴力)

首先需要在项目中引入Element-UI的组件库,使用以下命令,不会引入的请自行百度。 npm i element-ui -S Element官网地址:https://element.eleme.cn/#/zh-CN/component/changelog 去Element-UI官网组件库找到合适的分页插件,并把他引…

HashMap的7种遍历方式

目录1.JDK 8 之前的遍历1.1 EntrySet 遍历1.2 KeySet 遍历1.3 EntrySet 迭代器遍历1.4 KeySet 迭代器遍历2.JDK 8 之后的遍历2.1 Lambda 遍历2.2 Stream 单线程遍历2.3 Stream 多线程遍历3.总结1.JDK 8 之前的遍历 1.1 EntrySet 遍历 public static void main(String[] args) …

高压功率放大器在径向驻波型超声波电机研究中的应用

实验名称:大力矩径向驻波型超声波电机有限元分析与实验研究研究方向:超声电机测试目的:提出了一种大力矩径向驻波型超声波电机,在实现电机大力矩输出的同时保持结构紧凑的特点。首先设计并分析了电机的结构和工作原理,…

Biomod2 (上):物种分布模型预备知识总结

Biomod11.栅格数据处理1.1 读取一个栅格图片1.2 计算数据间的相关系数1.3 生成多波段的栅格图像1.4 修改变量名称1.4.1 计算多个变量之间的相关性2. 矢量数据处理2.1 提取矢量数据2.2 数据掩膜2.2 栅格计算2.3 拓展插件的使用3. 图表绘制3.1 遥感影像绘制3.2 柱状图分析图绘制3…

C语言循环控制语句Break,goto,continue语句讲解

循环控制语句改变你代码的执行顺序。通过它你可以实现代码的跳转。 C 语言中 break 语句有以下两种用法: 当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。 它可用于终止 switch 语句中的一个 …

【日志框架-笔记】深入浅出 Log4j,理论-源码-配置

log4j一、log4j 的概述及其入门程序入门程序二、日志输出的需要及PatternLayout类源码分析日志输出的需要PatternLayout类的源码分析三、Log4j 占位符的具体含义四、Log4j 配置文件实操如何对配置文件进行解析的?(LogManager的静态代码块)实操五、自定义…

ClickHouse的架构与基本概念

一、ClickHouse的定义 ClickHouse是一个完全的列式分布式数据库管理系统(DBMS),允许在运行时创建表和数据库,加载数据和运行查询,而无需重新配置和重新启动服务器,支持线性扩展,简单方便,高可靠性&#xf…

spring spring-boot @valid @NotNull @NotEmpty 基本校验使用以及 全局异常优化集成

valid NotNull NotEmpty 一套标准的基础校验&#xff0c;可以将校验注解和附带错误信息添加到请求入参上即可完成校验&#xff0c;可以去除简单的校验代码&#xff0c;节省一定的时间和代码量 Maven 依赖 spring-boot <dependency><groupId>org.springframewor…

【已解决】VM中安装的Ubuntu窗口太小、无法和Windows复制粘贴

按理说窗口都是铺满VM的&#xff0c;可是有时候安装Ubuntu之后发现小太了&#xff0c;就800*600&#xff08;4:3&#xff09; 1 窗口太小方法一 在桌面右键&#xff0c;打开display settings 调整resolution&#xff0c;选择你需要的即可&#xff0c;但是这样的调整不是很完…

结构体占用内存大小如何确定?-->结构体字节对齐 | C语言

目录 一、什么是结构体 二、为什么需要结构体 三、结构体的字节对齐 3.1、示例1 3.2、示例2 3.3、示例3 3.4、示例4 3.5、示例5 四、结构体字节对齐总结 一、什么是结构体 结构体是将不同类型的数据按照一定的功能需 求进行整体封装&#xff0c;封装的数据类型与大小均…

日期:Date,SimpleDateFormat常见API以及包装类

一.Date类 package com.gch.d1_date;import java.util.Date;/**目标:学会使用Date类处理时间,获取时间的信息*/ public class DateDemo1 {public static void main(String[] args) {// 1.创建一个Date类的对象:代表系统此刻日期时间对象Date d new Date();System.out.println(…

什么是pod类型

很久很久以前&#xff0c;C 语言统一了江湖。几乎所有的系统底层都是用 C 写的&#xff0c;当时定义的基本数据类型有 int、char、float 等整数类型、浮点类型、枚举、void、指针、数组、结构等等。然后只要碰到一串01010110010 之类的数据&#xff0c;编译器都可以正确的把它解…

做软件测试,如何才能实现月入20K?

听我的&#xff0c;测试想要月入20k。 首先你要去大厂&#xff0c;不在大厂起码也得在一线城市&#xff0c;北上广深。 二线城市的话成都、杭州最好。 不然的话想都不要想。 像我之前整理过成都的公司&#xff0c;除了字节跳动、蚂蚁金服、滴滴、美团、京东、平安、字节跳动…

超简单的计数排序!!

假设给定混乱数据为&#xff1a;3&#xff0c;0&#xff0c;1&#xff0c;3&#xff0c;6&#xff0c;5&#xff0c;4&#xff0c;2&#xff0c;1&#xff0c;9。 下面我们将通过使用计数排序的思想来完成对上面数据的排序。(先不谈负数) 计数排序 该排序的思路和它的名字一样…

Java——图像渲染

题目链接 leetcode在线oj题——图像渲染 题目描述 有一幅以 m x n 的二维整数数组表示的图画 image &#xff0c;其中 image[i][j] 表示该图画的像素值大小。 你也被给予三个整数 sr , sc 和 newColor 。你应该从像素 image[sr][sc] 开始对图像进行 上色填充 。 为了完成…

互联网医院系统软件开发|互联网医院管理系统开发的好处

互联网医院一直是现在的热门行业&#xff0c;很多的医院已经开发了互联网医院&#xff0c;并且已经在良好的运行中&#xff0c;而有一些医院和企业正在开发中&#xff0c;或者打算开发互联网医院系统&#xff0c;其实这些企业和医院还是很有远见的&#xff0c;因为他们知道并了…

Swift 第三方 播放器AliyunPlayer(阿里云播放器)(源码)

一直觉得自己写的不是技术&#xff0c;而是情怀&#xff0c;一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的&#xff0c;希望我的这条路能让你们少走弯路&#xff0c;希望我能帮你们抹去知识的蒙尘&#xff0c;希望我能帮你们理清知识的脉络&#xff0…

卡尔曼滤波——一种基于滤波的时序状态估计方法

文章目录1. Kalman滤波及其应用2. Kalman原理公式推导&#xff1a;Step 1&#xff1a;模型建立Step 2&#xff1a;开始Kalman滤波Step 3&#xff1a;迭代滤波本文是对 How a Kalman filter works, in pictures一文学习笔记&#xff0c;主要是提炼核心知识&#xff0c;方便作者快…