【猿小白】常见面试问题汇总~~~持续更新~~~直到拿到心仪的offer

眼看秋招已过大半,依旧没有拿到心仪的offer,但还是要坚持住最初的信念,必要的时候还是得喝点心灵鸡汤,不管上一场面试结果如何,还是得重整旗鼓,卯足了劲往前冲,所谓百面成钢,前提也得是总结分析失败的教训。下面的一些问题是一些我在面试的时候遇到的问题,会与不会的我都一并整理了下来,查缺补漏扫扫盲。
一、网络编程常见问题
1、OSI七层模型
2、TCP和UDP的区别
3、三次握手过程
4、Http 中get和post的区别
http定义了与服务器交互的不同方法,最基本的方法有4种,分别是get、post、put、delete。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的get、post、put、delete就是对应着这个资源的增、删、改、查4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而post一般用于更新资源信息。
Http在客户端和服务器之间以request-response protocol(请求-恢复协议)工作。
get是从指定的服务器中获取数据
post-提交数据给指定的服务器处理
get方法:
使用get方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器:
/test/demo_form.jsp?name1=value1&name2=value2
特点:
~get请求能够被缓存
~get请求会保存在浏览器的浏览记录中
~以get请求的URL能够保存为浏览器书签
~get请求有长度限制
~get请求主要用以获取数据
post方法:
使用post方法时,查询字符串在post信息中单独存在,和Http请求一起发送到服务器
POST /test/demo_form.jsp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
特点:
~post请求不能被缓存下来
~post请求不会保存在浏览器的记录中
~以post请求的URL无法保存为浏览器书签
~post请求没有长度限制

get:查询字符串会显示在地址栏的URL中,不安全,请不要使用GET请求提交敏感数据
post:因为数据不会显示在地址栏中,也不会缓存下来或保存在浏览记录中,所以看POST求情比GET请求安全,但也不是最安全的方式。如需要传送敏感数据,请使用加密方式传输

二、软件测试知识中常见面试问题
1、对测试的理解

2、对自动化测试的认识
一般指的是软件测试的自动化,软件测试就是在预先设定条件下运行系统或应用程序,评估运行结果,预先条件应包含正常条件和异常条件。
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试概念。
QTP是一种自动测试工具,使用QTP的目的使用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本,
3、回归测试是什么?回归测试和冒烟测试的区别?
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其它代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。
冒烟测试是自由测试的一种。冒烟测试(smoketest)在测试中发现问题,找到了一个bug,然后开发人员会来修复这个bug。这时想知道这次修复是否真正解决了程序的bug,或者是否会对其它模块造成影响,就需要针对此问题进行专门测试,这个过程就被称为冒烟测试。再很多情况下,做冒烟测试是开发人员在试图解决一个问题的时候,造成了其他功能模块一系列的连锁反应,原因可能只是集中考虑了一开始的那个问题,而忽略了其他的问题,这就可能引起新的bug,冒烟测试的优点是节省测试时间,防止build失败,缺点是覆盖率还是比较低。
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。
4、你认为怎样才能成为一个优秀的测试人员
5、你提交了一个bug,但是开发人员坚持认为你提交的这个不是bug,这个时候你应该怎么办
6、你用过什么bug管理工具

三、其他面试问题
1、用英语介绍一下你的学校
2、英文自我介绍
It’s really my honor to have this opportunity for an interview, I hope I can make a good performance today. Now, I will introduce myself briefly.
I am 25 years old, born in Shandong Province. Now studying at Nanjing University of Posts and Telecommunications. I spend most of time on study, I have passed CET-6.After reading and analyzing a large number of English literature, find out the innovation, in the international SCI successfully published two articles.
That’s all. Thanks for your attention.

3、为什么选择我们公司
4、给你一分钟的时间说服我给你这个offer
5、二叉树是什么?其特点是什么?什么是满二叉树?什么是平衡二叉树?
二叉树是每个节点最多有两个子树的树结构。
一棵深度为k,且有2^k-1个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树。
类型
(1)完全二叉树——若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。
(2)满二叉树——除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。
(3)平衡二叉树——平衡二叉树又被称为AVL树(区别于AVL算法),它是一棵二叉排序树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。[2]
相关术语
树的结点:包含一个数据元素及若干指向子树的分支;
孩子结点:结点的子树的根称为该结点的孩子;
双亲结点:B 结点是A 结点的孩子,则A结点是B 结点的双亲;
兄弟结点:同一双亲的孩子结点; 堂兄结点:同一层上结点;
祖先结点: 从根到该结点的所经分支上的所有结点子孙结点:以某结点为根的子树中任一结点都称为该结点的子孙
结点层:根结点的层定义为1;根的孩子为第二层结点,依此类推;
树的深度:树中最大的结点层
结点的度:结点子树的个数
树的度: 树中最大的结点度。
叶子结点:也叫终端结点,是度为 0 的结点;
分枝结点:度不为0的结点;
有序树:子树有序的树,如:家族树;
无序树:不考虑子树的顺序;
二叉树性质
(1) 在非空二叉树中,第i层的结点总数不超过 , i>=1;
(2) 深度为h的二叉树最多有 个结点(h>=1),最少有h个结点;
(3) 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;
(4) 具有n个结点的完全二叉树的深度为
(5)有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系:
若I为结点编号则 如果I>1,则其父结点的编号为I/2;
如果2*I<=N,则其左儿子(即左子树的根结点)的编号为2*I;若2*I>N,则无左儿子;
如果2*I+1<=N,则其右儿子的结点编号为2*I+1;若2*I+1>N,则无右儿子。
(6)给定N个节点,能构成h(N)种不同的二叉树。
h(N)为卡特兰数的第N项。h(n)=C(2*n,n)/(n+1)。
(7)设有i个枝点,I为所有枝点的道路长度总和,J为叶的道路长度总和J=I+2i
6、持续集成
持续集成(CI)是一种实践,可以让团队在持续的基础上收到反馈并进行改进,不必等到开发后期才寻找和修复缺陷。通俗一点说,就是指对于开发人员的每一次代码提交,都自动把Repository中所有的代码check out 到一个空目录,并且自动运行所有的test case,如果成功则接收这次提交,否则告诉所有人,这是一个失败的revision。
价值:减少风险、减小重复过程、任何时间任何地点生成可部署的软件、增强项目的可见性、建立团队对开发产品的信心

你可能感兴趣的:(猿小白刷题)