新鲜美团测试岗面经(带答案)

举报
兔老大 发表于 2022/09/25 00:12:24 2022/09/25
【摘要】 1、测试环境搭建过程 2、  验证环境部署是否成功时 跑测试用例 接口是什么样的?(服务对外提供的调用接口) 3、  数据库 表 有个字段 name字段 name=liuguoge 唯一标识id=3 修改name=guogeliu update user set name=guogeliu where id=3...

1、测试环境搭建过程

2、  验证环境部署是否成功时 跑测试用例 接口是什么样的?(服务对外提供的调用接口)

3、  数据库 表 有个字段 name字段 name=liuguoge 唯一标识id=3 修改name=guogeliu

update user set name=guogeliu where id=3;

4、写链表翻转(说思路,代码中每一行的作用)


  
  1. public ListNode ReverseList(ListNode head) {
  2.        //当前节点是head,pre为当前节点的前一节点,next为当前节点的下一节点
  3.         if(head==null)return null;
  4.         ListNode pre = null;
  5.         ListNode next = null;
  6.         while(head!=null){
  7.             //先用next保存head的下一个节点的信息
  8.             next = head.next;
  9.             //保存完next,就可以让head从指向next变成指向pre了
  10.             head.next = pre;
  11.             //让pre,head,next依次向后移动一个节点,继续下一次的指针反转
  12.             pre = head;
  13.             head = next;
  14.         }
  15.         //head为null,反转完毕,pre就是反转后链表的第一个节点
  16.         return pre;
  17.     }

5、 Scp和wget区别

curl是libcurl这个库支持的,wget是一个纯粹的命令行命令。

curl支持更多的协议。

curl 支持FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE,

Wget 支持HTTP, HTTPS and FTP.

curl 默认支持HTTP1.1(也支持1.0),而wget仅仅支持HTTP1.0规范。

4.curl在指定要下载的链接时能够支持URL的序列或集合,而wget则不能这样;

5.wget支持递归下载,而curl则没有这个功能。

7、  重载与重写区别

定义区别:

①重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。

②覆盖(也叫重写)是指在派生类中重新对基类中的虚函数重新实现。即函数名和参数都一样,只是函数的实现体不一样。

类的关系区别

覆盖是子类和父类之间的关系,垂直关系;重载是同一个类中方法之间的关系,水平关系。

3.产生方法区别

覆盖只能由一个方法或只能由一对方法产生关系;重载是多个方法之间的关系。

4.参数列表要求区别

覆盖要求参数列表相同;重载要求参数列表不同。

5.调用方法区别

覆盖关系中,调用方法体是根据对象的类型来决定;而重载关系是根据调用时的实参表与形参表来选择方法体的。

1、介绍实习经历

2、  测试环境的检查(接口测试)

3、  写代码:奇数在前,偶数在后


  
  1. private static void fun(int[] arr) {
  2.     if (arr.length == 0)return;
  3.     int front = 0,end = arr.length-1;//设置两个指针,一个指向头部,一个指向尾部
  4. while (front < end){
  5.        //从前往后找偶数
  6.         while (front < arr.length && arr[front]%2 == 1) front++;
  7.               //从后往前找奇数
  8.         while (end >= 0 && arr[end]%2 == 0)end--;
  9.         //将前面的偶数与后面奇数交换位置
  10. if (front < end){
  11.             int temp = arr[front];
  12.             arr[front] = arr[end];
  13.             arr[end] = temp;
  14.         }
  15.     }
  16. }

如何判断bug前后端?

前端的问题:

在用户输入数据后,发送的请求没有带数据或者数据错误。

后台已经传回了数据,但在前端显示不出来。

后端的问题:

       接受请求后,存储/修改错误(查看数据库)

       返回数据错误

抓包工具来进行分析

通过请求与响应来判断。

1.请求接口url是否正确

如果请求的接口url错误,为前端的bug

2.传参是否正确

如果传参不正确,为前端的bug

3请求接口url和传参都正确,查看响应是否正确

如果响应内容不正确,为后端bug

4,后端bug需要查看 服务器的log日志

  1. tcp和udp区别

  1. 如何抓包

3.一个真实的测试场景,问如何排查问题

4.黑盒测试和白盒测试和灰盒测试区别以及都有什么方法

黑盒:只关注输出的正确性

白盒:了解程序内部逻辑结构、对所有逻辑路径进行测试。

灰盒测试,介于二者之间的,关注输出的正确性,同时也关注内部表现。

方法:

黑盒:等价类划分、边值分析、因—果图、错误推测等

白盒:代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、路径覆盖

三次握手

第一次:发送请求

第二次:告诉对方受到了请求并同意

第三次:告诉对方收到了你的同意,可以开始了。

为什么连接的时候是三次握手,关闭的时候却是四次握手?

因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。

但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

tcp为什么能稳定传输

[1] 确认和重传机制

建立连接时三次握手同步双方的“序列号 + 确认号 + 窗口大小信息”,是确认重传的基础,

传输过程中,如果Checksum校验失败、丢包或延时,发送端重传。

[2] 数据排序

TCP有专门的序列号SN字段,可提供数据re-order

[3] 流量控制

窗口和计时器的使用。TCP窗口中会指明双方能够发送接收的最大数据量

[4] 拥塞控制

TCP的拥塞控制由4个核心算法组成。

“慢启动”“拥塞避免”“快速重传 ”“快速恢复”

HTTP状态码分别表示啥

信息响应(100–199)

成功响应(200–299)

重定向(300–399)

客户端错误(400–499)

服务器错误 (500–599)

 

文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。

原文链接:fantianzuo.blog.csdn.net/article/details/126702104

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。