| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 【爆肝帝,花费3个月整理】金九银十面试季,2020-2021字节跳动所有,软件测试面试题拿走不谢!(附详细答案解析) -> 正文阅读 |
|
[开发测试]【爆肝帝,花费3个月整理】金九银十面试季,2020-2021字节跳动所有,软件测试面试题拿走不谢!(附详细答案解析) |
前言最近有收到一些不同公司的面试题,像字节跳动、网易、美团等,趁着有时间,给大家梳理下,说不定面试能派上用场,大概给大家从以下几个方面来做了整理:
个人信息1. 公司测试流程?/测试工作怎么开展的?/怎么展开测试? 考察是否熟悉测试过程中各个环节。具备知识:软件生命周期、bug 生命周期、测试流程。 大概流程为需求评审会议 —> 测试计划(测试范围、时间节点、任务分配、测试策略、环境,风险评估)—> 测试用例编写(测试思维)、内部/项目组评审 —> 测试执行(开发编译完成,提测):发现 bug 定位 bug,提交并跟踪 bug,多轮回归测试,测试结束 —> 整理测试报告–> 发布线上,线上问题跟踪。 可依据自己公司做适当调整。 2.做过什么项目,负责什么? 3.项目中每个业务扣细节? 4.个人规划、如何理解测试岗位 5.在最近生活或者工作上,遇到的最有挑战的事 测试思维1.纸杯子做什么测试? 反问面试官:这个水杯容量、材质、大小、形状、功能有无限制? 面试官:没有限制 我:假设这个水杯 100ml 办公室一次性的纸质水杯 功能测试、界面测试、易用性测试、兼容性测试、安全测试、性能压力来思考 功能测试:水杯能否正常装水,不漏水?100ml 边界值? 装冷水开水热水?能否降解?… 界面测试:外观颜色、设计、logo、界面文字是否正确?. 易用性测试:隔热、易握?杯口是否毛刺?设计是否符合人体工学?… 兼容性测试:装气体/固体/液体? 不同环境下是否正常? 安全测试:材质质量,是否防止腐蚀能力?防止碰撞,割手?抑制细菌?… 性能压力:摔多次?是否耐摔?(不同高度) 挤压(不同角度),是否变形?.. 2.发红包测试用例? 3.微信点赞如何测试? 4. 设计发朋友圈测试用例 5.领取优惠券的页面如何设计? 6.设计抖音视频播放页面测试用例? 7.针对抖音搜索界面,设计测试用例? 8.如何测试一瓶矿泉水? 9.一个项目,有增删改查接口等,做接口测试,怎么测? 情景问题1. 视频卡顿如何排查 2.打开 APP 后页面空白,怎么排查问题? 答案:
3. 为微信的点赞功能设计测试用例,假如点赞了但是点赞数没有加一,可能报错在哪里? 答案:url 定位错误、代码错误、断网操作网络不好、未更新、次数限制 4. 网络良好的情况下,发现数据传输过程出现 404 的情况,你认为是什么问题。 原因一般来说有几种情况:
5. A 给 B 发送消息后,A 看见消息发送出去了,但是 B 没有收到,怎么排查问题? 6. 网页加载慢的原因? 7. 与开发人员冲突的处理方法及遇到问题的解决方法 8. 一个 bug 开发不认同是 bug 你该怎么做 ? 首先确认开发环境是否跟自己测试环境一致(有时候开发是在他们已更新代码的环境上验证 bug 的,所以 bug 就没出现,但在测试环境上面会出现),确认在测试环境能重现,如果确认是缺陷跟开发保持有效的沟通, 如果是级别较低的建议性 bug,可以先记录到 bug 平台,先保留沟通; 如果是 bug 级别较高的问题,对应需求文档的预期结果跟开发说明,更有说服力;耐心讲解 bug 的危害,不行就找产品确认,确认是 bug 注明情况并再次指派给开发 9. 你正在测试,产品组拿来一个紧急测试让你测,你该怎么办? 10. 如果同事进度不能符合预期,影响整体进度怎么办 11. 如果领导给你一个不熟悉的事件,但很紧急怎么办? 计算机网络1.介绍 OSI 模型 第一层:物理层,功能:利用传输介质为通信的主机之间的建立、管理和释放物理连接,实现比特流的透明传输,为数据联立层提供数据传输服务 第二层:数据链路层,功能:在物理层提供比特流的基础上通过建立数据链路连接,采用差错控制与流量控制方法,使有差错的物理线路变成无差错的数据链路 第三层:网络层,功能:通过路由选择算法为分组通过通信子网选择适当的传输路径,实现流量控制,拥塞控制与网络互联的功能 第四层:传输层,功能:为分布不同地理位置计算机的进程提供可靠的端对端链接与数据传输服务;传输层向高层屏蔽了底层数据通信的细节 第五层:会话层,功能:负责维护两个会话主机之间连接的建立、管理和终止,以及数据的交换 第六层:表示层,功能:负责通信系统之间的数据格式变换、数据加密与解密、数据压缩与恢复 第七层:应用层,功能:实现协同工作的应用程序之间的通信过程控制 2.为什么 TCP 消耗系统资源多 3.TCP 与 UDP 区别
4.TCP 怎么保证可靠连接 5.http 会话保持功能如何实现? 6.http 状态码? 1XX:通知。1XX 系列响应代码仅在与 HTTP 服务器沟通时使用。 2XX: 成功。2XX 系列响应代码表明操作成功了。 3XX 重定向。3XX 系列响应代码表明:客户端需要做些额外工作才能得到所需要的资源。 4XX:客户端错误。这些响应代码表明客户端出现错误。不是认证信息有问题,就是表示格式或 HTTP 库本身有问题。客户端需要自行改正。 5XX 服务端错误。这些响应代码表明服务器端出现错误。 7.http 长连接和短连接以及他们分别适用的场景 ? 8.get 和 post 区别? Get: a.一般对于从服务器取数据的请求可以设置为 get 方式 b.Get 方式在传递参数的时候,一般都会把参数直接拼接在 url 上(例如:http://xxx?id=1&type=2) c.Get 请求方法可以传递的参数数据量是有限的(因为一般参数是拼接在 url 上,而浏览器对于 url 的长度是有限制的) d.Get 请求因为是直接将数据拼接在 url 上,所以安全性不如 post 强(相对),但是 get 的执行效率要快于 post Post: a.一般往服务器提交数据的请求会设置为 post 方式 b.Post 方式传递参数一般都会把参数放在请求体,而不会拼接在 url c.Post 请求方法可以提交的数据量不受限制 Post 请求传参相对于 get 要安全(相对不是绝对),但是 post 的执行效率不如 get。 9.post 主体的格式? 10.http 协议的 header 11.cookie 和 session 是什么,为什么要用 cookie 和 session ? 12.DNS 协议和作用? 13.Https 中的 CA 证书在客户端还是在服务端? 操作系统1. 进程和线程的区别? 进程是资源分配的最小单位,线程是程序执行的最小单位。 2. 多线程和多进程,以及应用场景? 3. 进程通信方式 ? 4. 内存泄漏? 5. 堆和栈? 栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 6. 堆内存和栈内存? 7. 什么是死锁,死锁的条件? 8. 产生死锁的原因? 可归结为如下两点: a. 竞争资源 系统中的资源可以分为两类: 可剥夺资源,是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺,CPU 和主存均属于可剥夺性资源; 另一类资源是不可剥夺资源,当系统把这类资源分配给某进程后,再不能强行收回,只能在进程用完后自行释放,如磁带机、打印机等。 产生死锁中的竞争资源之一指的是竞争不可剥夺资源(例如:系统中只有一台打印机,可供进程 P1 使用,假定 P1 已占用了打印机,若 P2 继续要求打印机打印将阻塞) b. 进程间推进顺序非法 若 P1 保持了资源 R1,P2 保持了资源 R2,系统处于不安全状态,因为这两个进程再向前推进,便可能发生死锁 例如,当 P1 运行到 P1:Request(R2)时,将因 R2 已被 P2 占用而阻塞;当 P2 运行到 P2:Request(R1)时,也将因 R1 已被 P1 占用而阻塞,于是发生进程死锁 9. 如何预防死锁,!避免死锁,死锁发生的检查? 资源一次性分配:一次性分配所有资源,这样就不会再有请求了:(破坏请求条件) 只要有一个资源得不到分配,也不给这个进程分配其他的资源:(破坏请保持条件) 可剥夺资源:即当某进程获得了部分资源,但得不到其它资源,则释放已占有的资源(破坏不可剥夺条件) 资源有序分配法:系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反(破坏环路等待条件) 代码题、算法题1.装饰器并写一个装饰器例子? 2.找出 数组中出现次数超过一半的数字 3.哈希表的空间复杂度 4.算法题:给你一个字符串,查找出所有的重复子字符串。 5.算法题:树的深度遍历:while 循环:栈,先入右子树节点,后入左子树节点。 6.算法题:给你一个字符串找出其中的回文字符串,对你的算法设计用例 7.算法题:二叉树的前序遍历 Python/Java 基础
数据类型分为两种基础类型和引用类型
浅拷贝只是复制了对象的引用地址,两个对象指向同一个内存地址,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝(例:assign()) 深拷贝是将对象及值复制过来,两个对象修改其中任意的值另一个值不会改变,这就是深拷贝
a=[] 这是一个列表 b=() 这是一个元组 区别:列表可以修改而元组不能修改,例如可以往列表中用 append()添加元素,由于元组是不可修改的所以不存在添加元素的问题。 相同点:列表和元组都是容器,包含了一些列的对象,二者都可以包含任意类型的元素甚至包含序列。
Linux1.常见命令 2.打印当前文件夹文件 ls -al a 所有文件 l 详细信息 3.查询 CPU 等情况的命令 答案:free 命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。 top 命令提供了实时的运行中的程序的资源使用统计 atop 命令是一个终端环境的监控命令。它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注 htop 命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。列表可以水平及垂直滚动。 ps 命令可以实时的显示各个进程的内存使用情况。 smem 命令允许你统计基于/proc 信息的不同进程和用户的内存使用情况。内存使用情况的分析可以导出图表(如条形图和饼图–图形界面窗口才提供)。 vmstat 命令显示实时的和平均的统计,覆盖 CPU、内存、I/O 等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存。 nmon 是一个基于 ncurses 的系统基准测试工具,它可以监控 CPU、内存、I/O、文件系统及网络资源等的互动模式。对于内存的使用,它可以实时的显示 总/剩余内存、交换空间等信息。 数据库
概念: 1.数据库事务: 数据库事务通常指对数据库进行读或写的一个操作序列。 它的存在包含有以下两个目的:
答案: 用的地方不一样 where 可以用于 select、update、delete 和 insert into values(select * from table where …)语句中。 having 只能用于 select 语句中 执行的顺序不一样 where 的搜索条件是在执行语句进行分组之前应用 having 的搜索条件是在分组条件后执行的 即如果 where 和 having 一起用时,where 会先执行,having 后执行 子句有区别 where 子句中的条件表达式 having 都可以跟,而 having 子句中的有些表达式 where 不可以跟;having 子句可以用集合函数(sum、count、avg、max 和 min),而 where 子句不可以。 总结 1.WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。
内连接 则是只有条件的交叉连接,根据某个条件筛选出符合条件的记录,不符合 条件的记录不会出现在结果集中,即内连接只连接匹配的行。 外连接 其结果集中不仅包含符合连接条件的行,而且还会包括左表、右表或两个 表中的所有数据行,这三种情况依次称之为左外连接,右外连接,和全外连接。 左外连接,也称左连接,左表为主表,左表中的所有记录都会出现在结果集中, 对于那些在右表中并没有匹配的记录,仍然要显示,右边对应的那些字段值以 NULL 来填充。右外连接,也称右连接,右表为主表,右表中的所有记录都会出现 在结果集中。左连接和右连接可以互换,MySQL 目前还不支持全外连接。
SELECT 姓名 FROM Student GROUP BY 科目 Having MIN(成绩)>=80
资源笔记分享如果你是小白,或者需要跳槽,想往软件测试发展,可以先领取一套系列学习资料,自学看看,需要免费系列全套资源分享可以: 点赞后(希望让更多人看到,一起学习),点击【这里】即可获取!文章中全套学习文档! 好文分享数十万csdn小白难题:自学软件测试,学到什么程度可以出去找工作啊?京东offer不要了,换字节跳动… 25岁的我失业了,学物流管理的我选择转行做软件测试,5个月靠体系化自学“跳进”阿里年薪15w+! B站免费系列学习视频分享 【软件测试0基础学习】 |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 22:34:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |