前言

3个月前在测试活动的时候写过一篇总结, 里面总结我过去4年的在公司在社区的事情。 所以本来是不打算写总结了。 不过那篇文章写了不少与工作无关的事情, 也没有聚焦在2019年。 所以想想正好后天部门就要做年终总结了, 我也就趁着这个机会写一写,权当是演讲稿了。

k8s技术栈

就先说说我最爱的k8s吧, 我在很多场合都表达了我对k8s对容器生态的热爱,我也把16年第一次接触docker当做我技术生涯中最重要的里程碑之一。 我在公司内推行的技术方案几乎都与k8s有关。 我画了一个容器技术的成长路线图

从图上可以看到,我们每一年都会有新的成长并成就新的项目。 我简单列一下我这边主要利用到了k8s的解决方案。

恩,主要的就这些了。 我再自己思考的时候其实也发现了一个规律,就是在上面图里写的。 很多时候这些解决方案并不是我们事先规划好后才去学习实践的, 而是在更深入的了解容器和k8s后才发现,原来我们可以利用k8s的能力来做这些事情。 所以我有一个很深的感受就是--技术创新取决于对技术理解的深度。 早期觉得k8s只能解决解决部署问题,后面才知道原来k8s可以做的远远不止这些,以前想不到要做这些,完全是因为我对k8s的理解不够深。 好了这里就聚焦的说一说稳定性测试(也叫浸泡测试)和混沌工程吧。 因为他们两个是我今年主要的成绩了。也是我在更深入的理解k8s的机制后在去年年末开始开发的方案。

上面着重说了我认为我今年对质量部做的最主要的贡献了, 也是我认为自己这一年在技术上最大的亮点了。 为了深入了解k8s今年我个人全面拥抱了golang语言, 学习容器的各种知识,k8s的内部源码。 这也是我在19年技术上最大的成长了吧。 以前的我是熟悉k8s,能在很多场景利用k8s的知识解决问题, 但我并无法扩展k8s的能力。 而19年我学会了编写k8s operator 和admission webhook。 前者可以自定义k8s资源对象并通过自定义控制器来操作k8s, 比如玩过k8s的都知道k8s的那些预制的资源对象,比如Pod。 而我则可以自己定义一个叫PodChaos的对象提交给k8s,并且我的自定义控制器可以接收到用户发送给k8s的这些请求做处理。 而admission 更像是一个拦截器, 它本身是一个https服务,但我们把它注册到了k8s的api server中。 它可以拦截用户发送到k8s的请求并加以篡改,注入我们想要的任何逻辑。 上面说的稳定性测试和混沌工程其实就是用到了这两个方案。

自动化测试体系

恩, 到了今天,我们形成了自己一套体系出来,大概的样子就是下面这样。

这个图几个月前画的了,有些数据已经不准确了(我也懒得更新了哈哈哈) 测试用例当时错误的只统计了UI自动化,现在加上其他的测试类型,估计大几千了吧。除了业务层和中间件层,下半年接手了最底层的算法的测试小组。 所以其实还应该把这些算上。 这些算是质量部成立4年以来积攒下来的家当了, 当然这些是大家共同努力的成果, 我没有打算一个人冒领这些功劳。今年我们努力让UI自动化突破了2000大关, 通过率还不错, 更新完脚本后一般在90%~95% (有些场景由于k8s原因实在是稳定不了)。 这2000+ case用100个浏览器运行也需要3个小时时间(我们业务里各种机器学习模型算法,大数据任务,一个case动辄跑半个小时,1个小时的都是不奇怪的)。直接让用人工测试需要至少1周的全功能回归测试缩短到了1天。而我们又有各种兼容性测试和升级测试, 比如兼容各种浏览器版本,兼容各种hadoop集群,兼容各种数据库版本,操作系统版本,这些都是需要运行大量的测试的。 引入UI自动化为我们提升的效率是无法估量的。 这算是我们对行业中大范围的关于UI自动化的质疑做的最有力的回击吧, 我一直是想为UI自动化正名的。 同样今年质量部在中间件层和底层的测试也都遍地开花, 测试用例数以千计。 只是我和我的领导都觉得仍然不够, 明年会开启产品组件化拆分项目, 我们会加大投入底层的测试粒度。

从上面那个图其实可以看出来,整个自动化体系大部分都是在k8s的支持下的, 这是我针对k8s异常的热爱导致的~~~

产品研发

10月份的时候有机会轮岗到了数据智能部,这算是我第一次正式参与到了产品的研发中。 是一个用来为用户生成特征抽取规则的小组件,并不难。 直到前几天还在解自己的bug~~ 跟我一块开发的同事(也是QA) 还说呢, 自己开发自己测试给自己提bug,感觉好奇怪哈哈哈。 这算是一个小插曲吧, 因为功能并不难,也没花多久就结束了,记忆中好像就1周多? 真是有点忘了。 但是第一次做开发职能还是值得提上一笔的。

产品设计

年中的时候有幸被大家选中,负责设计数据治理专项的产品解决方案,算是第一次跨界做产品经理了, 当时很用心,做了很多调研和沟通。 写了3万字的文档。 可以说这是我今年第二用心做的项目了。 当时动力很足, 只可惜虽然方案被采纳了, 但是由于人力问题,我们总是有更高优先级的事情。 所以这个项目一直拖到了20年也没能落地。 感觉遥遥无期,算是今年最大的遗憾了, 不过人生不如意十之八九, 哪有一帆风顺的。

工作上其他的事

其他的事都不算大,边边角角的也就不想说了。无非就是一些日常项目的跟进。 唯一可以说的就是接受了算法团队的测试,带着两个人一起吭哧瘪肚的测试自研算法。不过也主要是他们两个在做了, 我算是打酱油,就前期调研了一下方案而已。

Testerhome社区

这篇一开始完全是想写工作上的事,不想掺杂其他的东西。所以社区和生活上的事就没仔细说, 这里还是提一下吧,毕竟社区对我的影响也是很大的。 19年参与了社区的北京大会和深圳大会,分别是高新专场和AI专场的主持人,也参与了幕后的准备工作。 索性没掉链子,没给大家丢人。 20年的北京大会我们也在准备中了。 我也推荐了我的同事报名了混沌工程和k8s相关的议题。希望能入选吧。

尾声

总的来说19年的收获也不算小, K8S能力有了大的突破, 各个自动化项目也都有声有色的。 还进军了研发和产品领域。 所以我的标题写的是进击的2019,意思是今年突破不小(而且我是进击的巨人的漫画粉~~哈哈哈)。 过去每年我都要求自己有新的突破,学习到新的技术或者能力。 但到现在我还没有找到20年主攻的方向(除了组件化拆分)。 希望20年末做总结的时候我依然能跟我自己说这一年没有白过哈~ 另外祝大家过年快乐。


↙↙↙阅读原文可查看相关链接,并与作者交流