灌水 测试开发之路--一个小小工程师的再回首

ycwdaaaa · 发布于 2018年01月02日 · 最后由 wozhiwan1421 回复于 2018年01月04日 · 1863 次阅读
本帖已被设为精华帖!

前言

2017,而立之年。突然强烈的感觉到任性和自由已经离自己远去,责任和重担慢慢袭来。过节的时候朋友圈里都是一派喜气洋洋的气氛。有的人去了日本,有的人去了美国,大家在圈里跟男票女票雪月风花。我在老家陪着老婆孩子恬静度日,陪女王大人做一切她喜欢做的事以弥补我不在身边的缺失。元旦的晚上惜别了老婆孩子,独自踏上了回北京的火车。 这又将会是一段时间不短的分离。自从我们两个认识以来就没分开过,直到小家伙的到来带走了我们的一切任性和孩子气。 看着怀里小家伙的笑脸,我们守护这份幸福的同时不得不选择暂时分开,不得不对生活妥协。希望2018年我们不再分离并且有机会能再任性一把。

当初立的flag

刚才说的好像都太伤感了哈哈。不扯那么多了,我们聊聊工作上的事。刚才看了一遍去年写的总结。感受着当时的想法和心态。也慢慢的察觉到了这一年的成长和变化,这种看着自己变化的感觉还满有意思的。去年的时候立过一个flag说自己要转型去搞devops,想想当时有点天真了,不过好在总算没怎么打自己的脸,这一年在docker,k8s,salt等技术上倒是有了一些成果。先知2.x系列的产品成功的自动化部署在k8s上。我维护的k8s集群专门给开发和测试使用。高峰期的时候扛住60套环境的并行使用。同时也围绕着k8s做了一些比较有意思的事。例如UI自动化的浏览器集群虚拟化在k8s里,Jenkins slave也虚拟化在k8s里。封装k8s的api server在平台上做了一些事情等等。当初要做这些事的目的就是为了提升环境管理的效率,但现在算是超出自己的预想了吧,k8s现在变成了测试体系的根基。变成了我们内部的paas平台。各种测试实践在k8s上开花结果。

当初写的文章

我是社区第7606个会员,不算老人了吧。 16年5月份写下了测试开发之路的第一篇文章,迄今为止有80篇了。算算差不多平均一周一篇, 一开始的时候其实就是想写一下自己的测试框架是怎么设计的,但后来就收不住了,涉及的东西越来越多。 docker,spark,flask,k8s,salt等等还有很多我想写但没有时间写的。深度学习基础系列也已经写到第十篇了。我一直想保持着一周一篇的频率更新文章(虽然中间因为生孩子断过几次更),因为我喜欢技术,喜欢分享,也是给自己立个flag,逼着自己学习,因为第一篇写了,就得接着写下去吧, 写不出来了多没面子啊。同时保持高频度的更新也是向所有人阐明我的态度-- 我是个实干派,我是个持续学习的人,我是个喜欢手底下见真章的人,虽然我不是大牛但我永不气馁,我不会因为别人的诋毁和攻击就停止我自己的道路,我会用越来越多的文章和分享来坚持我的立场。

当初做的分享

17年对我而言也是重要的一年,这一年头一次参加了一些大会演讲,让我从幕后走向前台,讲过docker,讲过机器学习产品的测试。尤其是社区举办的大会,让我认识了很多朋友,也让自己的表现欲达到了满足。我算是个docker和k8s的粉丝,所以其实就算不参加大会,我走到哪也都说docker好,k8s好,测试的小伙伴们赶紧搞起吧。这种由衷的喜爱一门技术的热情被我带到了各种分享和日常沟通中来。有时候聊天的时候一提到docker,我就滔滔不绝,感觉自己像个推销员。 又感觉自己像是来个现场的即兴演讲。2018年,我希望自己能说服更多的小伙伴们加入到docker的大军中来。

17年的成果

也说说这一年做的一些主要的事情吧。

  • 基础k8s集群的内部paas平台瓜熟落地,自动化编译,出包,部署,测试,流程已通。高峰期抗过60套测试环境 ,这个刚才都说过了。
  • 深入产品,学习深度学习原理,终于能更深入的测试机器学习的各种场景了。发现了以前我们无法发现的bug,测试了以前我们无法测试的场景
  • 分布式UI自动化体系也已经成熟,浏览器集群k8s部署,多节点分担压力,自动化健康检查和运维能力都已完善。架构横向扩展,数十个浏览器的并发测试让测试效率提高数十倍。
  • 新规划的质量管理平台进入明年的计划列表,架构已搭建好,基于k8s,python,angular实现。整合jira,jenkins,k8s APIserver,bamboo等平台的API。 目前已写完2.x系列的环境部署部分。
  • 跟随了先知2.x系列产品的完整生命周期,进入先知3.x系列。 最后一个版本我们发现了500+的bug,很多bug其实是以前就存在的,但我们当时能力不足,测试不出来。现在大家表示测试人员比以前更会测了,测出了不少底层的问题。团队也从4个人扩展到了7个人,人数的增加分担了不少压力,也让我们可以更加的focus到某一个点上。
  • 参加了一些大会和分享,有社区举办的,有全国软件测试大赛的。
  • 这一年学了好多技术:k8s,python, flask, salt, angular, es6, spark, deep learning. 希望18年能在这些技术上走的更深更远。

下面是跟工作无关的:

  • 儿子顺利出生,小家伙现在满地乱爬的
  • 亲手给孩子搭建围栏,滑梯,小床,安全座椅,陪孩子玩耍,带孩子看病,履行一个父亲的责任
  • 每周健身4~5天,坚持了整一年了,中间因为生病断过几次
  • 拿10万块给父母在老家买房子,希望他们能选到自己喜欢的房子,二老现在的房子太旧了,下雨还漏水,看着我再北京住的房子,我觉得挺过意不去的。
  • 看了不少书,其中有一本叫《丑陋的中国人》,在上面看到很多自己的影子,要引以为鉴。
  • 跟朋友们相聚的时间越来越少了,应了那句话,人的圈子就那么大,精力放在这上面,就得放下那方面。

这一年懂得先有用处再有机会

我很迷琅琊榜,这些日子琅琊榜2上映后我也加入到了追剧大军中,剧里面郭京飞饰演的濮阳缨要利用萧元启的时候对着他的母亲莱阳太夫人说:人总要先有用处,才会有机会,所以有时候利用二字,并没有你想象的可怕。这句台词我揣摩了很久,建议大家多看几遍这一集,我已被郭京飞圈粉。

17年,我懂得了一定要让自己有用处,机会不会平白无故的砸在你脑袋上。当你证明了自己用处之后,机会就会自己找上门来。我深深的感到了以前跪求一伯乐而不得,而现在机会纷纷而至的落差感。

这一年懂得机会来临前要蛰伏

17年特别能体会到一件事,那就是机会是留给有准备的人的。在机会没有到来之前要蛰伏着,准备着,当机会出现的时候要以雷霆之势拿下它。虽然当时拿到机会的时候并没感觉到,但事后想想,也确实是这个道理。

17年年初的时候测试环境和线上环境引入了k8s。但其实早在16年我就发出了引入容器编排机制的声音了。 但是在当时不论是sre的同学还是老大都不太同意我这么做。 现在想想也是对的,一个是当时团队中没有人有这方面的经验。贸然就开始使用是会被坑死的,尤其我还是个测试人员,确实很少有让测试人员去搞这种级别的基础架构的先例,大家还是希望专业的sre来做这些事情。第二个是团队当时的业务压力也很大,大家都很忙,这件事想等招到人了以后,压力小一点之后再做。 但我内心是真的特别想做这件事,这是个一个技术人打从心底的欲望。 所以我在自己的一个机器里开始用空余的时间偷偷试验。自己学习是比较坑,我花了很长时间才写好了k8s部署环境的工具。自己慢慢地使用,慢慢的踩坑。 所以这也就是为什么17年初的时候我能够把测试环境迁移到k8s的原因了,因为在他们辐射到测试环境之前我就把事情给做了。事情顺理成章的交给我负责,我很开心,我终于有了实践一定规模的k8s的机会。sre们也很开心,因为他们不用管测试环境的这些破事了。 这件事表面是我得到了一个机会历练并证明了自己。但我为了这个机会准备了近半年的时间。机会不会砸到你脑袋上,你要主动把脑袋凑过去

这一年懂得有时候做比想重要

在公司的群里胡大大说过一段话,我觉得特别有道理。意思大概是我们要少一点主义,多一点技术。少一点讨论,多一点实践。多从技术角度找一找解决方案。 当然这句话是有语境的,当时我们陷入了理想很丰满现实很骨感的怪圈。

有些时候,我们好像就是想的太好,做的太少。我们推崇着各种思维主义。敏捷,极限编程,devops,测试开发一体化,测试思维质量化,质量体系自动化等等等等,我们总是构想着各种美丽的蓝图,宏伟的目标。我们穿梭在各种会议和演讲中推行自己的想法。讨论着引入这个这个机制会怎么样怎么样,引入那个做法会怎么样怎么样。 但最后到头来我们讨论的特别好,做起来特别差。

我信奉路是走出来的,不是瞎想出来的,走在路上根据路况不停的改变策略最终才会到达终点,而不是一开始就要设计出一个完美的路线。完美的路线是不存在的,是会被各种现实打败的。我们设计的完美路线是一条直线,直达终点,但是现实的路线是山路十八弯,而且路面上坑坑洼洼甚至还有N个狼群挡着。所以我们得把山炸了,把坑填了,把狼群都宰了再选造一条新路线,在这种中间要保证自己不被吃了,炸了,坑了。 没有这份工程化的本事想再多也是枉然。所以,有时候说一千道一万都不如写出个工具来的有用,把路先修好了,路线自然就明朗了。

这也同样适用在学习上,我这两年总纠结是学这个好,还是用那个好。 玩docker的时候我纠结是学k8s好啊,还是mesos和swarm。 学前端的时候我纠结是angular好啊,还是react和vue。 学python的时候我纠结是flask好啊还是django好。我找了各种文献来参考,后来是越看越纠结。于是索性老子不纠结了,随便找个看着靠谱的先搞,搞了就知道好不好了。所以现在我玩上了k8s,angular和flask,而不是继续纠结而浪费人生。 我就没踩过坑么? 当然不是,我很不幸的在mesos,swarm,k8s中最后选的k8s,我是先踩了mesos和swarm的坑以后才转向的k8s。我们是要避免坑的,但是不踩一下,怎么知道这是坑呢?

这一年懂得领域经验的重要性

以前总想着有一身的技术去哪都不怕,我有一身的测开技能,去哪个公司混不下去。今年明白了自己以前有多天真,技术要结合所处的领域场景才能绽放出价值, 而在某一个领域的积累决定了这个价值有多大。不同的领域有不同的技术栈和使用方式。 我再这里玩的风生水起但把我放到移动领域去我基本就是个菜鸟一枚,越是特别通用的方式在企业中的价值可能越小,因为通用就代表了它放弃了很多的特性。我们才要根据所处的领域做很多定制化和垂直化的东西。这就是领域经验,领域经验的深度决定了技术能力的深度。所以大家看我开始学习深度学习,因为这是我所处的行业。我写的文章从一开始都是通用的测试框架和技术,但到现在都是一些docker,k8s,salt,deep learning等等这些技术的原理,这是因为我终于开始慢慢的深入下去了,慢慢的往底层转移了。同时,文章的受众越来越小了,我也感觉到越来越孤独了。因为毕竟没有那么多人跟我处在一个行业上。 但我却被这些技术迷住了,有一种茅塞顿开的感觉,在学习deep learning的时候,对比着自家产品来操作,理解的更深,从前想不明白的东西现在想明白了,从前不知道怎么调的参数现在知道怎么调了。 到现在为止,我终于有了一种做产品用户的感觉。 之前的自己,就好像是一个不懂写代码人再测试一款IDE一样无力。希望18年的建模比赛能拿到好一点成绩~。 现在团队把k8s融入到了产品中,之前学习的k8s相关的东西不仅仅用在了环境部署上,也用在了产品测试中,这也让我能更容易的理解产品的架构,更好的进行部署测试。

展望2018

2018,请你对这个傻逼好一点。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 13 条回复
Ae4f4b

看了高飞大佬很多帖子,最近的帖子渐渐跟不上了,看到了大佬技术的进展,希望2018 ,能看到更多大佬的技术基础帖(学到并应用了selenide,allure,docker等),感谢2017 大佬的帖子,确实学到了很多很多~

7606
ycwdaaaa · #2 · 2018年01月02日 作者
Ae4f4bbaizhi 回复

好快~

Ae4f4b
7606ycwdaaaa 回复

正好在整理自己的2017,其实自己2018的目标不高,搞懂你2017前半年的帖子内的技术就行~

Ee76af

最后一句亮了

15093

这些技术怎么应用到普通的互联网企业

F073a0

最后一句堵住了大部分喷子的嘴啊😂

2054

赞,向楼主学习

981500

像飞哥学习了

—— 来自TesterHome官方 安卓客户端

104 seveniruby 将本帖设为了精华贴 01月02日 21:40
4863

"踩了才知道是坑"

👍,很多时候,我们都在纠结到底踩不踩,踩哪一个。

715a5b

daolao,虽然有很多看不懂,但还是觉得你很厉害哈哈哈,学习了~~

6109

受益颇深,感谢分享

04af48

写得好好啊
dalao 是一个有智慧的人

Ae221b

喜欢看你的文章

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