职业发展:坚定不移搞自动化测试

本人本科学历,但非计算机专业科班出生,其实毕业后一开始想做开发,可惜没有系统学习过软件开发的知识,所以找了一份入行门槛更低的测试工作。

之前一直主要做功能测试,差不多有三年时间。内心很早就坚定信念要做自动化测试,但是不知道从何学起。在了解到网上的自动化课程,简直如鱼得水。在认真学习两个月的自动化课程内容之后,我就尝试去找自动化测试相关的工作。

一开始并不顺利,只找到一家外包的岗位,不过是专职做自动化测试的。我心想只要能做自动化就行,去哪都一样。经过一年多在自动化测试岗位的学习、实践和沉淀之后,又尝试跳槽面试一些大厂测试开发岗位。

最终,我顺利拿下某互联网企业高级测试开发岗位,工作职责是负责某一业务线的自动化测试,薪资从一年前年薪 10W+ 涨到年薪 35W+,薪资一年时间翻了将近 3.5 倍。内心很激动,也非常感谢xxx学院的教育和帮助。

学习心得:自己思考,融会贯通

在学习过程中遇到问题,我其实很少在学员群里问别人,大部分时间都是自己通过查阅资料,或者自己多思考,尝试分析解决。这样做的好处就是解决完这个问题后,我能非常清晰的知道问题产生的原因和解决的思路

学到的东西只有落地到项目中才能真正成为自己的知识,哪怕落地后效果不是很好。落地实践你才会遇各种各样的坑,当你自己经过思考和分析解决完这些坑后,那这个知识对你来说就已经没什么难度了。

另外,要有写日记的习惯,好记性不如烂笔头。我会把落地过程中用到的技术和细节以及踩坑经验都会一一记录到笔记中,哪怕现在公司用不到没关系,当公司业务突然要用到这个知识时,我只需要看下笔记就非常的清楚我当初是如何落地的。

面试真题:3 轮技术面 + HR 面

面试总共经历四轮的面试,三轮的技术面试和一轮的 HR 面试,共耗时 5 个小时以上。我将自己记忆中的面试题都记录下来,供大家参考。

一面(组长面)

  1. 上家公司项目以及团队的规模是怎么样的?
  2. 你负责的项目整体的流程是怎么样的?
  3. 自动化实施过程中,是如何和业务测试进行沟通的?
  4. 你们公司对单元测试会有一些要求吗?
  5. 在上家公司你已经是专职做自动化了,为什么还要出来看机会?
  6. ​Andorid​​​和​​iOS​​ 自动化实现原理有什么区别?
  7. UI 动化脚本是怎么编写?
  8. 为什么放弃录制模式编写脚本,而使用代码编写脚本模式?
  9. 元素定位不到的情况,你是如何解决的?
  10. 随机数字键盘图像识别定位你是怎么实现的?
  11. 你们自动化测试脚本的维护成本是什么样子的,花多少时间维护,由谁来维护?
  12. UI 自动化测试脚本的测试数据一般你们是怎么准备的?
  13. UI 自动化测试脚本公共变量是如何管理的?
  14. 以编码的方式写脚本时,你们的测试用例是如何管理的?
  15. 由录制转成代码编写后,自动化测试效率提升了​​50%​​,你能说说具体实现措施吗?
  16. 你们自动化脚本的用例覆盖率占比是多少?为什么覆盖这么多?怎么衡量的?
  17. 你们接口自动化的测试流程是怎么样的?
  18. 写接口自动化测试用例时,你使用了​​requests​​​ 库,那大概使用到了​​requests​​ 的哪里内容?
  19. 你们会做一些接口的开发工作吗?使用什么技术?具体的流程?
  20. 接口自动化测试过程中,关联自动化测试如何做?单个模块和多个模块关联的话会怎么去做?
  21. 你们的项目会用到持续集成工具吗?自动化测试中哪些场景用到了持续集成?
  22. 你们​​Docker​​ 是如何使用在项目中的?
  23. 根据面试的情况,我觉得你有带团队的能力,有没有考虑来带团队,以及对带团队的想法是怎么样的?

二面(技术专家面)

  1. 针对第一面自己的一个表现能不能总结下?比如面试官的问一些问题哪些方面好,哪些方面不好?
  2. 第一面面试回答问题时,当时没有想到的点,现在可以补充一下吗?
  3. 作为工具开发,你做过哪些工具,哪些工具是你自己的创意?还是说只是接需求来做工具?
  4. 做工具时,是否能举些例子业务测试的业务痛点具体有哪些吗?如何设计去解决这些痛点?
  5. 如何评估业务测试提的需求是否合理?是否有更好的方案?如何去实现的?
  6. 需求合理和不合理的场景,分别举两个实例,什么情况下需求是合理的?什么情况下需求是不合理的?为什么不合理?不合理的话你如何将它转变了合理的需求?
  7. 工具开发中你担任什么角色?工具后续的规划和走向是什么样的?你想要达到一个目的是什么样的?
  8. 我想了解你在做​​appium​​ 遇到的难题是怎么解决的?要有特点的问题,是经过自己分析思考的,而不是从网上参考的,解决方案是什么?举些能代表你能力的例子。
  9. UI 自动化测试时,为什么由录制模式转成代码编写的脚本模式?
  10. 转成脚本模式后,对测试人员的要求提高了,你们是怎么解决这个问题的?
  11. 你带一个人转型时,会从哪些方面带他?
  12. 转型过程中,使用了哪些方案?转型后,收益是什么样的?
  13. UI 自动化有哪些功能是实现不了的?为什么?
  14. 有没有尝试去寻找解决方案,去攻克上述实现不了的场景?有的话,麻烦举个实例?
  15. 能说下图像识别的原理和实现思路吗?

三面(测试负责人面)

  1. 你现在是出于一个什么样的考虑,看新的机会?
  2. 现在在家庭方面有哪些方面的压力?
  3. 你期望对下一份工作的整体诉求是什么?你期望它能满足你哪些方面的要求,你觉得它的吸引力非常大?
  4. 通过前面的一面和二面,你应该大概了解了我们公司测试和整体定位是什么。简单的评价下从你目前获悉的这些方面来看,你觉得你原来的工作经验有些方面有好的应用场景在我们公司这边呢?
  5. 你在上家公司完成 UI 自动化大概的完成度是多少?占总体的用例比例是多少?
  6. UI 自动化由录制模式转型到代码编写模式过程中,中间有没有遇到一些什么难题呢?是如何解决的呢?
  7. 在帮业务测试转型到 UI 自动化测试时,你觉得你目前培训的整体的系统性是什么样子的?你如何让他们一点一点的去接受我们必须要学会这样东西?你如何去检查他们目前学习的成果,他们的完成度到底是什么样的?
  8. 你的上级挺欣赏你的,要你接触了核心职位,为什么没有考虑转正呢?
  9. 接口做数据构造时,能否详细描述下你会基于哪些方面的考虑?最后达到了一个什么样的效果?
  10. 造数据过程中,你觉得它的难点是什么?
  11. 前前后后我一直在聊到你在自动化方面一些建设和沉淀,你是通过什么样的一个手段去了解这些的呢?
  12. 你当初为什么从非计算机专业转型到测试岗位的呢?
  13. 你未来怎么打算的?你如何看待测试这个工种在互联网后续发展的行情?
  14. 测开分很多类型的测开,有些偏客户端,有些偏后台的,你觉得你目前这个能力偏向来看在哪个方面更为突出一些?
  15. 排序算法你比较了解哪个?你可以随机挑选一个你比较了解的,讲下它的算法思维,空间复杂度和时间复杂度分别是多少?
  16. 快排和二分查找你有了解吗?分别讲下他们的算法思维,时间复杂度和空间复杂度分别是多少?
  17. 数据结构类型都包括哪些?
  18. 能给我解析下二叉树的结构体吗?
  19. 关系型数据库经常会设置索引,我们设置索引的目的是为了什么?设置索引又有什么代价呢?
  20. ​MYSQL​​ 索引的存储结构是怎么设计的?
  21. 慢查询的原因是什么?如何做慢查询的调优呢?
  22. 讲讲​​OSI​​ 七层模型,每层模型具体干嘛的?
  23. 分别讲讲​​HTTP​​​ 和​​HTTPS​​ 协议?
  24. 说说​​TCP​​​ 协议,三次握手和四次分手,以及和​​UDP​​ 协议的区别?
  25. 说说​​TCP​​ 的流量控制?
  26. 你觉得你是一个什么样性格的人?
  27. 你曾经因为你性子比较急遇到过一些困难和麻烦吗?是如果解决的?
  28. 你未来会有什么打算?如果遇到压力很大情况,你会怎么做?
  29. 如果一切都聊的顺利,你什么时候可以入职?
  30. 简历上的点我都提问完了,你有没有属于个人的一些闪光点,但是三轮面试官都没有给你对应表现机会的一些方面呢?
  31. 我这边没有问题了,你有什么想补充的吗?

四面(HR面)

  1. 你现在愿意看机会的原因是什么?
  2. 你对下一份工作的诉求是什么?主要看哪一些方面的因素?
  3. 你在上家公司的加班强度是怎么样的?
  4. 你在上家是自动化测试工程师,主要工作包含哪些?不同工作的占比是多少?
  5. 你有了解过后续你进我们公司对你的一个定位吗?
  6. 带自动化测试团队转型时,转型前是怎么样的?转型后又是怎么样的?
  7. 有了 UI 自动化录制平台,他们自己去用不就好了吗?为什么还需要对他们进行培训呢?为什么会增加测试成本呢?
  8. 在转型过程中,你优化了什么,才能带他们成功转型呢?你给他们新增了什么样的知识呢?
  9. UI 自动化测试团队一开始有多少人?转型后又有多少人?
  10. 你在公司怎么带团队的?带了多少个人的团队?
  11. UI 自动化测试团队是在什么样的一个场景下由你去带领去转型的?
  12. 你在上家公司时,绩效是怎么样的?
  13. 你毕业后为什么想要做测试呢?
  14. 你目前的薪资是多少?期望是薪资是多少?
  15. 你现在手上有其他公司的​​offer​​ 吗?哪些公司的?给到的薪资是多少呢?给你的岗位是什么?
  16. 让你进来做负责人岗位的话,需要带团队遇到一些困难的过程,你对这个过程是有信心的吗?包括你有没有兴趣去做这些事情?你未来的职业发展是不是也是想往管理方向去走?