大事回顾

2014 年 5 月之前 独立测试咨询师
2014 年 5 月 入职 Testin 任职云测产品总监
2014 年 12 月 入职 OneApm, 任职测试架构师
2015 年 8 月 入职雪球, 任职测试工程师

独立测试咨询师

2014 年 5 月之前的工作阶段. 看起来高大上, 本质就是某个项目的临时工而已.
这段时间工作挺开心的. 也学到了很多, 用 RobotFramework 做了很多的研究和实践. 薪资也很不错.
离开的原因是觉得自己没归属感. 除了拿到保证生活的钱, 什么也没有. 不归属于任何公司, 没有五险一金, 连社保也没有. 太没有安全感. 所以打算回归到大公司去继续工作.

因为刚从百度离职出来, 所以就投了其他的公司比如点心 OS, 360 等, 但是结果不太理想. 在当时我想做更多技术上的建树, 这点容易被误解.同样因为历史原因没考虑阿里.
后来恒温推荐了阿里的一个大佬给我认识下, 说是对方有意认识下. 后来熟悉之后觉得是个挺靠谱的人, 感谢恒温的推荐.
在面试进去没多久, 也碰巧联系上了当年同在阿里时的一些跨部门的老同事, 也是一个大牛, 在已经在手机淘宝生根发芽了. 做的很好.
当时我喜欢移动测试, 他想让我去做基于 xposed 的框架的封装, 去深挖其中的技术价值 (后来阿里开源了 dexposed, 他们自己也做了性能栅栏应用). 所以我就同意转到这个新老大的手下. 对恒温和之前帮助我的那个大佬觉得挺惭愧的.
级别是 P6, 总算比我离开阿里的时候的 P5 level 高一些. 这已是这些大牛们帮忙的结果了. 所以觉得挺安心的.
后来是入职手续拖了 2 个月还没解决 ,因为我在阿里的时候有香港上市的股票, 所以需要从已经给的期权中扣除. 扣多少 HR 也不知道. 自己能拿到多少也完全不知道. 感觉心里挺没底.
后来就看了张家辉的<激战>这部电影, 其中男主角的境遇和心态我觉得和自己很像.
那天觉得自己不应该为了想回阿里稳定生活就放弃自己的追求, 而且阿里即将美国上市, 这其中其实并没有自己的贡献. 觉得也有些失落.
我想至少还应该努力下. 所以就放弃了阿里的 Offer, 当时就立下了一个志愿, 要在有生之年跟随一家创业公司去美国上市.

Testin 产品总监

在我拿到阿里的 Offer 没多久, Testin 的同学也找到我了. 他们在测试上的作为我很感兴趣. 也聊的挺开心. 当时觉得符合我的方向, 就去了 Testin, 职位是产品总监.
在 Testin 工作了半年多, 这期间很忙碌也学到了很多东西. 直接跟 CEO 和 COO 打杂, 改进测试技术和产品 跟运营和商务推广合作. 感觉自己成长的很快. 学到了很多测试之外的事情.
我成长最关键的三个阶段.一个是在阿里打下的能力基础, 在百度得到了能力升华, 而在 Testin 让我又有了新的高度. 我很感激 Testin 带给我的这段时光.
但是后来公司的产品规划越来越偏向传统, 跟我认可的方向偏离, 而且自己也左右不了. 当时老板提的一些项目是可以挣钱的. 但是做出来会让公司变成一家重人力的公司, 这对公司的估值和发展是很不利的. 碰巧当时又让我去负责一个我不认可的项目. 做的也是挺痛苦. 然后就开始怀疑自己的能力, 是否能够担当的起产品总监的角色.
加上当时自己家庭压力大怕产生负能量, 就决定先离开 Testin 一阵子, 再决定何去何从.

离开 Testin 的时候我就预感到自己接下来的家庭危机, 感情危机和个人生存危机都会爆发. 家人希望我结婚生孩子, 女朋友希望我买房子, 准丈母娘明确表明没房子不结婚, 我自己没有了工作收入连房租都付不起.
在离开 Testin 的 2 个月里我做了一些灰色收入的事情打算临时性的解决下这些危机, 在百度和腾讯的云测平台上刷了刷广告, 但是因为急于求成没搞好, 最后也没挣到钱.
这个我的好兄弟们是知道的.

OneApm 测试架构师

后来是老钱在内推上找到了我, 觉得我的技术体系和经验跟他们是挺符合的. 他们的 CEO 也找到了我, 想让我过去. 在决定去 OneApm 之前, 我还和 Testin 的同学沟通了下. 其实当时虽然人不在 Testin 了, 但是还是挺留恋的. 当还还想过灰色收入挣到钱后就回 Testin 的.
后来觉得也许就算回去, 有些事情自己也没信心和勇气做主. 也没足够的信心把 Testin 打造为一家测试技术创新型的公司, 所以就决定去 OneAPM 了.

在 OneAPM 主要负责测试技术体系的构建 .不过事情远没有自己想的那么简单. 首先是技术上的困境.
测试环境管理上. 公司内有多个方案, 研发和 COO 支持用 vagrant, 我希望可以用 docker. 也有同学希望直接用传统脚本. 所以声音很多. 后来测试团队就先用 docker 做了自动部署,后来其他团队碰壁了, 也在考虑转到 docker 部署.
接口测试上, 因为了解 soapui, jmeter 等用于接口的优点和缺点, 所以我决定使用七牛的做法, 并在 ruby 里面挑选到一个类似的 restfull 接口框架去做,
但是后来高层 review 的时候觉得还是有问题, 外聘的大牛认为应该用 java ee 上的容器测试框架 arquillian. 不考虑我们是跨平台的测试. 很多决定都是自带立场的.
同样性能测试也一样, Jmeter Gatling 和 Loadrunner, AB 方案都有.

始终都会有个三个声音. 不懂测试的研发大牛角色 vs 我自己 vs 不懂测试的管理角色. 碰巧我是个不喜欢强势的人. 很多事情尽量让步.妥协. 但是用他们的方案也解决不了问题. 也挺痛苦.
这期间公司还招聘了一个测试领域的职业经理人风格的"大牛"来管测试. 我彻底都无语了.
[大家放心, 此人已经不做测试管理了, 后来公司还让我帮忙评估行业里面另外一个应聘的测试管理角色, 我让朋友帮忙调查, 结果是恶评如潮]
OneAPM 是家好公司, 他们的研发团队和测试团队自身还是靠谱的, 只是局部管理的问题稍微多一些. 我相信随着优秀人才的加入, 这些问题都会逐步解决的.

当时技术因素是最小的, 这期间我的个人危机全面爆发. 到了什么程度那, 我的爸妈要自杀因为他们觉得我 30 多了还不结婚要孩子, 我的女朋友也要自杀, 以为觉得结婚无望, 买房也无望. 有段时间连我自己都觉得, 自杀是个挺幸福的结局. 远比活者要舒服.
工作上的心情越来越糟. 请假迟到甚至旷工也变的越来越多. 心情开始变的抑郁. 跟领导们商量了下. 决定辞职.

这期间正好是 Testerhome 举办的第一届中国移动互联网测试大会. 因为心情低落我几乎没参与任何事情, 大会当天我也没打算去. 把自己关在房间里几天了.
后来 mingway 催了我一天, 说就算不为大会, 也要为一起奋斗的兄弟们见一面, 因为这么多年 testerhome 的管理员们都没集体聚过一次. 这句话把我打动了.

后来和好朋友 复盘整个过程的时候,得出了几个结论

  1. 我应该更强势一些. 敢于发表一些看法, 尤其是跟高层的沟通.
  2. 技术上没有对错. 不是非 A 即 B, 当时不应该过早的放弃自己的主张. 可以等时机先帮助其他人去验证他们自己的方案.
  3. 入职的时候应该多要点钱, 不要不在意自己的收入 :)

雪球测试工程师

离开 OneAPM 后, 我又做了一阵子黑产用于过渡没工作的生活. 同时找着工作.
这次决定我再也不为工作热情打动了. 只看钱. 因为如果是有钱的话, 我的生活也不会这样发展了. 我会以更好的心态去工作和生活.
所以基本不考虑创业公司了. 或者只考虑特殊领域的创业公司. 比如我找了一个做高频交易的金融公司面试, 老板来自于美国华尔街. 背景很牛.
这期间还有一件趣事八卦. 这家高频交易公司比较传统, 但是 HR 很尽责, 他们对自己公司的测试不满, 我就先参加了第一轮的他们的测试领导的面试.
这位领导比我小很多, 只有两三年工作经验, 谈完之后他发现我之前的工作经验比他强, 就说他们虽然有很多性能问题和业务问题, 但是暂时没有意向做性能测试和自动化测试. 然后就想打发我走. 我跟 HR 委婉的说明了下情况, HR 就安排研发总监面试, 结果就顺利通过了, 当时他们老板在美国, 让我等 2 周再来谈薪资.

这期间我还面试了京东, 乐视. 乐视拿到了 Offer, 京东刚通过了研发总监和 CTO 的面试, 接到了下一轮的面试通知.
跟阿里和百度那些大公司相比, 这两家公司的面试效率很高. 甚至超过了创业公司, 给我留下了很深的印象.
乐视的福利待遇很好, 给的最高. 这家公司也很狼性. 我喜欢狼性的公司. 因为我这样的人渴望机会.
但是考虑到乐视已经创业板上市, 公司可能越来越保守, 新兴的公司可以有更多机会奋斗. 综合了其他的因素, 就决定去了雪球.

从雪球工作到现在, 算是比较平稳的. 这期间得以专注的做了很多的技术改进.
比如技术上他们的 docker 应用已经非常的成熟, 大数据分析也做的有模有样, 我就没再涉猎环境管理.
后端测试方面做了接口测试框架. 并加上了类似 twitter 的 diffy 工具的特性支持. 但是更简单好用. 实现了公司内主流产品线的基本接口功能覆盖和新老版本的 diff 对比.
移动测试方面上公司内来自豆瓣的妹子已经做的很好了, 我只是简单增加了一个移动端 Android 和 iOS 的自动遍历框架,

这两个框架都已经申请了开源, 还在等公司的架构师审核, 到时候开放出来也算是为雪球打打名气, 并提升 app 的知名度吧.
质量监控方面实现了用 R 监控线上的接口质量. 后续可能完全用 spark+scala 重写. 也探索了用 igraph 或者 spark 的 graphx 建模业务的可能性.

总体来说, 我对自己做的基本满意. 因为我提出了合适的测试规划并实现了落地.
因为团队刚成立, 很多应该强力推的事情怕影响团队和谐一直没敢做. 比如定期的质量大讲堂和问题 review.
这一切只是刚开始, 还有更多有价值又成本低的事情可以去做, 比如
覆盖率分析建模, 可以随时了解每天研发或者测试覆盖产品的程度, 知道哪些路径有没有被测试到. 知道哪些路径是新增的. 可以有效的解决测试覆盖的问题.
线上问题建模监控, 通过一定的算法来识别有问题的业务路径, 可以在用户遇到错误的一个小时内就能识别出来并交由研发分析解决. 而不是等用户上报或者投诉
现有的崩溃和性能问题解决. 重点分析已经通过腾讯 Bugly 收集到的崩溃并重点去解决. 提升目前的 app 体验.
不要以为很难, 每个目标只需要几个星期就可以完成.

当然个人的危机还是若隐若现.时刻像一个定时炸弹. 说不准哪天会爆. 我只有不断的往前发展来逃避.
之前也有不少公司邀请我去做测试咨询, 我一直没答应, 因为我更希望把有限的精力专注在工作改进上.
不过考虑到自己的问题, 也为了让自己生活和心态更稳定, 新的一年我可能会业余做一些面向企业的商业测试培训和咨询.

测试理念

从 07 年开始入行到现在近九年的工作经验吧. 身边的朋友大多从技术身份转管理角色了. 我想我可能快成唯一一个坚持做基础研究的人了.
为什么这么坚持, 是因为我在百度时有幸探索到了测试和质量保证最有价值的一块地方,, 所以这些年一直想把他实现.
是什么地方这么有意思那. 我想我今天没法跟大家解释了. 我可以先列举几个基本理论认知
基础理论是测试过程是一个用数据验证过程的工程实践. 可以认为研发的产品就是一个输入到输出的函数定义. 测试是用数据论证推导的过程.

  1. 无论是手工测试, 自动化测试 自动遍历 众测和研发的自测行为, 都有他们的价值, 这些价值的本质都可以用一种通用的数学模型或者编程模型来表示
  2. 基于建模 + 数据分析可以做到完善的质量保证 把需求 + 代码 + 测试用例三方较为完美的关联起来.
  3. 质量保证的核心在质量监控和质量运维, 发布前的测试, 发布后的测试, 以及其他各种对产品的使用行为都可以由监控来度量 在实现这个目标上有很多做法, 有纯人力的做法, 纯技术的做法, 不要以为这是个 Geeker 做法. 这是一个很扎实的基础理论, 可以解释一些测试方法, 并能有效验证测试技术和测试管理的有效性. 用于指导测试规划.

质量保证领域的发展是跟很多因素有关的. 比如
创业公司增多, 精英分散->产品质量下降, 团队新人加入-> 质量下降 团队新人成长起来->质量上升
新技术早期发展->质量下降, 新技术应用成熟出现了生产力提升->质量上升.
测试方法和技术落后->质量下降 测试方法靠谱->质量上升 测试平台建设忽略测试效果->质量下降

做一个测试架构师的奥妙就在这里, 需要很好的团队 + 产品 + 技术三方面的力量, 然后针对性的提出解决方案.
方案不要求多牛逼, 但是一定要很有效. 把质量透明化并通过测试和监控手段等给出明确的定义目标和解决方案是很有意思的事情.
就如 Dota 游戏一样, 看团队的属性, 看形式并作出适应性的改变. 从而帮助团队取得成功

关于敏捷

我个人反感 Scrum 敏捷体系的, 因为大多数的培训公司都是跟风的. 以前推 CMMI, 后来看到敏捷盛行,就转向 Scrum.
转向 Scrum 是因为这个实践方式技术要求最低. 同时又足够具备可展示性. 正好适合那些不太懂软件工程的人.
我个人推崇 XP. 不过 Scrum 也意识到自己的不足了, 也在纳入 XP 的实践. 所以总体来看都是有价值的.
大多数的敏捷做法都是基于管理理念, 工程思考并不太充足.
比如衡量是否敏捷的标准基本就是看有没有每日站会和看板. 很少有人展示是否做了自动化和持续集成.
没有自动化和持续集成说实话根本就敏捷不起来的. 这也是当年淘宝的大拿们做过的实践结论.
在外面宣扬敏捷成功的人大多是培训机构, 或者是一些连自己都底气不足的求新探索的测试管理层.
我个人呆过的公司,从阿里到百度, 还包括听说过的华为, 其实高层一直是持怀疑态度的. 都只是提取了其中部分的观点作为实践.
这些年的质量保证改进实践中, 持续集成, 灰度发布, 监控, 自动化, 测试对比, 覆盖率等才是最有效的做法.

是否采用应该基于自己公司的问题到底是在管理, 还是技术上. 不要盲从.

关于测试行业

很多人觉得测试很 Low, 是因为行业里面太多的实践错误, 再加上各种意在捞钱的搞培训和认证的商业机构在搅混水. 我不是说所有的. 我说的是大部分.
这些培训机构正在不遗余力的把那些愿意交 5000 块又不愿意深入了解软件工程和基础编程的人往测试行业里面送.
各家大公司的测试高层也大多是当年从手工测试起家还没学会编程开发就顺势当上了高层领导. 真正看懂测试发展趋势的人很少.
早期的大多数写书的大拿也是不断的鼓吹微软和 Office 产品的测试模式.
早期的测试服务商业机构也在不遗余力的推销 QTP 和 LoadRunner.

以上这些做法并不是错的, 但是综合起来就把测试行业推上了一条不归路.
早在 2012 年的时候左耳朵耗子就提出了这样的观点. http://coolshell.cn/articles/6994.html

我经历过一些公司都有专职的 QA 团队(专职的测试人员),自从上个公司我的开发团队在一个项目上被 QA 部门搞得一团糟,我越来越怀疑专职 QA 存在在意义。我的观点不一定对,但请让我鲜明地表达一下——我觉得是不需要全职的 QA 的,甚至不需要 QA 这一专职角色或部门,因为,不懂开发的人必然做不好测试。就像不懂开发的研发经理必然管不好研发团队一样。我越来越觉得 Dev 应该应该是做测试最合适的人选,这必然是未来的趋势(因为我已经看到了中国程序员的进步,相比起 10 年前,今天的程序员已经是非常全面了,再来十年,必然证明我的观点是对的)

自然是枪打出头鸟, 这篇文章在当时被测试行业的很多"大佬"们喷了很多次.
我也反对他的一些观点. 但是不能无视其中揭露的问题而故意挑刺. 我们自身需要正视其中提到的问题.
因为没有一篇文章是完美无瑕的, 完美无瑕的文章也基本都是废话而已. 包括我的这篇文章也会被喷.
左耳朵耗子这个文章其实说出了很多人想说又不敢说的话.

但是工程学上是不管你的态度的, 价值决定存在. 如果测试行业做错了 那必然就会引来恶果.
其结果就是最近五年从大公司到小公司都是逐渐的淘汰专职的 QA 团队或者缩减测试团队.
当年被测试行业鼓吹的测试研发比例逐渐变化. 从微软测试比例 2:1 到今天百度的 1:5 或者 Google 的 1:10, 甚至包括微软雅虎等自身也在逐渐的精简测试编制.
在各大招聘网站上测试招聘的职位也在一路下降. 这一切是整个 IT 行业对自身落后产能的淘汰.

Testerhome 测试社区的创建也正是基于这个背景, 我和 sun 看到了这个行业正在发生的潜移默化的改变, 想唤醒整个行业. 我们从 2012 年就开始做了,
当时因为测试行业已经稳定. 想要打破原来测试格局很难. 所以一直都是个小众的社区.
直到最近 3 年移动互联网翻天覆地的变化, 恒温和 Monkey 这两位主力加入, 才得以重新打造 Testerhome 并获得了现在的知名度.

不是人人都能成为产品经理. (虽然反面论调都已经有人出书了, 实际上各大公司的高层都是反对这个理念的). 也不是人人都能成为测试工程师. 更不是人人能成为张小龙和乔布斯
如果没有能力学好编程, 就没资格做好测试. 见识过不少人自己不愿意了解研发和产品, 心里却还想做这行的管理来混日子.
一个拙劣的产品经理会埋葬一家公司, 同样一个拙劣的测试团队也会严重拖累一家公司的发展.

测试团队重要吗? 我的答案是非常的重要, 但是这个团队一定不是这些年目前的测试团队, 而是一个新的了解产品和软件工程学的团队.
必然需要经过一次脱胎换骨才能获得新生.

在云计算刚发展起来的时候, 很多人说 运维工程师会死, 运维团队也不需要, 而实际发展的结果是运维团队没有死, 反而越来越核心重要.
因为运维团队已经涅槃重生了, 那他们是如何发展的哪. 他们从原来的管机房装系统的角色, 晋级为管理 Hadoop Spark 各种 DB 的角色了.
并把生产环境监控 自动化发布 灰度发布作为自己的主力业务. 行业也出现了各种成熟的类似 Zabbix ELK 等优秀技术栈,
随着 DevOps 盛行, 运维团队的价值也会被更多重视.

运维团队的发展是蛮值得参考的一个历程. 未来的测试行业也面临着这样的改造和升级. 所以我会一直在测试行业发展. 并看好这个行业.

关于 TesterHome

关于 Testerhome 的规划, 我其实心里一直很清楚. 大家可以放心. 具体怎么做还得看我们老一辈的管理员和新一辈的管理员的运作.
Testerhome 会是一个一直保持中立的测试技术社区, 并始终把分成分配给社区的所有人. 大家在 Testerhome 的活动和贡献都是大家的"期权"证明.
创始人的角色会逐渐淡化. 更多的价值衡量会来自于大家对社区的贡献, 比如发帖, 改进技术或者开源工具, 帮助别人, 帮助宣传和运营等.
如果一个同学愿意做为大家服务的事情, 并且被验证过靠谱, 那么他就可以逐渐成长为社区的新一代管理员.

我个人的想法是让 Testerhome 逐渐发展为一个"孵化器"或者基金, 这个孵化器会支持很多的测试活动. 无论是免费或者商业.
比如测试行业的开源技术推进, 每年的中国移动互联网测试大会, 测试行业垂直招聘, 测试的 SaaS 服务, 测试测评, 众测, 测试培训 还有单身交友等.

他们一定是做的正确并具备特色才会被 Testerhome 接纳和支持. Testerhome 会通过自己的基金或者其他的资源支持入股这些有潜力的公司.
比如将来我年龄大了干不动了, 我就利用自己的人脉做测试的招聘. 做一个测试经纪人公司, 类似于明星经纪人. 给大家做量身的改进建议和职业规划.
不再主要帮公司挖人, 而是根据个人特点推荐给合适的公司和团队. 实现个人价值和职业发展的利益最大化.
Testerhome 早期投入支持并获得这家公司的 10% 的占比.这家公司成功了, Testerhome 也会成功.
其他的测试活动也是如此. 如果测试生态起来, Testerhome 也就可以水涨船高实现上市, 我们每个人也能领到自己合理的回报.
人总要有梦想的, 万一实现了哪 :)

总结

到今天, 我的现状是 33 岁, 无车无房无城市户口. 未婚有女朋友, 独自北漂奋斗. 租着一个家徒四壁连电视机和沙发都没有的一居室.

想想同年龄段的人的遭遇
33 岁马云刚 10w 块卖掉中国黄页领着 18 罗汉去杭州.
33 岁刘强东刚刚跟前妻离婚并无奈关闭自己的零售门店决定转型做一家电子商务公司.
33 岁周鸿祎刚刚跟百度竞争失败并被 yahoo 收购了 3721
33 岁雷军刚刚做 WPS 的负责人从此把青春付出给了自己都觉得可惜的事业.
33 岁的乔布斯刚刚被苹果公司赶走, 正在发力自己的事业.
33 岁的周星驰刚刚出演当时票房惨淡的<大话西游>两部曲

33 岁的时候大家都刚刚迈上了一个痛苦又未知的阶段. 并不是只有我孤独和痛苦.

我很幸运我的家人都平安, 这是我最大的满足.
我已经成为一个行业专家. 当年离开阿里就是为了这个追求. 目前我已经实现了当时的志向.
我每天都有钱点肯德基全家桶, 我觉得挺满足了.
<每当变幻时>这部电影里面陈奕迅饰演的男主角鱼佬说过一句话"有钱吃斑,没钱吃泥鰻", 自己开心最重要. 我喜欢说这句话时的心态. 每当想到这句话我就很释然.

对未来有期待, 但一切随缘.

备注

因为这次说了很多之前不愿意提的事情, 也涉及到了很多人的利益, 为了不影响别人的发展, 也不给自己树敌. 拜托大家不要大范围的转发. 我只 @ 左耳朵耗子, 因为引用了他的文章


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