软件测试面试干货

测试开发面试干货

收集了各大公司的面试经验,现整理出来,但愿能给正在找工做的志同道合的小伙伴一些指引,本文会持续更新的哦。面试

一、  CPU 和 GPU的区别

一个是通用计算,一个是专用计算。 
 CPU主要负责操做系统和应用程序,GPU主要负责跟显示相关的数据处理,GPU的活CPU通常均可以干,可是效率低下。CPU和GPU之因此大不相同,是因为其设计目标的不一样,它们分别针对了两种不一样的应用场景。CPU须要很强的通用性来处理各类不一样的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不须要被打断的纯净的计算环境。算法

二、  推荐的算法有哪些

推荐应该说分为两类:个性化推荐和非个性化推荐,“让全局优秀的内容被你们看到”应该算是非个性化推荐,热门榜单/最多观看这类方法能够简单解决这个问题;不一样的人对于“好”的理解不同,换句话说也就是偏好不一样,因此推荐新加入的好内容我认为是个性化推荐问题。
个性化推荐的两个主要思想八个字归纳之:物以类聚、人以群分。主要的方法及变种应该有不少,像协同过滤、基于内容的推荐、基于标签的推荐等等。chrome

三、  协同过滤是怎么实现的

http://blog.csdn.net/czp11210/article/details/51161541数据库

四、  熟悉的Linux命令,查看磁盘空间的命令,如何找到一个文件中含有aaa 和 bbb和行

查看磁盘空间命令:df –lh编程

grep -rn "aaa"&& "bbb" *浏览器

* : 表示当前目录全部文件,也能够是某个文件名缓存

-r 是递归查找安全

-n 是显示行号服务器

-R 查找全部文件包含子目录微信

-i 忽略大小写

五、白盒和黑盒测试的方法有哪些

白盒测试:语句覆盖、条件覆盖、断定覆盖、断定条件覆盖、条件组合覆盖

黑盒测试:等价划分法、边界值法、因果图法、猜错法、随机数法

六、如何测试一个三角形是不是一个等腰三角形,写出测试用例

五、  三角形测试用例类别

输入条件

有效等价类

无效等价类

是不是三角形

(A>0)   (1)

(B>0)   (2)

(C>0)   (3)

(A+B>C)   (4)

(B+C>A)   (5)

(C+A>B)   (6)

(A<=0)   (7)

(B<=0)   (8)

(C<=0)   (9)

(A+B<=C)   (10)

(B+C<=A)   (11)

(C+A<=B)   (12)

是不是等腰三角形

(A=B)   (13)    

(B=C)   (14)

(C=A)   (15)

(A!=B)and(B!=C)and(C!=A)      (16)

是不是等腰直角三角形

(A=B)and(A2+B2=C2)   (17)

(B=C)and(B2+C2=A2)   (18)  

(C=A)and(C2+A2=B2)    (19)

(A!=B)and(B!=C)and(C!=A)     (20)

是不是等边三角形

(A=B)and(B=C)and(C=A)     (21)

(A!=B)      (22)

(B!=C)     (23)

(C!=A)     (24)

 

三角形测试用例:用最少的测试用例覆盖全部的有效等价类,而无效等价类每一个类型都要覆盖到

 

序号

输入[A,B,C]

覆盖等价类

输出

1

[3,4,5]

(1)(2)(3)(4)(5)(6)

是三角形

2

[0,1,2]

(7)

非三角形

3

[1,0,2]

(8)

非三角形

4

[1,2,0]

(9)

非三角形

5

[1,2,3]

(10)

非三角形

6

[1,3,2]

(11)

非三角形

7

[3,1,2]

(12)

非三角形

8

[3,3,4]

(1)(2)(3)(4)(5)(6)(13)

等腰三角形

9

[3,4,4]

(1)(2)(3)(4)(5)(6)(14)

等腰三角形

10

[3,4,3]

(1)(2)(3)(4)(5)(6)(15)

等腰三角形

11

[2√2,2√2,4]

(1)(2)(3)(4)(5)(6)(17)

等腰直角三角形

12

[4,2√2,2√2]

(1)(2)(3)(4)(5)(6)(18)

等腰直角三角形

13

[2√2,4,2√2]

(1)(2)(3)(4)(5)(6)(19)

等腰直角三角形

14

[3,4,5]

(1)(2)(3)(4)(5)(6)(16)(20)(22)(23)(24)

是三角形

15

[3,3,3]

(1)(2)(3)(4)(5)(6)(16)(21)

等边三角形

16

[,,,]

无效等价类

错误提示

17

[-3,4,5]

无效等价类

错误提示

18

[a,3,@]

无效等价类

错误提示

19

[3,4]

无效等价类

错误提示

 

七、排序的算法以及时间复杂度

 

 

八、对一个自动贩卖机进行功能测试

按照功能测试的划分等价类来测试

有效的等价类有:

    金额刚够,顺利出货

        金额超出,找零出货

        金额超出, 没钱找零,出货.

        金额不足,进行提示,把货币退出

        金额足够,取消交易

        假币,不出

无效等价类:

         投入金额,不出货,不找零

         投入金额,不出货,退钱

         金额超出,出货,不找零

         金额超出,不出货,找零

         金额不足,出货,找零l

         金额不足,出货,不找零

         金额不足,不出货,不退款

         金额刚够,不出货,退款

         金额刚够,出货,找零

         金额刚够,不出货,找零

         不投金额,直接出货

九、为何选择软件测试这个岗位

如今的软件行业突飞猛进,发展的如日中天,同行之间的竞争更是此起彼伏,稍有不慎就会面临破产,其中产品的质量更是重中之重,出现一点点小问题就会致使用户量骤减,因为我国的互联网行业起步较晚,在质量把控这方面没有国外作到到位,但我相信,软件测试行业将会有很大的发展前景,我也能在这个领域一展个人抱负。

十、应聘软件测试的优点与劣势

优点:

一、  我有足够的责任心

二、  有很好的学习能力

三、  适应新事物新环境很迅速

四、  有计算机相关理论基础

劣势:

一、  缺乏社会经验

二、  编程能力较弱

十一、有50个红球,50个蓝球,如何放入两个盒子中使得拿到红球的几率最大

无论你怎么放,几率都是二分之一。

譬如,红的全放一个箱子,那么只要你从俩个箱子中选择这个箱子,就必定是红球,为二分之一。

二,若是一个箱子放一半红球一半篮球,那么你随便抽一个箱子,都是二分之一的几率抽到红球。

三,任意状况,如,箱子一有30个红球,那么红球的几率,为1/2*30/50+1/2*20/50,仍是二分之一

十二、有5个强盗分100枚金币,从1号开始进行分配,必须有半数服从分配才经过,不然不然1被毙掉,由2号开始分,问1号要怎样分才能使本身利益最大化

采用反推过来的算法:

5号表决时,造成的状态是:

1获得0个宝石,死

2获得0个宝石,死

3获得0个宝石,死

4获得0个宝石,死

5获得100个宝石,活,赞成

缘由:

不用讲了,能轮到5号表决固然他独吞了

可是也会与题目违背了,由于前面几个海盗都是傻瓜差很少

4号表决时,造成的状态是:

1获得0个宝石,死

2获得0个宝石,死

3获得0个宝石,死

4获得100个宝石,活,赞成

5获得0个宝石,活,不一样意

缘由:

这时只剩下二比一的状况,只要本身赞成便可达到半数而经过表决,不存在生命危险

可是3号也不是白痴

3号表决时,造成的状态是:

1获得0个宝石,死

2获得0个宝石,死

3获得99个宝石,活,赞成

4获得0个宝石,活,不一样意

5获得1个宝石,活,赞成

轮到3号时,他只要给5号1个宝石就够了

缘由:

由于5号会意识到,一旦轮到4号时他就一个也得不到,如今能获得1个宝石已是给了面子了

但2号也很聪明的,可否轮到他只是一种期待,来看看2号的状况

2号表决时,造成的状态是:

1获得0个宝石,死

2获得99个宝石,活,赞成

3获得0个宝石,活,不一样意

4获得1个宝石,活,赞成

5获得0个宝石,活,不一样意

要是轮到此海盗他必会拿走99颗宝石,而后给4号1颗便可!

为何? 缘由是:

4号已经意识到,要是轮到3号表决时,他将一个也得不到,因此这时有点收获,当然赞成了

这时也考虑到:

3号不可巴结,会损失太多,由于若是只是单单给3号的话,他随时均可以不一样意而得到表决权

5号也可巴结,但须要2颗宝石,不合算,由于5号也知道即便下一轮也是拿定一颗宝石的

1号:此海盗固然也聪明了

从上述看出,既然轮到2号的局势已定,那他早已知道后面的海盗内心想什么了

也就是简单的说,他们清楚认识到,轮到2号时,3号和5号得不到宝石!

那么这样的话,事情就好办多了,给他们一人一颗天然就搞定了!

因此,1海海盗毅然做出决定,分别给3号和5号各1颗宝石

最终结局的状态是:

1获得98个宝石,活,赞成

2获得 0个宝石,活,不一样意

3获得 1个宝石,活,赞成

4获得 0个宝石,活,不一样意

5获得 1个宝石,活,赞成

即:98,0,1,0,1 (达到1号利益最大化)

1三、若是没网,多是什么缘由形成的

1、使用的是有线网线

一、路由器数据堵塞,通常重启路由能够解决;若是重启仍不能解决,多是运营商的问题了,及时电话咨询;

二、自身电脑问题,链接有线网的状况,这种状况不多见;

2、链接的是无线网

一、路由器问题,重启路由试试;也不排除线路问题;

二、无线接收器问题,看灯闪烁是否正常,能够尝试拔队,从新插上;

三、也能够尝试把无线禁用,而后从新开无线网络;

四、从新安装无线网驱动试试;

1四、怎样测一张A4纸

1.纸张的质地,是否为纸张

2.纸张的品质,是草木、皮革。。。

3.纸张的类别,是否为白纸

4.纸张的功能,可否书写,图画等

5.纸张的兼容性,水笔、油笔、铅笔是都都能正常书写

6.纸张的扩展性,折叠、拉伸

7.纸张的安全性,纸张的生产工艺是否安全,纸张有无有毒性物质

8.纸张的结构

9.纸张的性能:对各类笔的吸油性是否够快

1五、数据库知识:姓名,班级、课程名、分数

一、求语文分数最高的学生

Select 姓名,max(分数)from 表名where 课程名=“语文”

2.求每一个班语文成绩最高的学生

1六、三次握手,每次发送的内容都是什么

第一次握手:创建链接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时本身也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP链接成功)状态,完成三次握手。

补充:

完成三次握手,客户端与服务器开始传送数据,在上述过程当中,还有一些重要的概念:

未链接队列

在三次握手协议中,服务器维护一个未链接队列,该队列为每一个客户端的SYN包(syn=j)开设一个条目,该条目代表服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的链接在服务器处于SYN_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。

1七、关闭TCP链接:改进的三次握手

对于一个已经创建的链接,TCP使用改进的三次握手来释放链接(使用一个带有FIN附加标记的报文段)。TCP关闭链接的步骤以下:

第一步,当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段(FIN表示英文finish)。

第二步,主机B收到这个FIN报文段以后,并不当即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知本身相应的应用程序:对方要求关闭链接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段)。

第三步,主机B的应用程序告诉TCP:我要完全的关闭链接,TCP向主机A送一个FIN报文段。

第四步,主机A收到这个FIN报文段后,向主机B发送一个ACK表示链接完全释放。

1八、为何要采用三次握手,两次不行吗?

保活计时器:

为了防止已失效的链接请求报文段忽然又传送到了服务端,于是产生错误。

设想有这样的状况:客户端已主动与服务器创建了TCP链接,但后来客户端的主机忽然出现故障。

一般设为2小时。若2小时没有收到客户端的数据,服务器就发送一个探测报文段,之后则每隔75分钟发送一次。若一连发送10个探测报文段后仍无客户端的响应,服务器就认为客户端出现了故障,接着就关闭这个链接。

 

1九、为何链接的时候是三次握手,关闭的时候倒是四次握手?

答:由于当Server端收到Client端的SYN链接请求报文后,能够直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。可是关闭链接时,当Server端收到FIN报文时,极可能并不会当即关闭SOCKET,因此只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端全部的报文都发送完了,我才能发送FIN报文,所以不能一块儿发送。故须要四步握手。

 

20、为何TIME_WAIT状态须要通过2MSL(最大报文段生存时间)才能返回到CLOSE状态?

答:虽然按道理,四个报文都发送完毕,咱们能够直接进入CLOSE状态了,可是咱们必须假象网络是不可靠的,有能够最后一个ACK丢失。因此TIME_WAIT状态就是用来重发可能丢失的ACK报文。

2一、微信发送消息功能的测试

一、功能测试

图片、文字(大段文字)、小视频、语音)是否发送顺利,数据有没有丢失、有没有延迟,一我的发了100遍一样的数据可否发送成功,群发功能

二、性能测试

并发度,响应时间,系统资源占用、压力测试、兼容性测试(硬件兼容和软件兼容)、还有就是考虑多端登陆消息的同步

2二、main函数执行以前都发生了什么

2三、fidler抓包原理

Fiddler是一款很是流行而且实用的http抓包工具,它的原理是在本机开启了一个http的代理服务器,而后它会转发全部的http请求和响应,所以,它比通常的firebug或者是chrome自带的抓包工具要好用的多。不只如此,它还能够支持请求重放等一些高级功能。显然它是能够支持对手机应用进行http抓包的。

2四、设计测试用例有哪些方法

    黑盒测试:等价划分法、边界值断定、因果图、错误猜想

    白盒测试:语句覆盖、条件覆盖、断定覆盖、条件/断定覆盖、条件组合覆盖

2五、Vim怎么删除行

dd            删除一整行

D d$         删除光标位置到本行结尾

d0            删除光标位置到本行开头

2六、Linux怎么查看大文件,怎么实时查看文件

[root@getlnx01 u03]# find . -type f -size +800M  -print0 | xargs -0 ls –l

2七、性能测试有哪些

    负载测试、压力测试、疲劳性测试、容量测试

2八、TCP的拥塞控制

2九、http中的get和post请求的区别

一、GET请求,请求的数据会附加在URL以后,以?分割URL和传输数据,多个参数用&链接。URL的编码格式采用的是ASCII编码,而不是uniclde,便是说全部的非ASCII字符都要编码以后再传输。

POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面item=bandsaw就是实际的传输数据。所以,GET请求的数据会暴露在地址栏中,而POST请求则不会。

二、传输数据的大小

在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。可是在实际开发过程当中,对于GET,特定的浏览器和服务器对URL的长度有限制。所以,在使用GET请求时,传输数据会受到URL长度的限制。

对于POST,因为不是URL传值,理论上是不会受限制的,可是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。

三、安全性

POST的安全性比GET的高。这里的安全是指真正的安全,而不一样于上面GET提到的安全方法中的安全,上面提到的安全仅仅是不修改服务器的数据。好比,在进行登陆操做,经过GET请求,用户名和密码都会暴露再URL上,由于登陆页面有可能被浏览器缓存以及其余人查看浏览器的历史记录的缘由,此时的用户名和密码就很容易被他人拿到了。除此以外,GET请求提交的数据还可能会形成Cross-site request frogery攻击

30、怎么确认post请求发送完毕

3一、专利是第一做者么

不必定

3二、loadrunner用来干了什么

作性能测试用的。测试软件的性能、压力、负载状况、服务器的响应时间,吞吐量、监控服务器、数据库的性能指标。等等。总之很强大。

相关文章
相关标签/搜索