面试准备

一、问题预测

让简单介绍下自己(每次面试开场)

让说下自己会的内容

看了哪些书籍(有问到)

了解过哪些技术博客/论坛(有问到)

是否了解软件测试需要掌握哪些知识(问到类似问题)

之前面试过,觉得自己需要补充哪些?做了哪些行动?

为什么做测试,觉得自己做测试有哪些优势?(有问到)

知道哪些Bug系统

9.测试用例的基本要素是?

二、介绍一下公司项目

三、技能方面

1、 数据库方面常识

2、 linux操作

3、缺陷方面(有问到)

4、用例部分

5、软件测试流程

6、网络相关

7、测试工具

8、其他概念问题

四、你还有什么想问的吗(必答)

五、简历模板

一、问题预测
让简单介绍下自己(这个不用说了每次面试开场)
你好,我叫xx,来自xx,毕业于xx。目前有两年的功能测试经验。最近的一份工作是xx公司,主要参与app系统测试,负责xxapp,一款类似抖音的短视频app功能测试,负责过的功能模块有拍摄、上传、搜索、推荐引擎等。主要运用边界值,等价类,错误推测等常见黑盒测试方法。

让说下自己会的内容
我熟悉软件测试基础理论和测试流程,测试方法等,有app测试、web测试、接口测试经验。熟悉数据库增删改查操作,熟悉使用测试管理工具。

看了哪些书籍(有问到)
软件测试,软件测试的艺术、软件测试实用教程,在我负责短视频的推荐引擎测试期间看完了项亮的《推荐系统实战》主要是推荐系统的评测部分。

了解过哪些技术博客/论坛(有问到)
51testing论坛,CSDN一些博客(面试经验:面试中会问具体哪些博客),和公众号(搜狗测试、软件测试资源分享)

是否了解软件测试需要掌握哪些知识(有问到类似问题)
软件测试基础知识,流程,测试用例方法,数据库相关知识,抓包分析,接口测试、测试工具、性能测试等。

之前面试过,觉得自己需要补充哪些?做了哪些行动?
很多公司对性能测试和自动化测试工具有要求,由于之前的工作主要涉及的是功能测试,所以这方面的知识储备不够。不过最近我在学习这方面的知识,希望以后在工作中能深入学习。

为什么做测试,觉得自己做测试有哪些优势?(有问到)
我觉得我个人的性格比较适合做测试。我比较细心耐心,考虑事情比较全面,这样对于我在设计测试用例时很有帮助,而且我能够很好的与人协调沟通,当我们测试和开发发生沟通上的矛盾时我也能很好的解决,我平常喜欢刷微博、知乎看热门评论,喜欢考究大众心理,这有助于我站在用户角度设计测试点。

知道哪些Bug系统
禅道/bugzila等

9.测试用例的基本要素是?

版本号,功能模块,优先级别,前置条件,步骤,预期结果,实际结果等。

二、介绍一下公司项目
xxapp,是一款集短视频、游戏、直播、社交互动于一体的内容娱乐APP。公司大约一个月发布一个较大的版本,需求数20几个-40几个不等(用例数xx+),每个版本包括的需求www\wap、后台以及客户端的需求。项目分客户端版本负责人、后台版本负责人、H5版本负责人等,负责人牵头及落实整个测试流程。我当过的角色有H5活动负责人、推荐引擎版本负责人、客户端和后台系统测试人员。负责过的模块用例数大概是500左右。

三、技能方面
1、数据库方面常识

l关系型数据库:把复杂的数据结构归结为简单的二元关系(即二维表格形式),通过SQL结构化查询语句存储数据

典型产品:

Mysql:互联网领域、大中小型网站,游戏公司,电商平台等等。体积小、速度快、成本低、开放源代码

Oracle:传统大企业、大公司、政府、金融、证券等。安全性、成本高、

l非关系型数据库:非关系型数据库也被成为NoSQL数据库,NOSQL的本意是“Not Olnly SQL”。NOSQL为了高性能、高并发而生

其他分类

1)键值(Key-Value)存储数据库:主要是使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。简单、易部署、高并发

典型:Redis、Memcached

2)列存储(Column-oriented)数据库:应对分布式存储的海量数据。如果我们有一个Person类,我们通常会一起查询他们的姓名和年龄,而不是薪资。这种情况下,姓名和年龄就会被放入一个列族中,而薪资则在另外一个列族中。

典型:Hbase

3)面向文档数据库:数据存储的最小单位是文档

典型:Mongodb、Hive

Mongodb一个介于关系型数据库和非关系型数据库之间的产品。高性能、易部署、易使用,存储数据非常方便。

Hive可以用来进行统计查询,HBase可以用来进行实时查询

一些增删改查笔试题准备

(另起一篇)

2、linux操作

linux搭建测试环境,比如web系统服务搭建。

一些常见命令准备

(另起一篇)

3、缺陷方面(有问到)

描述一个你印象最深刻的bug

在做上传视频的测试时,发现华为荣耀V10上传手机自带相机专业模式录制的视频会闪退。而ios上传同个视频提示合成失败。

我将手机自带相机录制的专业模式和普通模式录制的同样时长的视频发到电脑上,用格式工厂软件查看视频的不同之处,之后发现视频编码是不同的。

我继续网上查阅了视频编码方面的知识,发现mp4视频有几种编码,而继续测试验证发现我们的app上传的视频只支持mp4视频中的H.264编码格式。于是提交了视频上传不支持非H.264格式的视频。并补充完善了相关用例。

(因为在公司没有查日志权限,所以其实应该先查日志)

4、用例部分

现场让你设计个用例,比如水杯、凳子怎么测试?

首先说明的是,遇到这样的测试题目,首先应该反问面试官,需求是什么样的,比如是测什么样的杯子。

因为设计测试用例的规则应该是根据需求分析文档设计用例,客户需求什么,就测试什么。

但是在没有需求分析文档的前提下,来设计测试用例,可以考查一个测试人员的基本功,比如考虑问题是否全面,设计测试用例的方法是否合理等。

一般是根据自己的日常经验和测试的思维来设计测试用例。在设计测试用例时一般从以下几个方面进行分析:功能测试,性能测试,界面测试,安全性测试,兼容性测试,可用性测试,可靠性测试,本地化/国际化测试。

例子(另起一篇)

5、软件测试流程

公司严格规范测试流程和测试文档,首先是参与需求评审,编写测试计划、测试方案、测试用例,进行测试方案及用例的测试组内部评审,外部评审。

提取部分一级用例提交研发自测,研发自测通过后开开始执行一轮系统测试。

测试过程中发现并提交、跟踪问题。

问题修复后进行回归测试。

一轮测试完成后对修复包进行冒烟测试,测试通过则进行二轮测试。

二轮测试完成后会进行需求交叉测试。

完成测试编写系统测试报告提交验收测试。验收测试通过输出验收测试报告。

6、网络相关

网络协议,如TCP/UDP的区别?(https://www.cnblogs.com/steven520213/p/8005258.html)

1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付

3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的

UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

5、TCP首部开销20字节;UDP的首部开销小,只有8个字节

6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

三次握手与四次挥手

三次握手通俗版:

第一次握手:客户端要和服务端进行通信,首先要告知服务端一声,遂发出一个SYN=1的连接请求信号,”服务端哥哥,我想给你说说话”。

第二次握手:当服务端接收到客户端的连接请求,此时要给客户端一个确认信息,”我知道了(ACK),我这边已经准备好了,你现在能连吗(SYN)”。

第三次握手:当客户端收到了服务端的确认连接信息后,要礼貌的告知一下服务端,“好的,咱们开始联通吧(ACK)”。

到此整个建立连接的过程已经结束,接下来就是双方你一句我一句甚至同时交流传递信息的过程了。

四次挥手断开连接通俗版:

第一次挥手:双方交流的差不多了,此时客户端也已经结尾了,接下来要断开通信连接,所以告诉服务端“我说完了(FIN)”,此时自身形成等待结束连接的状态。

第二次挥手:服务端知道客户端已经没话说了,服务端此时还有两句话要给客户端说“我知道你说完了(ACK),我再说两句&*…%¥”…

第三次挥手:此时客户端洗耳恭听继续处于等待结束的状态,服务器端也说完了,自身此时处于等待关闭连接的状态,并对告诉客户端,“我说完了,咱们断了吧(FIN)”。

第四次挥手:客户端收知道服务端也说完了,也要告诉服务端一声(ACK),因为连接和断开要双方都按下关闭操作才能断开,客户端同时又为自己定义一个定时器,因为不知道刚才说的这句话能不能准确到达服务端(网络不稳定或者其他因素引起的网络原因)。

所以默认时间定为两个通信的最大时间之和,超出这个时间就默认服务器端已经接收到了自己的确认信息,此时客户端就关闭自身连接,服务器端一旦接收到客户端发来的确定通知就立刻关闭服务器端的连接。

到此为止双方整个通信过程就此终结。

这里要声明一下:断开链接不一定就是客户端,谁都可以先发起断开指令,另外客户端和服务端是没有固定标准的,谁先发起请求谁就是客户端。

三次握手阐述:

在第一次消息发送中,A随机选取一个序列号作为自己的初始序号发送给B;

第二次消息B使用ack对A的数据包进行确认,因为已经收到了序列号为x的数据包,准备接收序列号为x+1的包,所以ack=x+1,同时B告诉A自己的初始序列号,就是seq=y;

第三条消息A告诉B收到了B的确认消息并准备建立连接,A自己此条消息的序列号是x+1,所以seq=x+1,而ack=y+1是表示A正准备接收B序列号为y+1的数据包。

四次挥手阐述:

由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,

收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。

首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。
(1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
(2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
(3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
(4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

7、测试工具

测试工具,无非这几类:

自动化测试工具 (如QTP)

性能测试工具 (如loadrunner)

测试管理类 (如jira)

安全测试工具

渗透测试工具

8、其他概念问题

Beta测试与Alpha测试有什么区别

1、Alpha测试

Alpha测试是由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。开发者坐在用户旁边,这是在开发者受控的环境下进行的测试。由开发者随时记录下错误情况和使用中的问题。

2、Beta测试

Beta测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,这是在开发者无法控制的环境下进行的测试。由用户记录下遇到的所有问题,定期向开发者报告。beta测试是一模拟真实的使用环境从而发现缺陷的一种测试

3、验收测试

验收测试是以用户为主的测试,软件开发和QA人员也应该参加,测试一般在用户所在地进行,由用户验证软件产品是否满足了所有的需求的一系列的验收测试工作。

仅限于做项目的公司,部门内部测试稳定后,根据合同中需求由发包商进行验收测试。验收测试的目的是为了以发现”未实现的需求”为目的,以评估”适合使用”为目标,该类测试的不是以发现缺陷为主要目的。

区别:两者的主要区别是测试的场所不同。

Alpha测试是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行的测试。Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。

而beta测试的环境是不受开发方控制的,谁也不知道用户如何折磨软件,用户数量相对比较多,时间不集中。

一般地,alpha测试先于beta测试执行。通用的软件产品需要较大规模的beta测试,测试周期比较长。如果产品通过了beta测试,那么就可以正式发行了。

Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。

Beta测试 当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。

四、你还有什么想问的吗(必答)
我非常希望能够加入公司,所以想请问您觉得我还有哪些地方比较不足,能否给一些建议?以及是否有复试时间呢?

五、简历模板
可在公众号《软件测试er》回复‘简历模板’获取
文章首发于公众号

关于我准备后的面试经历、面试题汇总、面试结果

有兴趣请继续关注

4.1 软素质面试题
  招聘过程中,除了会考查技术、了解 工作经验外,还会对应试者软素质进行衡量。本节列出面试中经常碰到的一些问题以及回答注意事项。
  例题1.您之前的学业跟这个岗位不太合适,这个你怎么看?你学的是Java,但是我们用的是PHP语法,这个你怎么看?
  分析:当面试官提出这样的问题,有可能是真不合适,但也有很大一部分原因是测您的心理压力承受能力。因为在日常工作中,除了工作上有压力,有时犯了错,需要承受更大的心理压力。面试官当然不希望自己招到一个犯了错就崩溃或者哭哭啼啼的学生。这个题目应该尽量积极回答。
  答案:我的专业确实不对口,但是不影响我对这行的钟爱程度,希望面试官给我机会,我会证明给你们看我不比专业人员差。我自学能力很强,如果贵公司录用我,入职之前我可以自学PHP,应该不会耽误工作。
  例题2.我们公司经常加班,你对加班问题怎么看?
  分析:了解应聘者是否反对加班。
  答案:理解,任务没完成或者要赶进度加班也是可以的,多劳多得。(我家里人很支持我的事业,不会反对我加班。加班对我成长有很大帮助,我不排斥。)
  例题3.你为什么选择我们公司呢?
  答案:贵公司在行业内领先,我可以学到很多东西。(贵公司处于发展期,我认为可以有很大的职业上升空间。)
  例题4.你能为我们做什么呢?
  答案:我办事效率高,能提高贵公司测试项目的效益。(我经验丰富,能提高贵公司测试项目的质量。)(我对管理流程很熟悉,能规范贵公司测试项目的流程。)(我开发能力强,对自动化又熟悉,能引进自动化技术,缩短测试周期)。
  例题5.你是什么样的人呢?
  分析:这等于在问,你的价值观是否跟公司的企业文化一致?答案别太离谱就行。
  答案:乐观,不斤斤计较,上进等。
  例题6.你还有什么问题要问我?
  分析:这个问题若以积极的方式回答,会给面试官留下较好的印像。最好问工作相关的事情,别问工资之类。
  答案:如果我想在这个行业发展下去,您作为资深人士,能给我点建议么?
  例题7.谈一下你做过项目的产品功能架构、设计框架?
  答案:根据考生自己情况作答。
  例题8.你的测试职业发展是什么?
  答案:测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师发展。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的标准要求自己,不断地更新自己、改正自己,做好测试任务。
  例题9.你自认为测试的优势在哪里?
  答案:优势在于我对测试坚定不移的信心和热情,虽然经验还不够,但我有信心在工作中发挥测试需要的基本技能。
  例题10.当开发人员说不是 Bug时,你如何应付?
  答案:开发人员说不是Bug,有2种情况。一是需求没有确定,所以我可以这么做,这个时候可以找来产品经理进行确认,需不需要改动,3方商定后再看要不要改。二是这种情况不可能发生,所以不需要修改,这个时候,我可以先尽可能说出是Bug的依据是什么?如果被用户发现或出了问题,会有什么不良结果?程序员可能会给你很多理由,你可以对他的解释进行反驳。如果还是不行,那我可以把这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要修改就不改。如果有些真的不是Bug,我就以建议的方式写进TD中,开发人员不修改也没有大问题。如果确定是Bug的话,一定要坚持自己的立场,让问题得到最后的确认。
  例题11.你找工作时,最重要的考虑因素为何?
  答案:工作的性质和内容是否能让我发挥所长,并不断成长。
  例题12.为什么我们应该录取你?
  答案:您可以由我过去的工作表现所呈现的客观数据,明显地看出我全力以赴的工作态度。
  例题13.如果和开发人员时间安排有矛盾,或者说开发者延迟开发时间,你会怎么做?
  分析:以大局为重,先把事情弄完,再考虑内部矛盾。
  答案:加班把测试工作完成,或者和开发人员商量,让开发人员分担一些测试任务。目的只有一个,务必准时上线。事后,分析开发延迟原因,下次尽量避免类似事情发生。
  例题14.工作中,你和你平级同事竞争一个职位,你又跟他在一个团队,如何相处?
  答案:作为同一个团队的成员,必然存在两层关系:竞争、合作。我认为作为一个专业人士,应该以合作第一、竞争第二为原则。因为在同一个团队,就一定有共同利益,大家都在同一条船上,必须把共同利益维持好,才会有更好的发展。另外,成功晋级也有两种结果,一种是伴随鲜花和掌声,另一种是带着同事的不屑和蔑视。我希望我是第一种。
  例题15.如果我今天把你拒绝了,觉得你不适合干这行,你会怎么做?
  答案:我喜欢这行,我会继续努力。另外,我想了解您拒绝我的理由,方便我出去后重整旗鼓。毕竟您是有经验的,经验比我丰富,一定能看到我自己看不到的缺点。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值