最近几个朋友找我聊天,给我讲述了面试过程中遇到的一些不太理解的事情。作为一个技术面试官,今天来分享 9 个面试相关的套路。
1.自我介绍
自我介绍是一个重要的开始,好的开始是成功的一半。不需要太多花里胡哨的东西,简单、清楚的介绍自己就可以:
- 工作履历、教育背景、擅长的技术和业务等;
- 介绍自己项目中的亮点,注意,亮点项目面试官肯定会着重问,要好好准备;
- 聊点技术外的东西,比如兴趣爱好之类的;
- 加分项:获奖经历或荣誉称号,线上面试,主动打开摄像头让面试官看到自己。
2.技术连环炮
有的技术问题有会多个答案,面试官可能会引导候选人做多个回答。有的技术问题则会有多个扩展点,面试官很可能会提出一连串的问题。
3. 突然招够了
有一次,我面试一家公司,猎头通知我一面通过了,让我赶紧做核酸,第二天要去现场进行二面,到了第二天,猎头又通知说领导临时有事,面试延后,过了几天,猎头又通知我说一面没通过。
最近一个朋友面试美团,也遇到了类似问题,都约好了二面 ,第二天又通知候选人说一面没过:
这个大概率就是备胎原理,比如一个公司某岗位有 5 个 ,一面通过了 30 个,二面 10 个同时在进行,有一天招到了第 5 个满意的候选人,那之前在流程中的只能拜拜了。所以,平常心看待,有时候真的不是能力不够。
4. 看错了
之前听做面试官的朋友提到过一个问题,他说面试了一个候选人,感觉很不错,但结束的时候才发现候选人学历是专升本,因为教育经历写着 xx 学校(本科 2009-2014),开始没有注意上了 5 年本科,可是公司对学历又有硬性要求,只能把候选人挂了。
这种情况不少见,人力筛选简历的时候压力也很大,会有疏忽的可能。
还有的候选人简历里面不写性别、年龄,可能也会造成误会。
5. 我们不招人
面试的时候面试官夸奖了候选人,但是反手却把他挂了,这是什么套路?我想这个公司大概率不招人。有的公司常年挂着职位在招人,也让候选人去面试,但是真实不招人。今年大环境不好的情况下,这个现象还真不少。
公司这样做的原因不太理解,我想有可能是给外界看,自己还在招人,自己还在发展,自己资金充裕。
6. 硬着头皮面完
分享之前公司的一个小故事,一次我们组的测试组长跟旁边的同事说:“人力约了一个候选人,xx 条件不符合,但是人力已经跟人家约好了,你去面一下走个过场,把人打发了”。
我当时很难理解这种做法,为什么不直接让人力再去通知一下呢?但随着工作年限的增加,我发现这个也不稀奇。
这场面试,双方都会非常难受,一个明知不招人,还得硬着头皮提问,一个不知道不招人,还要认知地对待。
7. 打破僵局
做面试官其实并不容易,尤其是遇到行业不符合的简历,候选人讲的东西很可能听不明白,这会非常尴尬,不知道该如何提问。
有个印象很深刻的候选人,每次尴尬的时候,他都主动打破,说要不我我接着讲一下 xx 吧,这个我参与比较深入。多次打破僵局,让后面的聊天很顺畅。
有时候求职面试的时候,发现面试官也不会,甚至在装 x,其实这个很正常,面试官也是普通人 ,不可能什么都会。但是作为候选人,我们的目的就是通过面试,有一个好的态度,引导面试官去听自己擅长的东西,也会加分的。
8. 要的太高了
从招聘网站上看,薪资都是一个范围,比如 15~30k,多数候选人会觉得薪资要求只要不超过 30k,这家公司都可以满足,其实不然。
可能公司最多只能给到 10k,或者公司只招一个 30k 的,其他都是 30k 以下的。
所以面试时感觉自己发挥很好,最后却没过,很正常。
9. 练练手
面试自己喜欢的公司之前,最好是先拿几个不太想去的公司多面试一下,练练手,面试经验也是需要积累的,如果好几年没有经历过面试,肯定会有不适应。
这一点,面试官、求职者,大家应该都懂的。
最后
我是一名在软件测试岗位从事了多年的老鸟,为一个过来人,对学习过程中的困难深有体会,所以我热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、自学方法、心得及踩过的一些坑,记录下来。一是更好的梳理自己,二也是能做到更好的社区分享。
当然更希望想突破瓶颈的你一样,通过我的分享可以少走一些弯路,可以形成一条自己的体系,并应用到实际中。当然,也真心的希望你们升职加薪,因为有面包才会有更好的生活追求。
下面给大家整了一套涵盖测试所有技术栈的快速学习方法和笔记。目前已经收到了七八个网友的反馈,说是面试问到了很多这里面的知识点。
内容包括:测试理论、Python基础、Linux基础、Web测试、App测试、管理工具、接口测试、性能测试、Selenium相关、MySQL基础、LordRunner相关等
下面展示部分截图,文末附免费下载方式。
通过大数据总结发现,其实软件测试岗的面试都是差不多的。常问的有下面这几块知识点:
- 测试理论(测试基础+需求分析+测试模型+测试计划+测试策略+测试案例等等)
- Linux( Linux基础+Linux练习题)
- MySQL(基础知识+查询练习+万年学生表经典面试题汇总+数据库企业真题)
- Web测试
- API测试
- App测试
- 管理工具
- Python基础(Python基础+编程题+集合+函数+Python特性等等)
- Selenium相关
- 性能测试
- LordRunner相关
- 计算机网络
- 组成原理
- 数据结构与算法
- 逻辑题
- 人力资源
一、测试理论
什么是软件测试?
- 为了发现程序中的错误而执行程序的过程
软件测试的目标
- 发现尽可能多的错误
测试是一个为了寻找错误而运行程序的过程。
一个好的测试案例是指很可能找到迄今为止尚未发现的错误的用例。
一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。
怎么编写案例?
- 案例的编写与测试阶段的定义有很大的关系。系统测试和 unit 测试的案例可能不同。总体而言测试案例根据系统的需求而定。
二、Linux 基础
Linux 中,一般怎么隐藏文件?
- 文件名以一个.开头
在 Linux 系统中,一个文件的访问权限是 755,其含义是什么?
- 755 表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。
在 Linux 系统中,一个文件的访问权限是 755,其含义是什么?
- 755 表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。
三、MySQL 基础
什么是数据库?
- 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
简述什么是存储过程和触发器?
-
存储过程:是数据库中的一个对象,Transact-SQL 语句的预编译集合,这些语句在一个名称下存储并作为一个单元进行处理。(可以理解为 C 语言中的函数,有参数、返回值等函数特性)
触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。
Mysql 数据库中怎么实现分页?
- select * from table limit (start-1)*limit,limit;其中 start 是页码,limit 是每页显示的条数。
四、Web 测试
如何测试购买下单和退货流程
- 产品经理设计了单品优惠,组合优惠,订单优惠,优惠券优惠(优惠券优惠包含通用券,定向券,满减券,折扣券)和礼品卡,其中礼品卡上需要单独购买的。请问如何测试购买下单和退货流程,需要注意什么?(包含数据存储)
nginx,tomcat,apache 都是什么?
-
Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器。
Apache HTTP Server 是一个模块化的服务器,源于 NCSAhttpd 服务器Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,是开发和调试JSP 程序的首选。
五、接口测试
什么是接口
- 接口是指外部系统与系统之间以及内部各子系统之间的交互点。
包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口、同级接口。
下个接口请求参数依赖上个接口的返回数据
- 这个很容易,不同的接口封装成不同的函数或方法,需要的数据 return 出来,用一个中间变量 a去接受,后面的接口传 a 就可以了
接口测试中依赖登录状态的接口如何测试?
- 依赖登最状态的接口,本质上是在每次发送请求时需要带上存储有账户有效信息的 Session 或Cookie 才能发送成功,在构建 POST 请求时添加必要的 Session 或 Cookie
六、App 测试
在查看 logcat 命令日志时候怎么内容保存到本地文件?
- 输出重定向:logcat >> log_file_name
Appium 都有哪些启动方式
- 1.客户端启动
- 2.命令行启动
//*[contains(@text,”登录”)]”是什么意思
- 定位第一个元素 text 属性包含登录的元素
七、Python 基础
字符串反序输出?
- print(a_str[::-1])
判断回文?
- astr[::-1] == a_str
简述你对 input()函数的理解?
- 在 Python3 中,input()获取用户输入,不论用户输入的是什么,获取到的都是字符串类型的。在 Python2中有 raw_input()和 input(), raw_input()和 Python3 中的input()作用是一样的, input()输入的是什么数据类型的,获取到的就是什么数据类型的。
八、Selenium 相关
什么是 Selenium?
-
Selenium 就是一套专门用于自动化 Web 浏览器的工具。而已!你用这个东西来做什么完全取决于你。主要是用于自动化 Web 应用程序进行测试,但肯定不仅限于此。无聊的基于 Web 的管理任务也可以(也应该!)也是自动化的。
Selenium 有一些最大的浏览器供应商的支持,他们已经采取(或正在采取)步骤使 Selenium 成为其浏览器的本地部分。 它也是无数其他浏览器自动化工具,API 和框架的核心技术。
最新的 Selenium 版本已经是 3.0(2016 年 10 月 13 日正式 release),但是因为是新技术,Selenium3.0的使用范围还不太广泛。变动的范围也不是很大,主要是更倾向于 Webdriver,而更多的摒弃了 RC。
什么是 elenium IDE?
- Selenium IDE 是 Selenium 脚本的集成开发环境。 它被实现为 Firefox 扩展(插件),并允许您记录,编辑和调试测试。
webdriver 如何开启和退出一个浏览器?
- 开启:dr = webdriver.浏览器类型() 关闭:dr.quit()
九、性能测试
你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?
-
性能测试工作的目的是检查系统是否满足在需求说明书中规定的性能,性能测试常常需要和强度测试结合起来,并常常要求同时进行软件和硬件的检测。
性能测试主要的关注对象是响应时间,吞吐量,占用内存大小(辅助存储区),处理精度等。
简述什么是值传递,什么是地址传递,两者区别是什么?
- 值传递主调函数传递给被调函数的是值的拷贝,不是原值;地址传递主调函数传递给被调函数的是值的地址。区别是值传递被调函数中的操作不改变主调函数的值,而地址传递则不同。
LoadRunner 分哪三部分?
- 用户动作设计;
- 场景设计;
- 测试数据分析;
十、LordRunner 相关
LoadRunner 分哪三部分?
- 用户动作设计;
- 场景设计;
- 测试数据分析;
简述 LoadRunner 的工作原理?
- Loadrunner 会自动监控指定的 URL 或应用程序所发出的请求及服务器返回的响应,它做为一个第三方(Agent)监视客户端与服务器端的所有对话,然后把这些对话记录下来,生成脚本,再次运行时模拟客户端发出的请求,捕获服务器端的响应。
什么是 LoadRunner 的组件?
- LoadRunner 的组件有虚拟用户生成器,控制器、代理程序、LoadRunner 的分析器和监控器,LoadRunner在线帮助
十一、逻辑题
在一天的 24 小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?
- 23 次,因为分针要转 24 圈,时针才能转 1 圈,而分针和时针重合两次之间的间隔显然>1 小时,它们有 23 次重合机会,每次重合中秒针有一次重合机会,所以是 23 次重合时间可以对照手表求出,也可列方程求出。
十二、人力资源
你的测试职业发展是什么?你自认为做测试的优势在哪里?
-
测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前 3 年累积测试经验,按如何做好测试工程师的要求自己,不断的更新自己改正自己,做好测试任务。
-
优势在于我对测试坚定不移的信心和热情,虽然经验还不够,但测试需要的基本技能我有信心在工作中得以发挥
好的测试工程师应具备的素质?
- 沟通能力、移情能力、技术能力、自信心、外交能力、幽默感、很强的记忆力、 耐心、怀疑精神、自我督促、洞察力
请介绍一下你的项目
- 从几个部分来说,先项目规模,包括项目代码规模,需求规模、用例规模,工作量,进度,质量和成本,然后是整体的测试流程,然后再是角色与职责,接下来是在项目中自己的特色,比如做得最好的是、遇到最大的困难时(如何解决)、最差的是,最后是心得体会。
最后
整份文档一共有将近 200 页,为了不影响大家的阅读体验就只展示了部分内容,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!