本篇旨在记录此次跳槽面试过程中的面试题,以及自己准备的一些题目

计算机基础

1、虚拟内存:进程被创建时,会被分配一个虚拟内存,在进程未开始运行时,这只是一个内存布局。当进程开始运行,就会把虚拟内存对应的数据和代码块拷贝到物理内存中。如果物理内存上没有对应的页表,会发生缺页异常。
程序访问的地址都是虚拟内存地址,通过页表才能找到真正的物理内存地址。

2、TCP/IP五层模型(从下往上):
1)物理层:保证原始数据可在各种物理媒体上传输,主要应用:集线器
2)数据链路层:传输单位为帧,主要应用:交换机
3)网络层:传输单位为数据报,主要应用:路由器,保证端到端系统之间通信正常,路径选择、路由及逻辑寻址。主要协议:IP协议、ICMP协议(ping命令即为该协议)、ARP协议(IP地址转为MAC地址)、RARP协议(MAC地址转为IP地址)
4)传输层:主要应用:网关,保证端口到端口之间的可靠/不可靠的传输,主要协议:TCP\UDP
5)应用层:传输单位为报文,主要协议:HTTP\FTP等

3、IP地址:
A类地址:第一个字节为网络号,地址范围为0-127
B类地址:前两个字节为网络号,地址范围为128-191
C类地址:前三个字节为网络号,地址范围为192-223
4、子网掩码:1表示网络位,0表示主机位

5、http和https的区别
1>http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
2>http端口是80,https端口是443,http连接是无状态连接(每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。而cookie和session可以保持http连接状态),HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全

6、cookie和session的区别:
1>cookie存储在浏览器上,session存储在服务器上,更安全
2>cookie可在浏览器明文查看,session通过服务器加密是一串无序字符串
cookie有两种:
一种存在于浏览器的进程中,一种存在于硬盘上。每个session有一个唯一的sessionid,这个id存放在浏览器进程中的cookie中。当关闭浏览器后cookie消失了,sessionid也消失了,那服务器端的session也消失了。但实际服务器不知道浏览器是否关闭,因此服务器会设置一个session失效时间,到时间后将对应的session删除。
每次浏览器被关闭后再次打开访问同一个请求,都是不同的session。
当勾选自动登录,其实是将sessionid存放在了硬盘cookie中,这样下次可以免登录

7、tcp和udp区别
1、udp是不可靠、无连接,tcp是可靠,有连接,三次握手,四次挥手。udp比tcp传播速度更快
2、udp可以一对多或者多对多连接,tcp是一对一连接
3、TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证(tcp支持重传,而且也有序列号保证数据顺序)

8、进程与线程区别:
1>进程是资源分配的最小单位,计算机把资源分配给进程,同个进程下的线程间共享资源
2>一个进程可以包含多个线程,一个线程只能在一个进程中
3>一个进程内即使有很多线程,也只运行在一个cpu内,多核cpu上可以运行多个进程,提高速度
4>进程的切换开销比线程的大很多,因为每个进程有自己的虚拟地址空间,同个进程下的线程则是共享该进程的虚拟地址空间。进程切换需要切换虚拟地址,虚拟地址映射为物理地址通过页表实现,进程切换页表也切换,导致缓存失效,映射物理地址速率就变慢,而线程不需要切换地址空间
5>线程间的通信方式有4种:wait/notify(等待唤醒)、volatile、CountDownLatch、CyclicBarrier

9、tcp怎么保证可靠性传输:
1、校验和:保持首部和数据的校验和
2、序列号:使用序列号保证数据传输的顺序性
3、支持重传
4、停止等待协议:每发完一个分组就停止等待对端确认

10、ping命令不通的原因:
1、本机或目的机子未联网,报time_out超时
2、网络很差超时
3、对端有防火墙阻止Ping

11、get和post区别:
1、get一般用于从服务器获取数据,post用于向服务器提交数据
2、get表单提交参数直接明文显示在url中,post提交的数据在body中,因此post比get更安全

12、http状态码:
1xx:信息性状态码
2xx:成功状态码
3xx:重定向
4xx:客户端错误状态码
5xx:服务器错误状态码
13、重定向:在 HTTP 协议中,重定向操作由服务器通过发送特殊的响应(即 redirects)而触发。HTTP 协议的重定向响应的状态码为 3xx 。浏览器在接收到重定向响应的时候,会采用该响应提供的新的 URL ,并立即进行加载,大多数情况下,除了会有一小部分性能损失之外,重定向操作对于用户来说是不可见的。

14、TCP的重传机制:
1、超时重传:TCP协议要求在发送端每发送一个报文段,就启动一个定时器并等待确认信息;接收端成功接收新数据后返回确认信息。若在定时器超时前数据未能被确认,TCP就认为报文段中的数据已丢失或损坏,需要对报文段中的数据重新组织和重传。这种方式会增加端到端的时延
2、快速重传:报文段1成功接收并被确认ACK 2,接收端的期待序号为2,当报文段2丢失,报文段3失序到来,与接收端的期望不匹配,接收端重复发送冗余ACK 2。这样,如果在超时重传定时器溢出之前,接收到连续的三个重复冗余ACK(其实是收到4个同样的ACK,第一个是正常的,后三个才是冗余的),发送端便知晓哪个报文段在传输过程中丢失了,于是重发该报文段,不需要等待超时重传定时器溢出,大大提高了效率。这便是快速重传机制。

python

1、python迭代器和生成器区别:
1)、迭代器是一种访问集合元素的方式,只能往前访问不能后退,迭代器可以记住遍历的位置
使用iter(obj)可生成一个迭代器对象,使用next(迭代器对象)可遍历迭代器中的元素,也可以for语句遍历。字符串,列表或元组对象都可用于创建迭代器。注:每次调用next()方法只会输出一个值
2)、使用了yield关键字的函数为生成器函数,调用生成器函数返回的是迭代器对象

2、python是动态语言,动态语言和静态语言区别:
1)、动态语言无需申明变量类型,运行时才确定数据类型的语言,如python,js等
2)、静态语言需要先申明变量类型,如java\c\c++

3、python装饰器:当一个方法有装饰器修饰时,首先会将该方法当作参数传入装饰器函数中执行,再执行该方法。

4、python2和python3的区别:
1)、python2的字符串编码有两类(unicode【字符串】和str【字节】),unicode在python3中改为str,python2的str在python3中改为byte
2)、python2可以使用print ‘hi’打印,python3必须使用小括号包含:print('hi')
3)、Python2中使用ascii编码,Python3中使用uft-8编码
4)、python3新增了set集合

5、 python可变与不可变类型区别:可变表示值变,但是指向的内存地址不变;不可变表示值变,指向的内存地址也变
tuple 整型 字符串都为不可变类型
list dict set都为可变类型
tuple中嵌套list或者dict,dict和list的值都可变,但是tuple的值不可变。

6、浅拷贝与深拷贝与赋值:
赋值表示指向同一个地址,任何一个变都会变。
浅拷贝:嵌套内的原值改变,新值也变。原值改变,新值不变
深拷贝:嵌套内的原值改变,新值不变。原值改变,新值不变

7、python垃圾回收机制,python进程与线程

8、python的列表和元组的区别

9、main文件:

if __name__=='main'的代码文件直接被运行时才会执行该段代码,而import到其他脚本文件中是不会被执行的。且直接执行main所在的文件,__name__为__main__,如以导入模块的形式执行,则__name__为main所在的文件名。

10、python变量的查找顺序为:局部变量,外部嵌套作用域,全局变量,内置模块作用域

11、python反转字符串
1)切片: str【: : -1】
2)list=list(str)  list. reverse() ' '. join(list)

数据库

1、嵌套查询需关注:1>最外层的为最终的结果,再根据条件一层一层嵌套  2>嵌套查询每次只查找一个表
2、内连接、左外连接、右外连接:1>写法:from table_a inner/left/right join table_b on 关联两个表的条件。
三个连接区别:内连接只显示两表中有关联(符合条件)的数据;左连接显示左表所有数据,右表没有对应的数据用NULL补齐,右表多余的数据删除;右连接显示右表所有数据,左表没有对应的数据用NULL补齐,左表多余的数据删除
3、group by的分组字段要与select的字段一致,除去使用聚合函数的字段
4、group by后可以跟having对分组后的数据再进行筛查
5、delete table where xxx,update table set xxx
6、模糊查询用like,不匹配用is not
7、sum和count区别:sum用于统计值的总和,count用于统计行数即记录数

4、索引(用户不可见,主键默认为索引):
1)、创建索引:create index 索引名称 on table_name(column_name)
2)、根据索引查询:select * from tabel_name where column_name='xxx'
为某一列创建索引,搜索该列的值的时候可以提高查询速度,但是索引太多将会影响更新和插入的速度,因为它同样需要更新每个索引文件。

5、主键,外键和索引
主键的值唯一,不能为空,一个表只能有一个主键。
外键的值可以不唯一,可以为空,一个表可以有多个外键,一个表的外键通常是另一个表的主键。
索引的值不能唯一,可以为空,一个表可以有多个索引

6、TOP 子句用于规定要返回的记录的数目

7、需要现场写sql语句,多为连表查询

Linux

1、vim下的指令参数:
nx:连续向后删除n个字符
dd:删除游标所在的那一行
ndd:删除光标所在的向下n行
yy:复制光标所在的那一行
nyy:复制光标所在的向下n行

2、linux查看进程命令:
1)ps -ef | grep  查找需要的进程
2)top 列出各个进程的资源占用情况
3)Linux找到被占用的端口号进程并结束:
netstat -tunl|grep 端口号  找到进程号后kill -9 进程号(-9强制删除)

3、查找文件:find -name

4、在文件中查找:grep 关键字

Selenium

定位元素方法有id,name,class_name,tag_name,linktext,xpath,css
1、driver.quit()关闭浏览器,driver.close()仅关闭当前页面
2、等待分为强制等待(必须等待多久),显示等待(直到某个元素出现才操作,除非超时)和隐式等待(为浏览器对象创建一个等待时间,得不到某个元素就等待,直至拿到)
3、isDisplayed()方法可以判断某个元素是否显示
4、driver.switchTo().alert()切换到web弹窗
5、driver.window_handles()可查看当前所有句柄,driver.switch_to.window(index)切换句柄

音视频相关

流媒体协议:
1、用于直播的协议——RTMP,建立在tcp上。即为常说的CDN拉流
2、用户实时视频通话的协议——RTP/RTCP,建立在udp上,即为常说的RTC拉流
3、zego自研的流媒体协议——AVERTP,基于RTP进行封装,抗丢包性强

混流:即为几路音视频流通过云服务器混成一路流,远端只需要拉一路流即可展示 (也可以拉几路流)。本地录制和云录制都为混流,本地录制混流是指将屏幕共享的流和屏幕中的推拉流进行混流(主要是因为本地录制如果不勾选共享音频就会没有声音),因此不需要布局设置;而云录制的布局设置是由服务器端设置

其他

1、给定一个测试场景,说出测试点,除去功能测试外,还应包括性能、兼容、异常场景以及安全性考虑。尽量想的完善些

2、编程题:二分查找、有效括号、回文串、最长回文串、给定字符串,输出各个字符出现的次数/输出出现次数最多的字符/按字符出现次数排序(这些为面试时碰到的)

测试工程师面试题整理相关推荐

  1. 渗透测试工程师面试题大全(三)

    渗透测试工程师面试题大全(三) from:backlion大佬 整理 101.什么是 WebShell? WebShell 就是以 asp.php.jsp 或者 cgi 等网页文件形式存在的─种命令执 ...

  2. 东方航空测试工程师面试题

    东方航空测试工程师面试题 时间:40分钟 姓名: 应征岗位: 一.判断题(每题2分共10分) 1.软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以 软件测试在软件工程的后期才开 ...

  3. Java工程师笔试题整理[校招篇]

    Java工程师笔试题整理[校招篇] 阿里巴巴 2016 阿里巴巴2016研发工程师笔试题(四) 阿里巴巴2016研发工程师笔试题(三) 阿里巴巴2016研发工程师笔试题(二) 2015 阿里巴巴201 ...

  4. 美团点评2020年测试工程师笔试题

    VOL 155 04 2020-09 今天距2021年118天 这是ITester软件测试小栈第155次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

  5. 搜狗2020年测试工程师笔试题

    VOL 151 21 2020-08 今天距2021年132天 这是ITester软件测试小栈第151次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

  6. 牛客网软通动力软件测试机试_软通动力测试工程师笔试题

    此面试题转自网络,本人只做学习参考,无其他用意,证明软件错误不存在 B)证明软件错误的存在 C)改正程序所有的错误 D)发现程序所有的错误 2.对于软件质量描述不正确的是:( ) A)高质量的过程产生 ...

  7. 中科软测试面试题2019_中科软测试工程师面试题

    中科软测试工程师面试题 软件测试 笔试题 1.谈谈你对测试的理解 我对测试第一概念就是给产品找毛病...,第一:作为一个测试人员就是更可能的使产品没有缺陷,完全符合客户需求 第二就是协调开发人员尽可能 ...

  8. 电气工程专业转行做软件测试,电气测试工程师面试题有哪些?

    电气测试工程师需要对电力电路知识非常熟练得掌握,才能在工作中有条不紊得进行测试,下面随360建筑网小编一起来看看电气测试工程师面试题有哪些吧. 什么叫力率,力率的进相和迟相是怎么回事? 交流电机制功率 ...

  9. 金九银十面试怒拿6个offer——测试开发面试题整理

    金九银十面试怒拿6个offer--测试开发面试题整理 1.软件测试的流程是什么? 2.测试用例主要有哪些元素? 3.软件测试有什么策略和阶段? 4.黑盒测试和白盒测试是什么?二者有什么区别? 5.软件 ...

  10. 测试工程师面试题合集系列[4]

    测试工程师面试题合集又来更新啦~ 一面 请分别介绍最近主要负责的两个项目. 接口测试,你会关注哪些点,怎么开展接口测试工作? 请写一下接口自动化的参数化实现,写完做个简单讲解 get 和post 请求 ...

最新文章

  1. 清华博士的逆袭之路:从收到延毕警告到顶刊发文,我蛰伏了4年
  2. NIOS II spi详解
  3. PHP判断是否为手机客户端
  4. java se 7web_JAX-WS ::从独立的Java 7 SE客户端调用Web服务的方法
  5. 无法定位程序输入点 _ZdaPvj 于动态链接库 libstdc++-6.dll
  6. 多线程和单线程 打印数字到100000 的速度对比
  7. kubernetes之三:service
  8. 返回封装结果集Result
  9. 【好书试读】Docker全攻略
  10. Java set重写排序
  11. 爬虫千万条,守法第一条,爬虫不规范,亲人两行泪
  12. 【从嵌入式视角学习香山处理器】一、如何开始?(开发环境搭建)
  13. GCC、GNU到底啥意思?
  14. 【数据结构】树与树的表示、二叉树存储结构及其遍历、二叉搜索树、平衡二叉树、堆、哈夫曼树与哈夫曼编码、集合及其运算
  15. String转int数组
  16. iPhone信号太差?学会这三招,信号差也能瞬间满格!
  17. ubuntu安装最新的chrome浏览器
  18. PS制作黑暗墙面上的漂亮霓虹文字
  19. STM32F103校内赛-摇杆遥控器
  20. da2 Android版本固件,OPPOAce2官方系统刷机包(完整固件最新升级包ColorOS 7)

热门文章

  1. 混合线性模型(linear mixed models)
  2. linux怎么卸载home文件系统,Linux系统无法卸载文件系统该怎么办
  3. iOS 点击图片放大效果
  4. 微信小程序—轮播图+背景变化
  5. Linux系列之Linux安装及源配置(软件源)的介绍
  6. 如何绘制一幅优雅的列线图
  7. 购物直播APP系统+短视频系统开发方案
  8. python怎么用到微信,用Python完转微信
  9. 远程控制---实验九:IPC远程植入木马
  10. 基于C语言的菜鸟驿站管理系统