大厂测试工程师面试题总结-三面(附参考答案)


三面:
1、指针常量,常量指针。
指针常量:

    1,指针常量的本质是一个常量,并且使用指针来修饰它。

    2,通过对const定义,我们可以简单理解为这个指针是个常量,它不可以被修改。即它只能指向开始时我们给赋值的变量,不可以被修改从而再指向其他的变量。
    
3,指针常量一旦定义,他就不可以再指向其他的变量,但是它指向的是一个变量,所以我们可以修改它指向的变量的值。


常量指针:
1,常量指针本质是指针,常量修饰它,表示这个指针是一个指向常量的指针(变量)。 //这是度娘的官话,个人表示解释的很好。
2,如果我们定义了一个常量指针,那么它指向的对象是常量,这个对象不能通过我们的指针被修改。

2、const修饰函数形参时的作用,const与define的区别。
const常量修饰符
define宏定义/预处理

3、解释多态,虚函数怎样表示。
多态:允许不同类的对象对同一消息做出响应。即同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。这也意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。

多态的实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载。

方法重载(Overloading):一个类中有多个方法(函数),它们具有相同的名字,但方法传递的参数或参数的个数不同,返回类型可以相同。
方法重写(Override): 子类对父类的方法做一定的修改,返回值和形参都不能改变。又称方法覆盖。

4、函数指针的代码实现。
回调函数也就是函数指针,函数指针是指向函数的指针变量。

5、如何判断两幅图像是否相同。
图片大小,像素点比较,图像相似度算法

6、访问今日头条的一个链接,用到什么协议。
上网肯定离不开TCP/IP协议,访问网页应该是HTTP超文本传输协议。
涉及到上传下载还要用到FTP文件传输协议

7、tcp协议头常见字段。
就是1字节=8位, 1 Byte =8 bit

首先看一下tcp header 的内容,大概有这么几个字段

source port: 2字节,也就是16位,表明发送端的端口号

destination port:2字节,16位,标示接收端的端口号
tcp作为一个端到端的协议,只需要关注端口号,是不需要关注具体ip的,IP地址封装在ip层,这点也是我觉得tcp/ip协议栈的美妙之处,一层包含着一层,将整个网络抽象的非常好,以致应用层不需要太关心底层协议。

sequence no:表示tcp数据中第一个数据字节的编号

acknowledgment no: 表示对上次收到包的确认,和下次期待收到的包。

offset: 4bit,tcp头的的大小,单位是4字节。这个最小为5 ,就是不包含任何数据和tcp option的大小。


8、http协议常见状态码。
1xx(临时响应)
表示临时响应并需要请求者继续执行操作的状态码。
100(继续)
请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101(切换协议)
请求者已要求服务器切换协议,服务器已确认并准备切换。

2xx(成功)
表示成功处理了请求的状态码。
200(成功)
服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。如果是对您的 robots.txt 文件显示此状态码,则表示 Googlebot 已成功检索到该文件。
201(已创建)
请求成功并且服务器创建了新的资源。

3xx(重定向)要完成请求,需要进一步操作。通常,这些状态码用来重定向。Google 建议您在每次请求中使用重定向不要超过 5 次。您可以使用网站管理员工具查看一下 Googlebot 在抓取重定向网页时是否遇到问题。诊断下的网络抓取页列出了由于重定向错误导致 Googlebot 无法抓取的网址。 
300(多种选择)针对请求,服务器可执行多种操作。服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
301(永久移动)请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。您应使用此代码告诉 Googlebot 某个网页或网站已永久移动到新位置。

4xx(请求错误)
这些状态码表示请求可能出错,妨碍了服务器的处理。
400(错误请求)
服务器不理解请求的语法。
401(未授权)
请求要求身份验证。对于登录后请求的网页,服务器可能返回此响应。

5xx(服务器错误)
这些状态码表示服务器在处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。
500(服务器内部错误)
服务器遇到错误,无法完成请求。
501(尚未实施)
服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。

9、http 和https区别?
超文本传输协议HTTP协议
安全套接字层超文本传输协议HTTPS:为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

10、如何测试微信的点赞功能?
考虑一个测试对象的时候至少从以下六方面来考虑:
功能性
易用性
可靠性
性能
安全
兼容性

1、微信点赞功能测试用例? 
  
①点赞和取消点赞功能 
  
②点赞是否按时间顺序显示 
  
③点赞是否正确显示昵称或备注 
  
④点赞之后是否还能评论 
  
⑤弱网络的情况下点赞能否实时更新 
  
⑥点赞时有短信或电话进来,能否显示点赞情况 
  
⑦点赞的人是否在可见分组里 
  
⑧点赞之后共同好友的点赞和评论是否会提醒你


2、APP测试需要考虑的点都有哪些?


性能测试:CPU,内存,耗电量,耗流量,流畅度,APP的安装和卸载和启动的耗时 

适配兼容性:在不同的操作系统上的安装,拉起,点击,和卸载是否正常 

耗电量测试:当手机冲满格电的时候能玩多久,挂机10分钟耗多少电,APP每小时耗电多少 

中断测试: 
app在前台和后台运行状态时与来电,文件下载,音乐等关键运行的交互情况测试,测试电话,短信,微博或其他通知进来是APP的反应 
弱网络测试

11、接口测试的注意点


java
面向对象编程三大特性:封装、继承、多态。
1、封装:把对象的属性和操作(或服务)结合为一个独立的整体,使得对数据的访问只能通过接口。
2、继承:从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
3、多态:允许不同类的对象对同一消息做出响应。即同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。这也意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。

多态的实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载。

方法重载(Overloading):一个类中有多个方法(函数),它们具有相同的名字,但方法传递的参数或参数的个数不同,返回类型可以相同。
方法重写(Override): 子类对父类的方法做一定的修改,返回值和形参都不能改变。又称方法覆盖。

你可能感兴趣的:(java)