持续集成 测 试 开 发 探 秘

爱偷懒的QA · 2018年04月03日 · 最后由 5_shuai 回复于 2018年04月04日 · 1853 次阅读

不知道从什么时候开始,出现了测试开发工程师这个称呼,以前的测试是测试工程师,开发是开发工程师,可究竟什么时候出现的测试开发工程师呢?怎么才算得上是测试开发工程师呢?其实虽然我做测试开发,高级测试开发,以及资深测试开发很久了,但是不能给出一个准确的定义。但是从以往的工作,招聘面试等经验中,可以分析一下,究竟什么是测试开发?
测试开发,其实是要求从事测试工作的测试工程师们要有以下几种能力或是思维:

一,快速学习新知识的能力

互联网行业的技术发展可谓日新月异,这就要求相关的从业人员要具备快速学习的能力。学习新知识,结合具体的业务或是遇到的问题,能快速实施落地。遇到工作中需要使用新知识的时候,能快速学习掌握并能解决问题。其实大家应该感觉得到,工作以后学习东西和当初上学的时候完全不一样的了。我们以学习语言为例,编码语言是测试人员的工具,所以在遇到问题的时候,不能说你会什么语言就用什么语言来解决,应该是什么语言解决起来效率高,就用什么语言。如果这种语言你不会,就需要去学习,此时再像学校的时候,买本书一章节一章节地看,显然是不行的。需要在解决问题的过程中,带着问题去学习,如果一门语言你需要学习上几个月,那就失去了意义。必须能快速学习,积极解决问题。

二,使用知识解决实际问题的能力

不管你是学习语言,测试工具,测试框架还是各种自动化测试,必须有解决实际问题的能力。从平时工作中遇到了难以解决的问题,然后提炼出通用的问题解决方案,使用代码技术手段去解决它,这个才是正途,不能为了学习而学习。比如说学习自动化测试,首选根据自己的业务需要,调研一下接口自动化,服务自动化,页面自动化和 App 自动化哪个才是能解决问题的方案;然后围绕着工作需要,去选择测试框架,设计自动化用例架构,用例管理方案,用例集执行策略,报告及日志管理,问题分析等等,而后再去做持续化集成。
通过解决具体的问题,来去引进和学习相应的技术,一是能得到领导的支持,获取时间和资源;二来能增加自信和获取相应的肯定,报酬等等。自己一个人学习的时候,没有任务就没有动力,最后变成了调试一下示例,慢慢的就是只看书,最终是从入门到放弃。

三,全面考虑问题的能力

我们通过了快速学习,能从解决问题的角度来提升自己,并可以将技术落实到实处。这个阶段会持续一段时间,此时你应该处于测试开发的初中级水平,如果想往高级上发展,就需要培养考虑问题的全面性。但是往往这方面不太容易提升,一个人的思维习惯,思考高度等等很难改变的。举个例子来说明一下:给你一个全新的 App 让你来设计测试方案,你能考虑到哪些儿?App 一直以来就有 “胖服务端,瘦客户端” 一说,所以我们在测试的时候,需要引入接口或是服务的自动化测试,以保证后端接口或是服务的功能测试,功能回归和监控;同时分析接口的使用场景,来确定是否需要引入压力和安全测试;App 客户端需要手工测试进行功能和兼容性的测试,借助于工具来进行 app 压力测试,使用 Appium UI 自动化测试来进行用户级的自动化测试与回归。同时,根据以后的迭代节奏和业务发展的需要,可以考虑引入持续化集成等等。

四,新技术敏感度与技术危机感

一个优秀的测试开发人员,需要对社会上出现的新技术保持高度的敏感。此技术出现后,会影响到哪些方面,如果影响到了开发人员,测试技术和方案是否也需要相应的改变?如果能直接使用到测试工作中,应该如何实施等等。同时,自己也要时刻保持着技术危机感,不能学会了自动化测试,就沾沾自喜,认为自己已经是测试开发了,或是做了持续化集成就是高级测试开发。技术更新换代相当速度,如果不时刻有危机感,不断地提升自己,你引以为傲的技术马上就会变成被人不屑的东西。在面试的时候,四处碰壁,那种失落感是可想而知的。

五,团队协作与共同进步意识

一个人的英雄主义的年代已经过去,现在做什么事情都是团队协作的。所以一个优秀的测试开发人员,要有团队协作能力,能与团队中的任何人合作共同完成工作。同时,如果你的技术能力较强,要有对团队人员进行培训,大家共同进步的意识。因为你一个再强,也不如一个团队强,通过培训自己的团队成员,大家共同进步,才能更好地完成工作。一个人默默发展,不与其他成员交流,一意孤行,到最后不管你的贡献再大,能力再强,公司也会为整体而丢弃你的,千万不要让这种情况发生在自己身上。现在的企业招聘的时候,也会很重视这方面的考察,不要因为自身的原因而影响发展。
测试开发不仅仅是职称,而是社会对测试人员的一个要求和认可。你从事测试工作了多少年,应该达到什么水平,具备什么能力,解决问题的思路和方案是什么?如果你达不到这个水平,即使你说自己的高级测试开发,照样让你面试通不过。社会不相信眼泪,互联网相关行业不相信工作年限,你工作的时间久不能说明你能力强,同样的工作重复多少年都没有用。个人见解,亲测有用,希望能帮到你!

共收到 14 条回复 时间 点赞

good~
but why not markdown

有简单的总结过
测试:质量
测试开发:质量 + 促进生产力
质量保证大家做过测试都知道的了,促进生产力就很多东西可以说了,对应楼主的点 2

我的理解是 质量 + 效率 。

楼主说的第二点很重要,不解决问题不产生价值。解决的问题可以是质量上的提升,也可以是效率上的提升。

陈恒捷 回复

相互交流和学习嘛

楼主,你会几种语言。

5_shuai 回复

编码语言:Python,Java,Shell,Php,C#,C++,C,VB,前端相关:HTML,XML,CSS,JavaScript,jquery,Bootstrap,数据库相关:Mysql, SQL Server,MongoDb,Redis,Memcache;服务器相关:Nginx,Tomcat,IIS,操作系统:windows 系列,Linux 系列,Mac 系列。应该差不多了,其实有些儿我也不记得了,反正遇到问题的时候能快速解决,新的知识一两周就能使用了。

很精辟的文章,赞

对于职场新人,跟人觉的最重要的是跟对人,说难听点是站好队;现在的公司,曾经来过阿里百万年薪的的开发,
确实不是一般水平,不是一股脑的给你下任务,是自己以身作则,早到晚走,你有问题,帮你解决或者给你个方向,
带着 rd 们一起学习;
如果你跟对了领导,他会知道你的问题在哪儿,带你走正确的路;但更多的领导,是技术不如你,
眼光比你窄,在公司做时间长了,在公司内部混的熟而已;

对于长期被这种情况坑害,导致大龄无能测试的测试人,无解,或是很难;

hellohell 回复

其实这种情况在职场很常见的嘛,遇到好的领导是运气,可是我们也不可能一直运气都那么好嘛!要有自己的规划,根据自己的目标提升自己。只有自己具备了一定的实力,才有更多的选择机会嘛,领导不好直接换工作嘛,或者找机会自己当领导。不能一边抱怨领导,一边又不思进取,这就不好了!

爱偷懒的QA 回复

楼主会的非常多,膜拜,请教一下,这些编程语言以及数据库是在工作之外自学的么,貌似公司里用到的也不会这么多。我本以为会了 java 和 python 就差不多,在我遇到一个面试考 c 语言的时候,被打击了一番,本来就不是科班出身,在面对这些工作之外的技术,该如何规划自己的学习路线,能否指点一二。

5_shuai 回复

肯定需要自己学习了,如果只依靠公司业务来学习的话,那就仅限于少数东西。其实这是一个过程,先以扩展工作范围为主,比如说学习 java,python 以便学习自动化测试,在找到不错的工作后;再去向着测试开发学习,此时就需要前后端相关的知识了。先规划好一个提升的主线,然后围绕着这个主线,分阶段地去学习,前期不可贪多,防止打击自信和导致思维混乱。

哎,想起领导问我为什么要离开。我跟领导说以前我一年多经验做了 9 年测试,以前太荒废了,现在转传统的后端架构太浪费时间了。
这几年要出来拼一下,看看不一样的世界,看看自己的技术上限到底在哪。。。

magicyang 回复

业界技术发展的太快了,不学习提升,就会被时代抛弃!

仅楼主可见
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册