我花了2天时间,整理出来80道最常见的核心面试题(附答案),文末附真实面试笔记。

面试题摘要:

技术类问题

1、以前做过怎样的项目?说一下你们的测试流程?在项目组中做过怎样的工作?

2、所做项目的情况,主要做什么类型的测试?

3、你认为是bug,而开发不认同时怎么办?

4、 给你一个网站,你如何测试?

5、熟悉数据库吗 ?平时数据库用的多吗 ? (大概测试过程的1/4时间在查数据库)

6、linux查看文件用什么命令,查看进程用什么命令 ?

7 、 查看日志常用什么命令,主要查看什么内容 ?

8、 软件测试用例设计/测试用例的内容/管理工具?

9、如何判断一个问题是bug?

10、平时写测试用例会用到的设计方法?

11、有哪些不同的测试计划活动?

12、哪些信息应该包括在开发的缺陷或错误报告中?

13、你觉得自动化测试的价值在哪里?你们公司为什么要做自动化测试?

14、举例一下说明一下你遇到过那些异常

15、什么是PO模式,为什么要使用它

16、你会封装自动化测试框架吗?

职业发展类问题

1、你对测试最大的兴趣在哪里?为什么?

2、 你的测试职业发展是什么?

3、你认为测试人员需要具备哪些素质?

4、你为什么能够做测试这一行?

5、一个测试工程师应该具备哪些素质和技能?

6、你认为做好测试用例设计工作的关键是什么?

7、您认为做好测试计划工作的关键是什么?

埋坑问题

1、怎样看待加班问题?

2、基于目前中国的国情,大多数公司的项目进度紧张、人员较少、需求文档根本没有或者很不规范,你认为在这种情况下怎样保证软件的质量?

3、为何尽可能不要让时间有富裕的员工去作一些测试?

4、如何减小测试人员跳槽带来的损失?

5、你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?

超长图预警......

高清图谱,私信获取


以下是霍格沃兹测试学院学员 ykl 面试 Python 自动化测试工程师的真实经历回顾,面试 5 家公司,拿到 3 个 Offer,供金九银十跳槽季的各位同学参考!学院最近也在汇总优秀企业的测试开发 Offer 信息,并组织内推活动。

我一共参加了 5 个公司的面试。第一家公司,通过了 2 轮技术面试,但是薪资不够理想。第二个公司,被面试的测试专家虐的不要不要的 ,挂了,但也知道了自己很多不足之处。后面三个公司的面试都顺利拿到了 Offer。凭印象对面试题进行简单总结回顾,以代码方面的问题为主,经验不足,回答水平也有限,希望与同学们一起交流探讨。

P.S. 本人目前用的语言主要是 Python 和 JavaScript,面试的这 5 家公司都是用 Python 做自动化测试,所以以下代码问题基本上都是关于 Python 的。

Python 自动化测试面试题目汇总

1、super 是干嘛用的?在 Python2 和 Python3 使用,有什么区别?为什么要使用 super?请举例说明。

答:

  • super 用于继承父类的方法、属性。
  • super 是新式类中才有的,所以 Python2 中使用时,要在类名的参数中写 Object。Python3 默认是新式类,不用写,直接可用。
  • 使用 super 可以提高代码的复用性、可维护性。修改代码时,只需修改一处。
  • 代码举例
class baseClass:def test1(self, num):print(num)class sonClass(baseClass):def test2(self):super().test1(num)son = sonClass()
son.test1(11)

2、阅读以下代码,推导最后结果:

def add(n, i):return n+idef test():for i in range(4):yield ig = test()for n in [1, 10, 5]:g = (add(n, i) for i in g)print(list(g)) # 结果是 [15, 16, 17, 18]

答: 所有的结果都是生成器表达式,不调用它,不从里面取值,就不干活。附上我的推导过程:

n = 1
g = (add(n,i) for i in test())
# print(list(g))    # [1, 2, 3, 4]n = 10
g = (add(n,i) for i in (add(n,i) for i in test()))
# print(list(g))    # [20, 21, 22, 23]n = 5
g = (add(n,i) for i in (add(n,i) for i in (add(n,i) for i in test())))
g = (add(n,i) for i in (add(n,i) for i in (5,6,7,8)))
g = (add(n,i) for i in (10,11,12,13))g = (15,16,17,18)
print(list(g)) # [15, 16, 17, 18]

3、快速编写前端 HTML、JavaScript、Vue 代码。

答:

  • HTML、JavaScript 代码:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8">
</head>
<body><h1 id="title">xxx公司</h1><p>xxx公司是一家......</p><div id="mybox"><h1>{{a}}</h1><input type="button" value="按我" v-on:click="add()"></div><script type="text/javascript" src="public/bundle.js"></script>
</body>
</html>
<script>var title =  document.getElementById("title");title.onclick = function() {alert('我爱xxx公司,祝我面试成功');}
</script>
  • Vue 代码编写:
import Vue from "vue";
new Vue({el : "#mybox",data : {a : 100},methods : {add : function(){this.a ++;}}
});

4、L = [1, 2, 3, 11, 2, 5, 3, 2, 5, 3],用一行代码得出 [11, 1, 2, 3, 5]

答: list(set(L))

5、L = [1, 2, 3, 4, 5],L[10:]的结果是?

答: 空列表(当时有点紧张,一直在“空列表”和“索引超出范围”两个答案之间徘徊)。

6、L = [1, 2, 3, 5, 6],如何得出 '12356'?

答: 注意,个人觉得这个题有坑,列表的元素不是字符串,所以不能 ''.join(L)。以下是过程:

s = ''
for i in L: s = s + str(i)
print(s) # 12356
print(type(s)) # <class 'str'>

7、列表和字典有什么区别?

答: 一般都是问列表和元组有什么不同。 (1)获取元素的方式不同。列表通过索引值获取,字典通过键获取。 (2)数据结构和算法不同。字典是 hash 算法,搜索的速度特别快。 (3)占用的内存不同。

8、如何结束一个进程?

答:(1)调用 terminate 方法。 (2)使用 subProcess 模块的 Popen 方法。使用简单,具体用法,这里不展开。

9、进程、线程有什么区别?什么情况下用进程?什么情况下用线程?

答:(1)区别:

  • ① 地址空间和其它资源(如打开文件):进程之间相互独立,同一进程的各线程之间共享。某进程内的线程在其它进程不可见。
  • ② 通信:进程间通信 IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
  • ③ 调度和切换:线程上下文切换比进程上下文切换要快得多。
  • ④ 在多线程操作系统中,进程不是一个可执行的实体。

(2)使用场景:同时操作一个对象的时候,比如操作的是一个全局变量,我用线程,因为全局变量是所有线程共享的。

10、什么是ORM?为什么要用ORM?不用ORM会带来什么影响?

答:

  • ORM 框架可以将类和数据表进行对应,只需要通过类和对象就可以对数据表进行操作。
  • 通过类和对象操作对应的数据表,类的静态属性名和数据表的字段名一一对应,不需要写 SQL 语句。
  • ORM 另外一个作用,是根据设计的类生成数据库中的表。

11、写一段代码,ping 一个 ip 地址,并返回成功、失败的信息。

答: 使用 subProcess 模块的 Popen 方法(使用简单,具体用法,这里不展开)。

12、说说接口测试的流程,介绍一下request有哪些内容。

答:(1)流程:获取接口文档,依据文档设计接口参数,获取响应,解析响应,校验结果,判断测试是否通过。 (2)request 内容:

  1. 封装了各种请求类型,get、post 等;
  2. 以关键字参数的方式,封装了各种请求参数,params、data、headers、token 等;
  3. 封装了响应内容,status_code、json()、cookies、url 等;
  4. session 会话对象,可以跨请求。

13、UI 自动化,如何做集群?

答: Selenium Grid。

14、移动端 UI 自动化,经常会自动安装 2 个程序,你知道那两个程序是什么东西不?

答: 守护精灵,和 Python 并发编程中的 daemon 原理一样,父进程/父线程的代码执行完毕,它就终止,要写在 start 方法前面。另外,要找到配置文件,注释掉两行代码。

15、说5个以上 Linux 命令。

答:一口气,劈里啪啦说了 10 多个 。

16、介绍一下你在这个项目中是如何使用 Jenkins 的。

答:用的不深入,说了基本操作,比如定时构建执行代码。

17、说说你对敏捷模式的认识。

答:小步快跑,拥抱变化。测试中,可以通过行为驱动测试,有个框架 lettuce 可以用。

18、了解过 Docker 不?

答: 了解,没用过。然后说了下对 Docker 大概的认识、优势。

19、说一下你对软件测试的深刻心得。

答: 此处省略 n 个字。 【请各位看官拍砖】

20、做过性能测试没?没做过,说出功能测试的流程。

答: 此处省略 n 个字。 【请各位看官拍砖】

21、Bug 定位、分析、类型。

答: 此处省略 n 个字。 【请各位看官拍砖】

22、测试策略、测试方案的区别。

答: 此处省略 n 个字。 【请各位看官拍砖】

大家面试测试工程师一般问什么问题?相关推荐

  1. 测试工程师python面试常问问题_面试测试工程师一般会问些什么?

    互联发展是很快的,每年都会有新语言的诞生 西瓜我,干测试已经三年了,主要负责web功能测试,java编写接口自动化,APP功能测试,APP 接口自动化(也是用的java),面过得测试也差不多30个,我 ...

  2. 怎么去面试测试工程师?

    但我们要清楚,找工作是出卖服务的过程.我们得先知道企业的需求是什么,才知道要怎么把自己卖出去,所以在面试之前,我们需要先分析企业的招聘需求. 企业的招聘要求里面会列出很多项内容.比如某公司的行政助理岗 ...

  3. 想去阿里大厂去面试测试工程师?想月薪15k?这篇文章一定对你有所帮助

    前言 我大学同学成功拿下阿里大厂年薪 30W+ 测试开发岗位 Offer,顺利完成从手工测试工程师到测试开发的逆袭,薪资翻倍(涨幅 100%+).我问他是怎么面试,听了他的话后,我有所感悟,写下了这篇 ...

  4. 没有软件测试经验的计算机毕业生如何准备面试测试工程师这一职位?

    经常看到网上又小伙伴提问:"现在大四在校学生,准备找一份软件测试工程师工作,但是没有测试经验,专业知识掌握一般,看什么书或者其他方面可以帮我顺利找到工作?" 古语云:"知 ...

  5. 腾讯面试--测试工程师社会招聘面试经历

    今天腾讯网上预约社会招聘,我是前天才看到这条消息,前天投了简历,还叫别人内推了我一把,但是悲剧的我把简历上的号码写成了原来在北京的号码,所以我也不知道是别人觉得我简历不合适还是因为联系不上我所以没有邀 ...

  6. 腾讯面试--测试工程师职位

    今天腾讯网上预约社会招聘,我是前天才看到这条消息,前天投了简历,还叫别人内推了我一把,但是悲剧的我把简历上的号码写成了原来在北京的号码,所以我也不知道是别人觉得我简历不合适还是因为联系不上我所以没有邀 ...

  7. 记录下自己面试测试工程师/自动化测试/测试开发等过程中遇到的面试题 和解法重点。--持续更新

    记录的面试题多是常见的,或者让我感到印象深刻的.我会记录下我的思路或者答案.因为很多题时至今日我也不知道标准答案. 请说说纸杯/电梯/qq登录的测试用例: 这种题注意,尽量多说用例,这是让面试官看到你 ...

  8. 今日头条面试——测试工程师

    目录 一面: 二面: HR面: 三面: 四面: 一面: 介绍下你自己 有了解过测试工具吗,用过哪些 设计一个微信朋友圈点赞的测试用例 如果用户点击微博的关注图标但APP上没有反应,应该怎么排查这个问题 ...

  9. 面试——测试工程师(20191009)

    小小的记录一下求职经历,一起加油呀~ ٩̋(•͈ω•͈)و 职位描述: 依据需求文档及设计文档,编写测试用例: 依据测试用例执行手工测试,反馈跟踪产品BUG及用例缺陷,协助开发人员定位及修复bug,并 ...

最新文章

  1. 【JavaScript总结】JavaScript语法基础:DOM
  2. MVC-Razor(3)
  3. maven update项目报错
  4. 浅谈Android软件安全自动化审计
  5. 【原创】Kakfa utils源代码分析(一)
  6. java.io.ioexception 拒绝访问,IOException异常 - 拒绝访问使用FileOutputStream中
  7. CakePHP:链接地址问题(不用mod_rewrite,IIS)
  8. ES2018 学习笔记(4)Unicode 和 ISO 10646
  9. 网易云NCM格式转换器
  10. python数据存储到access_Python操作Access数据库基本步骤分析
  11. 敏捷与CMMI的同与不同
  12. 导出微信聊天记录生成词云
  13. 联通托管服务器为什么打不开网页,为什么有些网页联通宽带打不开,移动4G能打开?...
  14. 用计算机证明的定理,定理机器证明
  15. 基于物联网技术的校园智慧消防管理平台-Susie 周
  16. 何新生的英语史(九)—看好莱坞学英语,就是这么简单 2
  17. 伦斯勒理工学院计算机科学专业强吗,2020年伦斯勒理工学院排名TFE Times美国最佳计算机科学硕士专业排名第59...
  18. python-docx库实战修改word文档格式
  19. 202107 VMware NSX-T培训笔记2(东西向网段间路由原理)
  20. 全新 MacBook Air MGN63CH/A / MGN93CH/A / MGND3CH/A / MGN73CH/A / MGNA3CH / MGNE3CH/A 配置报价图片

热门文章

  1. linux 学习 文件与目录
  2. 阿里万亿级日访问量下,Redis在微博的9年优化历程
  3. Map、HashMap、TreeMap、Collections工具类
  4. dlink网络打印服务器如何修改ip地址,怎么修改D-Link路由器的IP地址?
  5. 计算机任务驱动法教学课题,任务驱动法在计算机教学的应用4篇(共6683字).doc
  6. php中setcookie参数,php setcookie函数的参数说明及其用法
  7. HTML画布太阳代码,利用HTML5实现Canvas水面下太阳特效
  8. 2021云栖大会丨大咖都讲了啥?
  9. Android使用BACnet协议进行数据读写测试
  10. 【转】人为什么而活?