入行测开,马上就要4年了。创业公司待过,大公司也待过,工作这一路走来,一些心得,转变,职场体会,早就想写出来分享一下。这个历程包含了技术的提升,工程师的素养和对这个行业的点滴感悟。

自动化测试vs测试开发

记得刚入行那会,我的title是自动化测试工程师。那时对这两者的区别还没那么明显,面试时候两者的问题也都比较类似。当时招聘“会写代码的测试人员”比较偏向称之为“自动化测试工程师”;不过现在很多企业的招聘都变为“测试开发工程师”了。
  究其概念,其实自动化测试工程师更偏向于业务方向的效率提升;而测试开发则更偏向于基础架构方向的效率提升。打个简单的比方,测试开发工程师产出的框架可以认为是父类,自动化测试工程师按业务线不同,可以理解是继承自父类的不同子类。

测试开发到底在做什么

测试开发,最早起源于《Google软件测试之道》这本书,里面第一次提出了SET(Software Engineer in Test)。不过不同的公司称谓也不一样,像国内很多时候还是统称为QA。
  那么SET具体在做什么呢?在我看来,SET偏向于测试部门的基础架构开发和流程的设定,比如前面说到的自动化底层框架搭建,或者改写一些开源的类和方法,去提供给组内其他的测试人员使用;再比如,我们所熟知的CICD,单元测试or集成测试的覆盖率统计,以及自动化部署发布的脚本,都可以归到测开的工作范畴里;还有,我们常说测试也需要新技术的引入,现在常见的Docker跟k8s也在逐渐普及到测试团队,因为测试最大的一个障碍是“测试环境众多”,而容器化可以很好的解决这一点。
  当然不同的公司情况多有差异。一般来说,越是大型的企业,它的测试流程越规范,测开的作用也就越明显,对应的产品测试效率,也就越高。

质量保障的终极任务

我相信现在很多测试工程师,其实都有足够的共鸣,就是“我们不是测bug的,我们是产品的质量保障员”。但是很多不成熟的企业和团队还是会有误区。比如,bug数目确实可以代表你工作的产出,但如果你的团队或领导把bug数目作为唯一指标,我觉得你是时候考虑跳槽了。质量保障,在我看来涵盖很多东西,是一个很庞大的概念,大概可以包括四点:
  1.正确的流程
  现在很多都是敏捷开发模式了。在需求评审阶段,测试同学参与并对需求or产品有一定的理解和初步的测试计划
  2.基础的质量
  开发代码的规范度,基础代码的走查,监督单测覆盖率的稳步提升,毕竟基础决定上层
  3.业务的覆盖
  确切可以拆分成服务接口的测试/前端UI测试/性能测试/稳定性测试/系统集成测试/回归测试,这一点可以说是测试同学交叉最多的地方。
  4.产品终端的保证
  协同制定灰度发布策略/规范线上的操作/了解用户使用过程中常见的风险点/制定止损策略
  简单来说,测试保障质量,质量决定产品。测试应该是对需求,对产品逻辑最最了解的那个角色。所以,只要关于产品变更的,测试同学都应该下意识去跟进。
  而以上的任何一点,都可以深究,去做的更好。

工程师文化

我相信再牛逼的测试开发,也要从业务抓起,你不了解业务,不了解一些开发代码或者的话,有些东西也是扯淡。业务测试在我看来一点都不low,反而是一个很考验人的事情。不管是测试工程师也好,测试开发也好,我们都是工程师,都服务于产品。既是工程师,就该有工程师的素养,我认为完成一个好的测试任务,大概需要同时做到以下几点:
  1.对测试结果负责
  我们是产品的最后一道关卡,我们对产品发布与否有绝对的话语权,同时,我们也要对自己的测试结果负责。
  2.测试到最终场景
  现在很多产品链路都很长,这就需要测试同学主动去塑造自己产品的大局观,而不局限在某个单元的测试,不考虑全局,有时会造成致命的线上灾难。
  3.对日志敏感,能够精准定位问题
  如果开发流程足够规范的话,有完整的日志系统,其实定位问题并不难;我们每发现一个bug,都可以尝试去追溯它的根源,时间久了,你会对工程代码或逻辑摸的很清楚,这对你接下来的测试工作简直如虎添翼。
  4.对相似问题和漏洞的归纳
  不管是前方客户的问题,PM发现的问题还是自己的bug库,经常归纳可以节省很多时间,会让你对自己的工作产生一种“直觉”,但这种直觉有时很准哦。

面对不同的产品该怎么办

开发技术或框架可能是通用的,但测试可能会随着产品形态而产生“独特”的调整,我称之为“测试形态”。比如,现在的人工智能测试,因为每次模型迭代,测试所需的数据量很大,你用传统的并发去请求可能就不行,那你可能就需要学一些分布式技术;再有就是云服务测试,这种绝大部分是纯后端服务测试,或者SDK测试,没有前端去assert你的预期,那么你就需要足够熟悉curl命令,网络命令等,甚至去生成一些shell脚本,来执行你的测试请求;还比如手机端的测试,那它的兼容和稳定性呢怎么保证,则又是一门学问;最后还有比较火的智能硬件,盒子啊TV啊这些,怎么保证它的质量,则又是另一种路子。
  但,归根结底:测试思想不会变,以不变应万变。

总之,测试是一门大学问,它入门门槛并不高,但是越深入,你发现自己了解的越少。作为一个职场人员,不随业务转变而转变,有自己的沉淀和技术底子,才能更长久。而测试开发这个行业,鄙人认为未来也会愈加重要,它是衔接产品/测试/开发的一根纽带,它在背后默默支撑着整个测试体系有条不紊的进行,某种程度上说,
算是一个隐者吧。

微信搜一搜**【程序员阿沐】**关注这个文绉绉的程序员,关注后回复【面试】有我准备的一线大厂面试资料和简历模板,希望大家都能找到心仪的工作,学习是一条时而郁郁寡欢,时而开怀大笑的路,加油。如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。如果有幸我们江湖再见!

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以810119819,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

测试开发工程师成长心路相关推荐

  1. 测试开发工程师成长日记018 - 测试面试必备题记录(持续更新)

    技术模块 一.在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner进行测试? 建立测试计划,确定测试标准和测试范围 设计典型场景的测试用例,覆盖常用业务流程和不常用的业务流程等 ...

  2. 测试开发工程师成长日记009 - 环境排排站:开发环境、测试环境、生产环境、UAT环境、仿真环境

    一.五种环境 项目部署环境一般可分为三种:开发环境,测试环境.生产环境,对应过程为:开发->测试->上线: 细分生成环境又分为生产环境和仿真环境,具体概念如下: 而UAT环境指的是用户接受 ...

  3. 测试开发工程师成长日记010 - Jenkins中的CI/CD/CT(持续集成构建/持续交付/持续测试)

    CI(Continuous integration,持续集成) CI(Continuous integration,中文意思是持续集成)是一种软件开发时间.持续集成强调开发人员提交了新代码之后,立刻进 ...

  4. 测试开发工程师成长日记016 - 关于提测的那些事

    1.提测预演 背景:前期存在提测质量低,提测后bug量较多,需求遗漏等情况,现增加并规范落实,提测预演环节,增加预演是否通过的相关标准. 目标:提高项目/迭代提测质量. 预演流程: 提测标准: 完成并 ...

  5. 测试开发工程师成长日记014 - linux常用命令day06

    一.其他命令 1.tar 作用:tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户. tar [主选项+辅选项] 文件或目录 主要参数 使用该命 ...

  6. 测试开发工程师成长日记011 - linux常用命令day03

    一.系统管理命令 对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心.熟悉了Linux常用的文件处理命令以后,这一讲 ...

  7. 测试开发工程师成长日记004 - linux常用命令day01

    Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统, ...

  8. 测试开发工程师的概念怎么来的?

    测试开发工程师的概念怎么来的? 这个名词一开始并不叫测试开发,只是说懂技术,懂研发的测试工程师,后来这个词又很长,再加上以前测试开发曾经在老的时代是有一个对应的词的,从微软的时代的时候,微软就把工程师 ...

  9. 测试开发工程师mac电脑常用软件推荐

    选对工具可以提升一倍效率,节省时间. 下面推荐一些本人常用到的一些软件,希望对大家有所帮助. [效率管理] mindmaster 思维导图(推荐) xmind 思维导图 Evernote 印象笔记 O ...

最新文章

  1. 企业怎样管理员工才会更有效?
  2. 软件工程师技术面试一面真题
  3. PIC单片机入门_输入输出端口详解
  4. OAuth 2.0 简介
  5. 关于待机、休眠、睡眠的区别和优缺点
  6. 快慢指针:141. 环形链表(判断是否存在环路)
  7. 【转】C#获取当前日期时间(转)
  8. 编译器优化对齐(字节对齐)
  9. 51nod-1131: 覆盖数字的数量
  10. 2、HTML 元素属性
  11. STL基本操作及其运用
  12. Qt Data Visualization 3D可视化
  13. 51单片机实现计算器程序
  14. 从40,000到320,000美元,揭秘大型科技公司薪酬细节
  15. 验证邮箱的正则表达式
  16. Android启动活动用什么方法,Android - 使用intent uri从命令行启动活动
  17. Plugin工具类-Unreal4源码拆解-UnrealBuildTool功能流程解析
  18. html页面回退,HTML5小结
  19. Python编程PTA题解——查询水果价格
  20. 【mysql】位运算符

热门文章

  1. Lecture 3 Bit Hacks
  2. 安卓Android校园综合服务系统校园帮app
  3. 正文样式设置必看:你知道最好不要直接在正文样式中设置首行缩进吗
  4. 微信小程序设置背景图片
  5. java poi 填充单元格_POI操作excel表格(建立工作薄、创建工作表、将数据填充到单元格中)...
  6. git 删除添加的远程地址
  7. 【YOLOv1原文+翻译】You Only Look Once Unified, Real-Time Object Detection
  8. php资产管理,php固定资产管理系统
  9. Fortran基本知识
  10. Android中使用apk-parser解析apk