测开面经汇总

目录

测试

计算机网络

操作系统

JAVA

Linux

数据库

Python

智力题


(答案为网络搜索结果整理汇总,因涉及到的源众多故不一一标明出处)

测试

功能、性能、安全、兼容性、易用性

1、微信发送语音的测试用例

2、黑盒测试与白盒测试的区别及方法 

3、搜索功能测试

4、视频通话功能

5、百度首页的测试用例设计

6、测试点赞功能。(抖音点赞,微信点赞)

7、抖音出现白屏是怎么回事

8、微信发红包

9、用户登录测试

10、App崩溃的原因

        (1)软件本身代码错误

          (2)  当前用户过多,App崩溃

        (3)内存容量不足,或方位到未授权的内存位置

        (4)网络变化影响到App的稳定

         (3)第三方服务,广告或软件弹出导致App崩溃

前提不同:白盒是已知程序的内部实现结构,黑盒是不考虑内部实现结果

测试方式方法不同

黑盒:等价类划分法-将程序所有可能的输入数据划分为若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例

        边界值分析法-输入和输入等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。

        流程分析法(即场景分析)-每一条流程路径一条测试用例

        正交实验法-从因素及因素的取值采用正交来确定所有组合,从何覆盖所有情况。-适用于配置测试及多条件筛选

        状态迁移法-通过分析完成状态迁移图,根据状态迁移图完成状态转换树。按照一个分支一条用例编写。

        错误猜想法

白盒:

静态测试:不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文档测试等等,它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具(Fxcop)自动进行。

动态测试:需要执行代码,通过运行程序找到问题,包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等。

白盒测试中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

<1>如果我打不开一个网页,是什么原因?

<2>unittest 的 fixture , setup和teardown的作用?

App安全测试

       

计算机网络

测开面经汇总_第1张图片

过程:

  • 客户端发送FIN报文给服务器端,并进入到FIN-WAIT1阶段,该FIN报文包括首部字段控制位FIN=1,序列号seq=u,告诉服务器我已完成我的数据传输工作,你这边如果还有数据可以继续传送; 
  • 服务器收到该FIN报文之后进入close-wait阶段,并返回一个确认报文给客户端,该确认报文包括首部控制位ACK=1,seq=v,ack=u+1。客户端收到该确认报文后进入fin-wait2状态,关闭从客户端到服务器端的数据传送。服务器端仍可向客户端传送数据; 
  • 服务器端完成对客户端的数据传送工作之后,服务器端向客户端发送FIN报文,该报文结构包括FIN=1,ACK=1,序列号为w,确认号为u+1,并进入Last-ACK状态; 
  • 客户端接收到该FIN报文后,返回确认报文,该确认报文包括首部控制位ACK=1,序列号为u+1,确认号为w+1,并进入time-wait阶段,等待2MSL后确认服务器端收到ACK报文正常断开连接后,客户端关闭。服务器端收到该确认报文,进入closed状态。

1、tcp四次挥手中的TIME_WAIT状态存在的理由 

(1)允许老的重复分节在网络中消失(等待timewait断开的原因

TCP大致通过一个四元组来标记一条连接,分别是:源IP、目的IP、源端口、目的端口。假设在一次连接中,部分报文因为某种原因滞留在路由网络中,然后这次连接断开了,再然后客户复用了端口,开启了和当前服务器一次新的连接。此时可以看见,因为客户端复用了端口,而且客户端和服务器短期内IP都不会变,而且服务器通常只会又有一个端口监听。因此当前连接的四元组和上次连接一样。此时假如上一次连接中滞留的报文又恢复传播,那就会进入当前连接中,因为这些报文本不属于本次连接,这可能造成数据混乱。因此,客户端发送了最后的ACK后,本次连接不会再有新的报文产生了,我们只需要在TIME-WAIT阶段等待1 MSL时间,就能让网络上所有滞留报文失效。

(2)实现终止TCP全双工连接的可靠性 (为什么是2msl)

若客户端发送完ACK后直接断开closed,此时ACK在发送过程中丢失,此时服务器回重新发送FIN但客户端已关闭不合理。ACK最长传播时间和等待客户端到服务端滞留报文失效时间共为1 MSL。最坏情况下,ACK经历了1 MSL才到达服务端,假如在ACK到达前一瞬间,服务端重传了FIN并发生了滞留,需要等待1 MSL才可让其失效。因此,在最坏情况下,需要2 MSL才可让双向的滞留报文失效。1 MSL+1 MSL= 2 MSL

2、输入一个链接,到页面展示会发生什么      

  • 1、输入地址(www.baidu.com)
  • 2、域名解析(DNS)
  • 3、TCP连接(三次握手)
  • 4、客户端发起http请求
  • 5、服务器响应请求
  • 6、浏览器解析html
  • 浏览器解析URL对应的IP地址

DNS解析过程,浏览器缓存—>操作系统缓存—>本地DNS—>根据转发模式选择迭代还是递归查询 

  • 浏览器向服务器发送一个HTTP请求报文

传输层上建立TCP连接,网络层用到了IP协议(负责在网络层传输数据),还会用到RIP或者OSPF进行路由选择,然后用ARP协议解析IP地址对应的MAC地址,使得数据能够在数据链路层上进行传输(不应该是最后到物理层传输吗)。 

HTTP请求方法有哪些(post/get/head/put/delete) 

  • 服务器请求处理并返回一个HTTP响应报文

HTTP响应报文的结构,状态码 

  • 服务器返回一个HTML响应,浏览器收到HTML响应并渲染界面

3、DNS的工作原理

       第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器
  第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
  第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址
  第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
  第五步:重复第四步,直到找到正确的纪录。
  第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

4、 DNS劫持

DNS劫持是破坏域名系统(DNS)查询解析的做法。

(1)通过恶意软件覆盖计算机的TCP/IP配置以指向受攻击者控制的流氓DNS服务器

(2)通过修改受信任的DNS服务器的行为使其不符合互联网标准的实现

5、HTTP的请求报文的形式

6、GET和POST的区别

区别:
(1)传送方式:get通过地址栏传输,post通过报文传输。GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息
(2)传送长度:get参数有长度限制(受限于url长度),而post无限制
(3)GET和POST还有一个重大区别,简单的说:
GET产生一个TCP数据包;POST产生两个TCP数据包
长的说:
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

(4)GET请求只能进行url编码,而POST支持多种编码方式。

(5)GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

(6)对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

(7)get不能改变服务器的数据,一般用于从服务器获取数据,是幂等的;post可以改变服务器的数据,不是幂等的;

7、POST还支持的编码类型

application/x-www-form-urlencoded  

multipart/form-data

application/json

text/xml

8、端口的概念

在网络通信过程中,需要唯一识别通信两端的端点,就是使用端口识别运行于某主机中的应用程序如果没有引入端口,则只能通过 进程号进行识别。进程号是系统动态分配的,不同的系统会使用不同的进程标识符,应用程序在运行之前不知道自己的进程号,如果需要运行后再广播进程号则很难 保证通信的顺利进行。而引入端口后,就可以利用端口号识别应用程序,同时通过固定端口号来识别和使用公共服务,如HTTP和FTP等。顺便提供几个常用的保留端口:TCP常用保留端口:FTP(21),HTTP(80),SMTP(25),POP3(110);UDP常用保留端DNS(53),TFTP(69),SNMP(161)。

9、MYSQL的端口号

mysql的默认端口是3306,可以编辑用户目录下的.my.cnf文件进行修改,

10、HTTP请求方法

GET:获取服务器资源
POST:提交信息给服务器
PUT:传输文件 
HEAD:和GET方法一样,但是只返回响应头部,作用是确定URL的有效性和资源更新的时间
DELETE:删除指定的资源
OPTIONS:查询请求服务器指定的资源所支持的方法
TRACE:用来确认连接过程中发生的一些操作
CONNECT:建立连接渠道,用于代理服务器
PUT但是由于Http/1.1的PUT方法不带验证机制,存在安全性问题,所以一般的网站都不用这个方法来进行文件传输。

Delete该方法也不带认证机制,所以一般网站并不会对它进行开放使用。

11、HTTP状态码从1到5是什么意思

测开面经汇总_第2张图片

500(服务器内部错误)    服务器遇到错误,无法完成请求。
501(尚未实施)    服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。
502(错误网关)    服务器作为网关或代理,从上游服务器收到无效响应。

你可能感兴趣的:(测试开发,网络,tcp/ip,网络协议)