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

孙高飞 · 2017年01月02日 · 最后由 wuliguaiguai 回复于 2020年02月05日 · 4042 次阅读
本帖已被设为精华帖!

关于背景

学生时代
  • 高中:精力都放在魔兽 3 冰封王座上了,种族 UD,全校第一。各个班级和周边网吧都挑战遍了。结果当然是不学无术的我高考失利,上了三流大学。
  • 大一:因为酷爱电脑游戏报了计算机系。大一期间同样不思进取,打了一年的魔兽世界,60 年代,全服第三工会中第一 DPS。
  • 大二:这一年幡然悔悟,痛定思痛,洗心革面,痛改前非,重新做人。花了一年时间把英语 4 级过了 (底子太差。。。花了这么久)。
  • 大三:这一年学 java,学校跟一个培训机构合作在学校办班。我跟一帮同学报名并组了个项目组,接接活,日子挺愉快。当时对编程入迷,好像当初玩魔兽一样入迷。现在想想是入对了行业了,放到其他行业我都不能这么上心。
  • 大四:通过培训机构来北京实习,但由于学校和培训机构的利益纠葛闹翻了,学校挡着不让来。通过别的方式很难找到实习机会,毕竟我们的学校说出去都没人听过。所以我们几个同学大晚上的跑到导员家里送礼,好歹换来了导员睁一只眼闭一只眼的结果。我们一行 5 人搭上了北京的火车来到了文思的贫民窟 (我们的戏称,因为给实习生住的宿舍实在太破,跟贫民窟似的)。大四这一年就是打杂,跟测试没啥关系,好不容易求爷爷告奶奶的混进了项目组,也是做的微软的外包,做本地化测试,技术含量为 0。

大学期间貌似挺失败,苦哈哈的大早上起来去图书馆学习,到头来学业也没啥起色,恋爱也没谈一个,实个习都这么波折。但我都认了,高中没好好学习,大学就得还债,我自己种下的因,就得吃自己得下的果。

入行

毕业后待在了文思做微软外包,之后辗转各个欧美外包项目,从手动测试到自动化,从 c# 到 java。后来到了一家小的外包创业公司何易达, 是文思的一位高管出来成立的公司。给美国的一家叫 ariba 的公司做外包项目。头几年就这么在外包中混混度日了,欧美项目很清闲,老外没有加班文化,挺养人的,这几年干下来身体也没落下什么毛病。也就让我有时间去研究自己喜欢的东西。那几年技术上没什么进步,外包么,核心的东西不交给你做的。不过由于都在做欧美项目,所以见识涨了不少,我见识到了很多优秀的人,见识到了微软,google 等巨头的工作方式,我现在很多自动化的理念是跟他们学的。同样借着出差的机会,公费旅游了很多地方。我见过了首尔地铁的四通八达,旧金山金门大桥的如梦如幻,几乎被印度人包围了的硅谷,牛在街道上横行无阻的班加罗尔,蓝天白云的加利福尼亚,洛杉矶球场中三分战术还在雏形状态的勇士 vs 快船。我知道了原来加州牛肉面真不是加州的。外国女人真的是不做月子的,程序员真的是可以干到 60 多岁的,真有城市别说雾霾就连大街上一层灰都没有的,在 outlet 里一麻袋一麻袋买奢侈品的真的全是中国大妈。再一个就是英语口语终于锻炼出来了,我这个英语 4 级水平的小垃圾终于一点点适应了印度人的叽里咕噜式的发音。记得一开始每次开会都是老大帮我翻译,只要是我跟客户开会老大都会跑来帮我。那时候挺感激他的,我把会议录音下来一遍一遍的听,实在听不懂了就去问老大。现在能看懂技术文档,多亏了那时候打的底子。所以虽然那几年虽然技术上没啥长进。但我也不后悔。

波折

事情发展的很戏剧化,本来我就这么在外包公司休闲的呆着,一人吃饱全家不饿。但是后来我恋爱了,甚至开始谈婚论嫁。 那时候突然压力倍增。在北京才 1W 多的工资,我实在是没什么底气。外包这行还没什么年终没什么福利,公积金和社保都是按北京最低收入缴的。所以那时候有点焦躁,虽然媳妇没说什么,她不太在乎我挣多少钱。但我也不想就这么混下去。 后来我联系上了同学,就是之前说的我们一行 5 人来北京闯荡中的一个。 他把我介绍到了一家互联网公司面试,也就是 58 到家,一家让我又爱又恨的公司。我爱它因为它带我进入了互联网,让我有机会实践自己在外企学到的东西,让我开发一个又一个的工具和框架。它给我犯错的机会,给我成长的时间,让我认识了很多优秀的人--58 同城技术委员会的主席沈剑大哥还有他下面的基础架构团队,后来我有幸也到他手下干活,受益匪浅。那是一段爆发时期,天天以肉眼可见的速度成长。恨的是我也同样见到了测试这一行业的黑暗和堕落。政治斗争似乎就是这家公司测试团队的主旋律。我的直属上司想吃掉其他几位测试老大,为了她的位子整日勾心斗角,背后阴人,笼络人心,抢占地盘,打压下属。整日不事生产,到处刷存在感乱指挥。出事以后推卸责任,让小弟背锅。只是她野心虽有,情商实在有点低,格局实在有点小。加之其他的测试老大也不是省油的灯,互相见招拆招下,她倒是日渐式微,我临走的时候她手下只有 2 个人了。那段时间很快乐也很痛苦,快乐的是我正在飞速的成长着,痛苦的是这种工作氛围简直是在慢性自杀。天天都在跟自己顶头上司吵架的人物也就我了,貌似她气走了那两个测试架构师以后主要火力就由我承担。那是一种在跟白痴吵架的无力感。是一种完全是外行人物却在瞎指挥内行人的愤怒。手下的人没人服她,要技术没技术,要业务没业务,要管理也没管理,就连工资都比我们低。我们私底下讨论的时候一直不明白这么一个人怎么做到这样的位子的。58 果然是一个神奇的地方。我热爱这个地方,这里也有我舍不得的人和事,但是这里的测试团队实在不是做事情的地方,我也是寄人篱下,人轻言微。多番努力无果后,我也就萌生了离职的想法。 后来她看我实在是不听话,慢慢就架空我了。我也就顺势找下家四处面试,在今年 2 月份拿了年终奖就离开了那里。

沉淀

离开 58 前在各个地方面试,拿了微店,美团,和第四范式的 offer。其实跟第四范式的缘分也挺戏剧化的。本来再隔两天就要去入职了,后来在猎头的推荐下,冲着戴文渊的名字去试试。面试的时候就感觉这是一个能专心做事的地方,每个面试官都透露出技术人的强大功底,对我想在 58 推行的持续集成十分认同。最后跟戴神聊过之后,当场就决定来这了,戴神一点不拖泥带水,直接让我第二天来上班。HR 速度也很快,下午面试,晚上发 offer,一切都充满了效率的感觉。当时公司刚创业 1 年多点,头一年没有 QA,都是开发自己测试,所以来这的时候测试几乎是一片空白,需要从 0 做到 1,测试流程,基础服务和管理工具,接口自动化,UI 自动化,docker 环境部署自动化,持续集成等等。桩桩件件都是我自己一行代码一行代码,一篇文档一篇文档磊起来的。虽然看着工作比较多,但都非常顺利。开发团队十分配合,帮我推流程,帮我写脚本,耐心的给我讲解产品的每一处架构。有些东西不用我说,人家都懂。我深深的觉得跟优秀的人在一起共事是多么幸福,不用苦口婆心的说服别人持续集成的效果,自动化的便利,流程的规范,单测的重要。在他们心里,这些都是很自然的。这段时间像是打了鸡血的战斗鸡,即便是在家,有时间就打开电脑学习,工作。 因为身边的人都很优秀,不会的东西又太多。 人工智能这个方向很难,非常难。招人的时候最担心的是对方可能在这干一年都不知道这产品在干嘛。我花了很多时间在学习机器学习的概念和原理,可到如今也依然是门外汉。前段时间脉脉上有人提问哪有 AI 的培训机构。我们都会心一笑,这玩意要是能培训速成那我也就不那么痛苦了。现在团队中也只有 4 个 QA,不过一切都往好的方向发展,很多东西不在再是 0 到 1 的过程。而是 1 到 100 的过程。这一年不再像在 58 的那段爆发期,一切显得平稳起来。这一年沉淀了很多,不再那么杂乱无章。 这一年也沉稳了很多,不再像以前那么毛躁。

关于分享

我以前只是个看客,看着别人的文章,别人的分享,别人的技术来充实我自己。今年 5 月份的时候突然就想写点什么,我也说不出来为什么,当时就突然有一种想写什么东西的欲望。可能因为那一点虚荣心,可能因为想装装逼,可能因为帮助别人后那一点点的成就感。 当时的动机我也说不清楚了,反正《测试开发之路》就这么诞生了,一直坚持到了现在。今天看着 7 个月来 30 多篇帖子,心里还是有点欣慰的。中间也有过波折,有过撕逼,有过不成熟。有人支持,有人反对,有人诋毁,有人谩骂。不过我也当做事成长了过程中必然的结果了。

关于测试

  • 最近这一年我越来越重视业务,回归业务,拥抱业务。直到现在我都是手动测试的一员。我们不区分手动测试和自动化测试,我们都是业务测试。让业务逼着我们优化工具,让业务逼着我们把自动化做的更好。
  • 最近这一年我越来越务实,不再追求华而不实的测试平台,不再追求貌似高大上的录制回放和关键字驱动框架。回归本质,一行一行的写代码。跟着我一起做自动化的人,必须是能写好代码的人。我不需要不堪一击,动不动就崩溃的自动化。 我需要的是稳定,高效,应变样样不俗的能加入到持续集成的自动化。因为我见过 case 规模成千上万的 UI 和接口自动化。到了这个数量级的时候我知道录制回放和关键字驱动是多么不堪一击,我知道这时候运行稳定和性能是多么重要。
  • 最近这一年我越来越从全局看事情。事分主次,低优的给高优让道,低风险的给高风险让道。不再一头扎进一个技术里不出来,不再遇事一头热的不管不顾。所以到现在我也没弄出多少花样来。UI 自动化,接口自动化,环境管理自动化,持续集成自动化。除了这几样基本上没啥了,没有什么静态扫描,自动遍历,自动生成 case,这个平台那个平台的。一方面是产品业务和架构原因,有些东西不一定是适合这个业务的。 还有就是他们都在排队呢。开玩笑,前面说的那几位大爷还没做成熟呢,哪有那个人力管你们。
  • 最近这一年我的技术情怀越来越少,不再是看到这个技术高大上就搞,那个技术逼格满满就做。只选择对当前业务最有用的那个,最适合当前团队的那个。人总得现实一点,有时候项目需要和技术情怀是对立的。我们想更有竞争力,所以想学这个技术,那个技术。可这个技术那个技术的可能不适合你的项目。可以业余时间自己学习,但在项目里乱用就是不负责任。

关于责任

两年以前我还只是个只管开发测试工具的普通工程师,既没业务压力,也不需要对团队负什么责任。而现在我整天想的是怎么减少人力成本,怎么提高产品质量,怎么设计团队发展路线。挣得钱变多了,责任也就越大了。有些时候眼界挺重要的,我也不得不说 BAT 出来的人确有过人之处。小公司和龙头企业的员工看到的东西,确实是不一样的。 而当你承担了责任以后就得做好它,每做一件事,每投入一个人力都得思前想后,这个投入是否值得,这个投入是否有产出,这个投入是否是当前阶段该做的。因为人就那么几个,用一个少一个。没人告诉你该怎么做了,而是你决定该怎么做了。所以我现在做每一件事都想着要有产出,有产出是对自己负责,对项目负责,也是对老大负责。没有产出是在作死,是在瞎搞。什么是瞎搞呢,在工程项目中偷偷玩实验性技术是瞎搞,技术情怀泛滥是瞎搞。想学习,想提升可以在业余时间学习,但在项目里乱搞就是不负责任了。我记得我现在的老大对我们说过一句话,意思是说大家来创业公司都是有点追求的,创业公司也是最能给你机会给你权利做一些事情的。所以珍惜你手上的权利,做每一个决定前要思考清楚,这是你的责任。现在我总能想起这句话来,时刻提醒自己,别再跟以前一样,生产出一些看似高大上实际上没什么卵用的东西。

关于自动化

这一年我做自动化越来越看重节省成本,越来越看重提升团队工程化。我之前就说过做自动化的时候先别老想着发现的 bug 多少。要先想着自动化能为你节省多少成本。我们说的自动化不只是自动化测试,我要自动化的东西很多。我总能看见有些项目的自动化处于很奇怪的状态。搞自动化之前需要这些人,这些天。搞了很久自动化以后还是这些人,这些天,甚至为了搞自动化还加了人。自动化的实力不济也导致了根本没法持续集成。这是很危险的状态,没尽好责任的状态。这里面的原因很多,有的是因为自动化质量不高,人为维护成本太高。有的是没分清楚主次,在低优先级的事情上搞上了,高优的投入不够,结果项目还是堆人的状态。 不管什么原因,这都是一个恶性循环 -- 技术投入不够解决时间和人力成本 -- 项目堆人加班 -- 加班太多没时间做技术改进 -- 技术投入不够解决时间和人力成本 -- 项目堆人加班。一如之前所说,恶性循环,你更没时间去做自己喜欢的技术来改进项目质量。我们做自动化的主要责任之一是节省人力,这个没做好,就是没尽好责任。这个我要深深的反省,之前搞的那个破关键字驱动项目就是典范。我今年总结自动化的良性状态应该是这样的:投入技术成本 -- 减少整体成本 -- 空余出的成本投入其他技术项目 -- 减少更多的成本 -- 有更多的空余成本投入其他能提高产品质量的技术项目上 -- 产品质量越来越好,良性循环。

关于提升

昨日跟我同学喝酒之时他又跟我讲了很多,就是介绍我去 58 的同学,点醒我的同学。他现在是一家公司的测试总监,之前创过业,做过 CTO,总之能力比我强的多。一路上他对我帮助很多。昨日酒意正酣时,他跟我说如果你想再往上一步,除了保持技术以外,你要站在更高的角度看东西。你要告诉你的老大你们的团队该做什么,这个团队的问题在哪,质量保证体系怎么搭建,该招多少人,多少人投入自动化多少人做手动等等等等,如果让你的老大告诉你这些,那你就还差的远。所以 2017 年,我希望我能锻炼到告诉我的老大这些问题的答案。

关于转型

今年关注了很多与测试息息相关但没那么直接的事情,除了自动化测试,持续集成等等。我更多的关注了工程自动化,devops。我主动请缨接管了公司内所有产品环境的自动化部署和管理工作,从编译,出包,部署。根据开发,测试,产品,运维对环境不同的需求定制了一套基于 docker 的环境管理方案。我开始更多的实践 devops,我们部署在客户场地内的产品版本和环境是不一样的。我们开始制作基于不同操作系统与产品版本的部署镜像与自动化测试方案,希望让开发人员在出事的时候一键搭建客户的产品版本和部署的系统环境,解决问题后迅速自动化测试并出包发送给进场人员。 总之这一年,我开始像 devops 进军。

关于家庭

结婚,搬进新房,儿子还有 4 个月出世。这一年进度颇快~ 元旦前两天也是忍住学习与干活的冲动,放下电脑专心陪着待产的女王大人。感觉也是好久没这么专心的陪她了,我整天忙着工作没时间陪她不说,家里父母身体不好,在伺候完我嫂子和大侄子之后就回去养着了。我现在也只能给她做个早饭。她总是挺着肚子自己做午饭和晚饭,我心里真的很过意不去。父母身体的问题也让我很揪心,看着他们一点点变老,身体一点点的不好起来,我心里也是惶恐不安。希望新的一年,我能抽出更多的时间陪伴我的家人,为我的家人做更多的事。

总结

再见了 2016,欢迎你 2017

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 49 条回复 时间 点赞
ABEE ycwdaaaa (孙高飞) 在 TesterHome 的发帖整理 中提及了此贴 01月12日 13:47

楼主,又一次看到了你的文章,很想问你提高效率的工具能做什么,555

都是打鸡血式的学习撸代码.......有机会还必须有底气有料才敢去迎接新的挑战,学习一直在继续,感谢

仅楼主可见
程明远 回复

哦哦,也是,时代变了,行业变化很快,一切不以时间为单位看待的都是耍流氓,感觉你们都在说上个世纪的事了,那个我们没有经历过的年代

红客联盟 回复

你需要看年代,那个年代中国没几家互联网,bat 都还是刚开始。那时候的外企外包要求也是很高的。我们这种,只能随着时代的变化而变化

大佬们你们都是从外包入行的哇,外包确实是测试人绕不开的话题哇,虽然没有多少技术,但是规范的测试流程是小公司没有的,这个对新人应该很重要吧

飞哥您写的经历虽然很随意,顺其自然的感觉,但是我能感觉到您在外包的那几年还是学了不少东西,哈哈

到现在英语都是个渣,每次看技术类文章,就要比别人多花两到三倍的时间

魔兽争霸和魔兽世界当年我也玩,最爱用 NE 和 warden

我出来有 6 年了,感觉我很废啊😭 。应该好好学习知识了,看了你们的回顾,我要好好总结下过去!

得赞这个,这个才是 QA 的核心价值:
最近这一年我越来越重视业务,回归业务,拥抱业务。直到现在我都是手动测试的一员。我们不区分手动测试和自动化测试,我们都是业务测试。让业务逼着我们优化工具,让业务逼着我们把自动化做的更好。

看了飞哥的文章,收益很多,才发现我一直在浪费时间。

#7 楼 @among29 我 cs 玩的好,可惜没有学习开发,一直做测试,后来自动化。我现在就缺少开发功底,唉。学习学习。。。

写的很走心,非常好。

同道中人,感谢分享你的从职经历,有所收获。

“昨日酒意正酣时,他跟我说如果你想再往上一步,除了保持技术以外,你要站在更高的角度看东西。你要告诉你的老大你们的团队该做什么,这个团队的问题在哪,质量保证体系怎么搭建,该招多少人,多少人投入自动化多少人做手动等等等等,如果让你的老大告诉你这些,那你就还差的远” 这个必须顶!升华的阶梯

看了前面还很有同感,不过后续对技术的否认,我觉得就有失妥当了,没有你前面沉迷于技术,也不会有后续你的反思(或许后续连反思的资格都没有),所以事情的发生都是有先后顺序的,后面的反思我认为问题。问题不在于测试要怎么做,而在于你处在什么阶段,技术不够扎实的时候,首要任务当然是沉迷技术;度过了这个阶段,才会有你后续的反思。当然,以上都是个人观点。楼主的经历我很喜欢,谢谢你的分享

引用你的话 “我爱它因为它带我进入了互联网,让我有机会实践自己在外企学到的东西,让我开发一个又一个的工具和框架。” 楼主分享下,都开发了哪些有用的工具和框架,介绍下工具和框架都是干什么的,给个思路,我现在不清楚该写些什么东西,能提高效率。

#30 楼 @sixleaves 额,我们并没有移动端产品,我们是 TO B 业务,给企业级用户做产品的。所以前端只有 PC 端。 我们持续集成是对整个产品做的。所以也包括 UI 自动化。

你们做持续集成支持的主要是服务端项目吧,还是移动端也有?对于 iOS 这类的移动端项目有什么建议吗?

满满的干货啊!!!都是自己的思想,深入的思考,最喜欢这种文章、

“投入技术成本 -- 减少整体成本 -- 空余出的成本投入其他技术项目 -- 减少更多的成本 -- 有更多的空余成本投入其他能提高产品质量的技术项目上 -- 产品质量越来越好,良性循环。” ---- 超赞同

026 2016年 总结帖集合 中提及了此贴 01月09日 11:01

现在很多的自动化都是为了为了自动化而自动化,只是听起来高大上一点,维护起来大家都头疼,最后弃而不用的很多,或者只是流于表面形式,并没有带来实际的价值~~~如何搞出有价值的自动化,其实感觉路挺长的

我深深的觉得跟优秀的人在一起共事是多么幸福,不用苦口婆心的说服别人持续集成的效果,自动化的便利,流程的规范,单测的重要。 --赞一个 感同身受 现在就是在这样一个团队 痛苦中

#24 楼 @li_hugo 多谢智哥的鼓励

有经历 有挫折 有成长
加油

十月份开始测试之路,到现在两个月了,看了你的文章,对测试开发又有新的认知了,受益良多~为你点赞

最近这一年我越来越重视业务,回归业务,拥抱业务。直到现在我都是手动测试的一员。我们不区分手动测试和自动化测试,我们都是业务测试。让业务逼着我们优化工具,让业务逼着我们把自动化做的更好。

不能同意更多,自动化本身也只是质量保证环节里面的一个工具而已嘛~

眼界不一样,思考不一样,真的要走出这里了

匿名 #20 · 2017年01月04日

楼主很务实,说的真心很好,看来我也得好好反思一下了!

#11 楼 @safe 俺们刚毕业的时候~~ 外企很强势的~~ 外包都是抱外企大腿的~~

#10 楼 @seveniruby 现在积极的跟在开发和运维沟通。他们也有意做这些。希望今年能作出点成绩出来~~

#13 楼 @cesc 谢谢哈~~ 感觉跟拜年一样~~

#5 楼 @0x88 看来我暴露年龄了~~

看了很多你的文章,干货满满,期待 2017 年给我们带来更多的惊喜,也祝福你全家身体健康,万事如意。

看了系列文章,受益良多,2017 会持续关注,共同进步~!😀

为啥你们都是欧美外包出身的😂 努力学习中

跟我经历挺像,我是毕业时候参加了一个中软的学校培训,然后进去了中软资源做欧美业务外包,也是做了一段时间的点点点工程师,然后是微软外包项目的自动化测试工程师。

BDD 是个坑,这种框架能看不能用,维护成本很大。自动化测试用例要力求精简不然就是维护梦魇

录制回放那个技术还是可用的,不实用主要是工具都太坑,理论上录制回放是复用了数据,随着数据分析的技术进步他的可用性会越好。之前 google 的 blog 也聊过这个话题,最后的结论是录制生成用例的方法并不是大家认为的那样不堪重用。能够符合数据发展的都是好技术,一个美好的画面,通过埋点技术可以做到把用户的一部分操作还原出自动化测试用例。这是个可行的工程话方案。目前这个技术实现只能继续等,没法用起来,可以保持观望不要拍死。

另外环境编排和 devops 也是挺复杂的,这个价值大不过不是一个人搞定的,要多跟运维沟通,他们也有不少需求在里面。雪球已经做的很成熟了。

确实,各种技术满天飞,但是核心是什么,有什么效益,没有效益的产出,都是耍流氓

加精理由:思考深刻 已经知道了有所为有所不为 能合理的根据业务需要调整测试策略 已经是挺大的成长了

游戏玩的好,开发能力就不会差。

魔兽争霸,看来是同龄人呀。

为你点赞,飞哥一路过来的经历,值得学习借鉴

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

学习了,感谢前辈分享经验和指引

关于家庭,是加精的理由,每一个为互联网牺牲家庭的人都是值得敬佩的。

恒温 将本帖设为了精华贴 01月02日 21:45
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册