字节测试开发岗面试竟如此简单...

前言

因为读者里有不少刚入门测试的同学,这两天抽空整理了一份字节测试开发岗的面试题答案,说实话这个题目真挺简单的,如果你面大厂碰到此类面试题,也算是运气很好啦。大家也可以先自测一下,看看自己能不能答上来。

如果觉得有些知识点只是了解,但一问又说不上来的话,建议面试前去补补基础。我高中数学老师的口头禅就是:“半懂不懂,就是不懂。”

字节跳动测试开发一面面经(答案)

1)自我介绍(略)

2)http和https的区别

HTTP 协议传输的数据都是未经加密的,即明文的,因此使用 HTTP 协议传输隐私信息不安全。

为了保证隐私数据能够加密传输,于是使用SSL 协议用于对 HTTP 协议传输的数据进行加密,即 HTTPS;

HTTPS 协议是 HTTP + SSL 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 更加安全。

HTTP和HTTPS两者的区别主要有:

  • HTTPS 需要到 CA 申请证书,一般免费证书较少,因此需要一定费用;
  • HTTP 是超文本传输信息,信息是明文传输;HTTPS 是具有安全性的 SSL 加密传输协议;
  • HTTP 和 HTTPS 使用的是完全不同的连接方式,HTTP 默认使用 80 端口,而 HTTPS 默认使用 443 端口;
  • HTTP 的连接简单,是无状态的;而 HTTPS 是 SSL + HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全;

在这我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

自动化测试开发教程天花板,27天速成,从入门到就业,比你盲目自学好多了,允许白嫖!

3)http状态码

HTTP状态码大致分类如下:

  • 1xx:消息类,服务器收到请求,需要请求者继续执行操作。
  • 2xx:成功类,请求被成功接受并处理。
  • 3xx:重定向类,需要进一步操作完成请求。
  • 4xx:客户端错误类,客户端请求出错,服务器无法处理请求。
  • 5xx/6xx:服务器错误类,服务器处理请求出错。

较为常见的几种状态码:

【1xx】

100 -(Continue):客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。

101 -(Switching Protocols):切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议。

【2xx】

200 -(OK):请求已成功,请求所希望的响应头或数据体将随此响应返回。
201 -(Created):已创建。成功请求并创建了新的资源。

【3xx】

301 -(Moved Permanently):永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。
302 -(Found):临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI。
304 -(Not Modified):未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。

【4xx】

400 -(Bad Request):客户端请求的语法错误,服务器无法理解。
403 -(Forbidden):服务器理解请求客户端的请求,但是拒绝执行此请求。
404 -(Not Found):服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面。

【5xx】

500 -(Internal Server Error):服务器内部错误,无法完成请求。
502 -(Bad Gateway):充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。
503 -(Service Unavailable):由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中。
504 -(Gateway Time-out):充当网关或代理的服务器,未及时从远端服务器获取请求。

4)http劫持

大多数情况是运营商HTTP劫持。

当我们使用HTTP请求请求一个网站页面的时候,网络运营商会在正常的数据流中插入精心设计的网络数据报文,让客户端(通常是浏览器)展示“错误”的数据,通常是一些弹窗,宣传性广告或者直接显示某网站的内容。

HTTP 劫持的实现原理

  • 用户的浏览器访问网页,发送HTTP请求,运营商的路由器会在TCP链接中,过滤出HTTP请求,并进行标识。
  • 随后,抢在被访问的网站正常响应前,对此次浏览器发起的请求进行重定向,然后将被访问的网站正常响应数据包丢弃掉;
  • 或者是运营商路由器接收了网站正常响应,然后对响应的HTML代码进行“加工修改”,比如:加了一段恼人的广告,然后再把修改后的HTML代码扔给浏览器进行渲染。(其实跟中间人代理的原理差不多)

从上述原理中看出,如果需要进行HTTP劫持,首先需要进行标记:如果是HTTP协议,那么进行劫持,否则不进行劫持。

5)URL响应【题目描述不明确】

6)线程与进程的区别

进程是资源分配的最小单位,线程是程序执行的最小单位。

进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。

而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很位。

线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据。而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。

但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。

7)线程间通信方式

  • 锁机制:包括互斥锁、条件变量、读写锁。
  • 互斥锁:提供了以排他方式防止数据结构被并发修改的方法。
  • 读写锁:允许多个线程同时读共享数据,而对写操作是互斥的。
  • 条件变量:可以以原子的方式阻塞进程,直到某个特定条件为真为止。对条件的测试是在互斥锁的保护下进行的。条件变量始终与互斥锁一起使用。
  • 信号量机制(Semaphore):包括无名线程信号量和命名线程信号量。
  • 信号机制(Signal):类似进程间的信号处理。

线程间的通信目的主要是用于线程同步,所以线程没有像进程通信中的用于数据交换的通信机制。

8)实现多线程的方式

JAVA多线程实现方式主要有四种:

  • 继承Thread类;
  • 实现Runnable接口;
  • 实现Callable接口通过FutureTask包装器来创建Thread线程;
  • 使用ExecutorService、Callable、Future实现有返回结果的多线程。

其中前两种方式线程执行完后都没有返回值,后两种是带返回值的。

9)西瓜视频的用例测试

题目不太明确,这里给出一些测试点,大家可以再进行扩充。
图片

10)兼用(软件、硬件、网络) 【题目不明确】

11)抖音有哪些需要改进的地方?刷不出来时怎么定位测试?

定位测试:
确认网络环境是否正常
抓包看接口返回
查看服务端日志

12)DNS【题目不明确】

13)http和tcp/ip分别在哪一层?

HTTP:应用层
TCP:传输层
IP:网络层

14)sleep()和wait()方法的区别

本题应该考察的是Java的知识点:
类的不同:
sleep() 来自 Thread。wait() 来自 Object。
释放锁:
sleep() 不释放锁;wait() 释放锁。
用法不同:
sleep() 时间到会自动恢复;wait() 可以使用 notify() / notifyAll()直接唤醒。
使用方法范围不同:
sleep可以使用在任何代码块 。wait必须在同步方法或同步代码块执行。
生命周期:
当线程调用wait()或者join时,线程都会进入到waiting状态,当调用notify或notifyAll时,或者join的线程执行结束后,会进入runnable状态。当线程调用sleep(time),或者wait(time)时,进入timed waiting状态。

15)深拷贝和浅拷贝

浅拷贝只是复制了对象的引用地址,两个对象指向同一个内存地址,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝(例:assign())
深拷贝是将对象及值复制过来,两个对象修改其中任意的值另一个值不会改变,这就是深拷贝。(例:JSON.parse()和JSON.stringify(),但是此方法无法复制函数类型)

16)JDK、JRE【题目不明确】

JDK:JAVA开发工具包
JRE:JAVA运行环境

17)找出字符串中第一个不重复的字符

本题为剑指offer(57)原题。

leetcode链接:
https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/solution/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-by-3zqv5/

18)你还有什么要问的吗?(工作流程、培训体制)

一面部分到此结束

如果你也在准备字节跳动的面试,那么祝你早日顺利上岸!
 

写在最后

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。如需要软件测试学习资料,关注公众号(互联网杂货铺),后台回复1,整理不易,给个关注点个赞吧,谢谢各位大佬!

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day2 ARM基础

.text .globl _start _start:mov r0,#0 mov r1,#0 addfunc:add r0,r0,#1 r0自增1adds r1,r1,r0 R1实现1~100累加cmp r0,#100 判断r0是否到100bleq loop r0等于100 进入死循环 blne addfunc r0等于100跳转至循环累加 loop:b loopstop:b stop.end 【汇编…

webgoat-Request Forgeries 请求伪造

(A8:2013) Request Forgeries Cross-Site Request Forgeries 跨站请求伪造,又称一键攻击或会话骑乘,简称CSRF (有时发音为 sea-surf)或 XSRF,是一种恶意利用网站,其中传输未经授权的命令 来自网站信任的用…

云尘靶场 Medium_Socnet 内网为docker 无站代理 不存在gcc的提权方式 解决ldd过高无法执行exp 指定so文件

首先我们可以通过 arp-scan 扫描当前内网中的存活 但是不知道为什么扫不出来 然后我们使用fscan可以获取存活 这里大致扫描只开了22端口 所以我们使用nmap进行信息收集扫描 nmap -sS -sV -A -p- 172.25.0.13通过tcp 进行 版本服务扫描 并且检测系统版本 全端口 这里我们可以…

王干娘和西门庆-UMLChina建模知识竞赛第4赛季第18轮

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先全部答对前3题,即可获得本轮优胜。 所有题目的回答必须放在同一条消息中&…

MicroPython ESP32 RTC功能使用介绍

MicroPython ESP32 RTC功能使用介绍 📌Micropython esp32官方文档介绍:https://docs.micropython.org/en/latest/esp32/quickref.html#real-time-clock-rtc🔖本示例基于Thonny平台开发。🌿使用ESP32S3开发板测试。✨所使用的固件版…

华为防火墙基本原理工作方法总结

防火墙只会对tcp首包syn建立会话表,其它丢掉,如synack,ack udp直接建立会话表 icmp只对首包请求包建立会话表,其它包,如应答的不会建立直接丢掉 防火墙状态查看: rule name trust_untrust source-zone tru…

Texlive安装

下载4.8G的iso文件 解压 或 装载后,以管理员身份运行(.bat)文件。 运行以下两句代码进行Texlive相关升级 tlmgr option repository otan tlmgr update --self --all 运行以下三行代码,检查是否安装成功 latex -v xelatex -v pdflatex -v 如果有异常…

Linux网络编程03

select的缺陷 (1)fd,set的本质是一个位图,容量是固定的1024,因此最大只能监听1024个连接 (可以扩容) (2)监听和就绪用的是同一个数据结构,使用困难 (3&#x…

【GitHub】Watch、Star、Fork、Follow 有什么区别?

目录 一、前言二、区别1. Watch2. Star3. Fork4. Follow 一、前言 GitHub 是最受欢迎的代码托管平台之一,拥有大量的开源代码可供学习。 Github 中也有类似 “点赞”、“收藏”、“加关注” 的功能。 下面介绍下,GitHub 中 Watch、Star、Fork、Follow 有…

云服务器哪家便宜靠谱 | 简单了解亚马逊云科技发展史

云服务器哪家便宜又靠谱呢?为什么说亚马逊云科技在这道题答案的第一行,一篇故事告诉你。 1994年,杰夫贝索斯在西雅图创建了亚马逊,最初只是一个在线书店。 1997年,亚马逊在纳斯达克交易所上市,成为一家公…

10 路由协议:西出网关无故人,敢问路在何方

1.网络包出了网关之后,就有了一种漂泊的悲凉感 2.之前的场景是比较简单的场景,但是在实际生产环境下,出了网关,会面临着很多路由器,有很多条道路可以选。 3、如何配置路由? 路由表的设计 1.路由器就是一…

技术分享 | Selenium多浏览器处理

实战演示 Python 版本 #导入依赖 import os from selenium import webdriverdef test_browser():#使用os模块的getenv方法来获取声明环境变量browserbrowser os.getenv("browser").lower()#判断browser的值if browser "headless":driver webdriver.Ph…