前言
软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。前期面试实习生或者一年左右的岗位,问的也主要是一些基础性的问题比较多。涉及的知识主要有MySQL数据库的使用、Linux操作系统的使用、软件测试框架性的问题,测试环境搭建问题、当然还有一些自动化测试和性能测试的问题。测试工程师的面试题,基本上都是大同小异的,面试的核心主要在于框架模块(一到三年工作经验)。
岗位JD
1)3年以上测试工作经验,1年以上自动化测试经验或开发经验;
2)至少熟悉一种脚本语言,如Shell、Python、java等;
3)至少熟悉一种测试框架,unittest、pytest、testng等;可独立完成复杂逻辑的接口自动化测试;
4)熟悉appium、selenium可独立完成android和ios的UI自动化测试;
5)熟悉jenkins、svn、git的搭建和使用;
6)熟悉常用性能测试工具的使用,并可进行分析调优:ab、jmeter、loadrunner、locust等,有分布式压测经验优先;
7)熟悉使用django开发框架,可完成web页面和功能的开发(此条可放宽);
8)具备丰富的系统测试经验,并且能够进行系统级的原因定位与分析;
9)具备较强的计划、组织、协调、沟通及分析能力,优秀的职业素养和团队协作精神、敬业精神,能承受工作压力;
10)学习能力强,对技术有着特别的渴求,在关注的领域有着深入的研究,并不断创新;具备较强的技术培训能力和领导能力
今天这篇帖子主要讲解之前面试自己面试过程中或者周围人面试过程中经常被问到且比较经典的面试题,一家之言,如有异议或者有想问的问题,可以在评论区留言,看到后将在第一时间内回复!
好了话不多说,直上干货。
目录
一、开场白
Q:简单自我介绍一下吧
二、测试基础面试题
- 1.按测试内容划分,测试有哪些种类?
- 2.软件开发(测试)的流程是怎么样的?
- 3.你印象最深刻的 bug 是?
- 4.测试活动中,如果发现需要文档不完善或者不准确,怎么处理?
- 5.简单概述缺陷报告,并说明包括哪些项?
- 6.谈谈你对 CI/CD 的理解
- 7.APP的一个页面,你怎么区分是原生Native页面,还是H5?
三、接口测试面试题
- 8.接口测试是怎么做的,如何分析数据?
- 9.你用什么工具测试接口?
- 10.你都知道有哪些接口请求方式?区别是什么?
- 11.为什么要做接口测试?
- 12.一个前后端都能修改的bug,应该由谁修改?
- 13.如何定位是前端bug还是后端bug(*)
- 14.今日头条的列表页面接口,这个接口有三个参数,一个参数是type字段,type=1代表是图文类文章,type=2代表是视频类文章 type=3时是纯文本文章,另外两个字段是pagesize ,还有一个参数是pageno,对于这个接口你怎么测试?
- 15.注册账号成功,但登录失败,怎么排查?
- 16.我要测商品列表接口,但是这个接口是依赖于登录接口,要登录成功才能测这个接口,用postman怎样去做这个接口测试?
四、UI自动化测试面试题
- 17.写出4种xpath定位方式定位如下红框中的控件
- 18.如何从如下红框中的a标签,定位到如下红框中的div标签?
- 19.如何从红框中的a标签,定位到如下红框中的form标签?
- 20.如下iframe,如何定位到切换到iframe1、iframe2、iframe3、iframe4;如果目前已经切换到了iframe4,如果定位到iframe2中的某一个控件?
如果切换到了iframe2如何定位到body中的某一个控件?
五、MySQL笔试题
21.把字段基金代码的长度扩长为8位
22.统计同一销售商和网点代码下持有的总份额
23.统计出同一个基金帐号和基金代码记录数超过2条的总数有多少
24.把基金账号为100008,网点代码最小的那条记录的份额更新为2000
CREATE TABLE A (
P_ID int,
p_num int,
s_id int);
INSERT INTO A VALUES
(1,10,01),
(1,12,02),
(2,8,01),
(3,11,01),
(3,8,03);
select a.*,a.s1_id+a.s2_id+a.s3_id as sum_p from (select p_id,
sum(case when s_id=1 then p_num else 0 end) as s1_id ,
sum(case when s_id=2 then p_num else 0 end) as s2_id ,
sum(case when s_id=3 then p_num else 0 end) as s3_id
from product_t group by p_id) a;
1.按测试内容划分,测试有哪些种类?
按照软件的生命周期划分:单元测试、集成测试、系统测试、回归测试、验收测试。
按照测试关注点划分:功能测试、性能测试、稳定性测试、易用性测试、安全性测试。
按照测试实施者划分:开发方测试(α测试)、用户测试(β测试)、第三方测试。
按照技术/测试用例设计划分:白盒测试、黑盒测试、灰盒测试。按照分析方法划分:静态测试、动态测试。
按照测试执行方式划分:手工测试、自动化测试。按照测试对象划分:程序测试、文档测试。
2.软件开发(测试)的流程是怎么样的?
按W模型:
需求测试 -> 概要设计测试 -> 详细设计测试 -> 单元测试 -> 集成测试 -> 系统测试 -> 验收测试
实际工作中的测试流程:
需求评审 -> 技术评审 -> case评审 -> 开发自测以及冒烟测试 -> 整体提测(集成测试) -> 回归测试 -> 系统测试 -> 验收测试
3.你印象最深刻的 bug 是?
参考答案:
其实能被发现的bug,更多都是显而易见的bug。
有一个bug,让我印象十分深刻,这个bug并不是发生在我负责测试的系统上,是发生在我们所依赖的系统上。
当时在测试分类页,分类页数据接口需要调用商品系统的接口,别的很多服务也依赖商品系统接口。在某次大促之前,商品系统在夜间压测,突然我们的服务接到接口调用超时的报警,一番排查之后,才发现是调用商品系统的时候超时了,我们的服务没有做降级处理,直接给前端抛了一个错误。当时还好是凌晨,给线上用户的影响较小,但是也是敲响了警钟,后面我们做了降级处理,缓存了部分商品数据,待商品系统大规模调用超时后,将调用商品系统接口的开关关闭,走我们的缓存数据。
这个bug也提醒我,要有大局意识,不要只关注自己的系统,也要关注上下游服务,每逢大促或者重大活动时,最好都要做压测,要对服务的性能有个预期。
回答的要点:
- 发现了什么bug?
- bug怎么解决的?
- 带给你什么启示?
- 回答的bug不要太严重,也不要太低级。
4.测试活动中,如果发现需要文档不完善或者不准确,怎么处理?
要及时的与项目经理进行沟通协调。要在邮件中详细的把不完善不准确的地方描述出来,并提出自己的意见。
5.简单概述缺陷报告,并说明包括哪些项?
现在缺陷报告一般不再使用纸质档文档编写,而是专用测试管理工具(如TestDirector),这样便于缺陷管理。在这些工具中,每个缺陷作为一条记录输入指定的缺陷管理系统中。
缺陷报告包括:软件名称、版本号、功能模板、缺陷编号、对应的用例编号、编写时间、编写人、测试员、预期结果、实际结果、缺陷描述、严重级别、优先级别
6.谈谈你对 CI/CD 的理解
不想说太多概念性的东西,直接从技术人员实际能接触的过程来展开说说。CI指的是持续集成,CD指的是持续部署。合在一起通常包含这几个过程:
7.APP的一个页面,你怎么区分是原生Native页面,还是H5?
1)看断网情况
把手机的网络断掉。然后点开页面。然后可以正常显示的东西就是原生写的。
显示404或则错误页面的是html页面。
2)看布局边界
可以打开开发者选项中的显示布局边界,页面元素很多的情况下布局是一整块的是h5的,布局密密麻麻的是原生控件。页面有布局的是原生的否则为h5页面。(仅针对安卓手机试用)如下图所示
3)看复制文章的提示,需要你通过对比才能得出结果
比如是文章资讯页面可以长按页面试试,如果出现文字选择、粘贴功能的是H5页面,否则是native原生的页面。
有些原生APP开放了复制粘贴功能或者关闭了。而H5的css屏蔽了复制选择功能等等情况。需要通过对目标测试APP进行对比才可知。
这个在支付宝APP、蚂蚁聚宝都是可以判断的
4)看加载方式
如果在打开新页面导航栏下面有一条加载的线的话,这个页面就是H5页面,如果没有就是原生的。 微信里面打开我们的H5页面常见的有个绿色的 加载线条。如下图红框里面所示
5)看app顶部 导航栏是否会有关闭的操作
如果APP顶部导航栏当中出现了关闭按钮或者有关闭的图标,那么当前的页面肯定的H5,原生的不会出现(除非设计开发者故意弄的)
美团的、大众点评的APp、微信APP当加载h5过多的时候,左上角会出现关闭2字。
6)判断页面 下拉刷新的时候(前提是要有下拉刷新的功能)
如果界面没有明显刷新现象的是原生的,如果有明显刷新现象(比如闪一下)的是H5页面(ios和android)。
比如淘宝的众筹页面。
7)下拉页面的时候显示网址提供方的一定是H5。如下图所示:
8.接口测试是怎么做的,如何分析数据?
接口测试实际跟一般测试不同就是测试用例的设计部分。
获取接口规范。
设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求,用例设计就是黑盒用例那一套)。
各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选/必选,还有考虑参数有互斥或关联的情况)。
接口返回值各种验证(符合接口文档需求)
了解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/判定/…)
接口能并发执行吗、安全吗,性能满足要求吗?
采用工具或者自写代码来验证。
发现问题跟功能测试一样,该报bug报bug,该跟踪状态的跟踪状态
9.你用什么工具测试接口?
postman、jmeter、soapui(不常用)
10.你都知道有哪些接口请求方式?区别是什么?
GET post PUE DELETE
区别:get直接从服务端拉取数据
post:先发送请求再拉数据(注册、更新、改)
put:修改的数据
delete:用户删除数据
这几种方式,取决于开发,他用啥你们就传啥
11.为什么要做接口测试?
-
通过接口测试能快速发现非功能层面的一些逻辑问题
-
能提高测试的效率
-
相对UI自动化来说,比较稳定,能减少回归成本
12.一个前后端都能修改的bug,应该由谁修改?
后端修改
13.如何定位是前端bug还是后端bug(*)
-
验证这个BUG、在前端去复现bug
-
在服务器上面找到日志文件
-
用tail -f显示日志
-
去观察日志,如果有明确的“exception”,那就是后台报错
-
接口返回码为500+即服务器问题,后台问题。
前端:
前问题一般就是界面的问题,不过像开发在url中加入新的请求参数,而没有写进接口文档中的错误属于后端错误。
一般像页面的排版和显示问题都属于前端问题
14.今日头条的列表页面接口,这个接口有三个参数,一个参数是type字段,type=1代表是图文类文章,type=2代表是视频类文章 type=3时是纯文本文章,另外两个字段是pagesize ,还有一个参数是pageno,对于这个接口你怎么测试?
参考回答:
传入type=1 pagesize=6 pageno=1 它返回的数据图文文章列表第一页6条数据
传入type=2 pagesize=3 pageno=2 它返回的数据视频类文章第2页3条数据
传入type=3 pagesize=4 pageno=2 它返回的数据视频类文章第2页4条数据
类型为空条数为空、页数为空,它返回无数据
类型和条数和页数传入特殊字符、超长,传入负数它的节点返回无数据
15.注册账号成功,但登录失败,怎么排查?
注册用户的数据没有传入到数据,那就调用一下登录接口是否成功,如果失败了,提bug
16.我要测商品列表接口,但是这个接口是依赖于登录接口,要登录成功才能测这个接口,用postman怎样去做这个接口测试?
首先在postman创建一个登录接口,确定登录是正常的,如果它使用的cookie那么需要把cookie传入列表接口头部信息中
如果登录接口他返回的token是在返回报文中,那么列表接口直接在头部信息中传入这个token即可
最后两个联通之后,根据用例传入不同的参数值去校验这个商品列表接口是否正常
17.写出4种xpath定位方式定位如下红框中的控件
18.如何从如下红框中的a标签,定位到如下红框中的div标签?
19.如何从红框中的a标签,定位到如下红框中的form标签?
20.如下iframe,如何定位到切换到iframe1、iframe2、iframe3、iframe4;如果目前已经切换到了iframe4,如果定位到iframe2中的某一个控件?
如果切换到了iframe2如何定位到body中的某一个控件?
html
body
iframe1 id=“test”
iframe3 id=‘dd’
iframe2
div id=‘test’
iframe4
好了,今天的分享就到这里吧,也很抱歉受篇幅有限不能把全部的面试题给大家分享在这里,其实这些我在面试题库都有整理的,也有完整的答案,大家都可以自己去学习的,加油吧,不断积累自己,知道企业面试会问哪些问题,你才容易成功的。如果你需要的话,赶快来找我吧!!!免费的!!
六、互联网大厂(华为)面试真题
七、Linux面试题
从软件测试基础理论到自动化测试,接口测试,性能测试,功能测试,互联网大厂面试真题,HR面试小技巧,应有尽有
上线运行一个月刷题人数已经达15W+,刷题次数已到20W+,题目总数超过300道,每日大量更新题库中。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。