周六参加完 MTSC 回来,收获颇丰,结识到了不少人,也了解了不少事情。恰好这也是我工作满两年的时候,一直还没总结自己两年的收获,所以一起总结一下。
首先,这次 MTSC 确实收获不少。见到了 Appium 的主创 Jonathan 和 Dan 。作为主创,而且是在国外,看到的东西确实和我们有不一样的地方。在我们才刚看到 XCUITest 的时候,他们已经开始尝试把它接入到 appium 当中了!同时也被 Jonathan 的多彩多艺折服了,谁说程序员不文艺!
同时 Dan 的分享也收获不少。他的介绍让我们看到了 Appium 有趣的一面,例如用 AppleScript 控制 appium,用 appium 控制机器手(这么叫应该可以吧)来进行 UI 自动化测试。同时他分享的为何 Appium 能成功也让我们见识到了一个活跃的社区能有多大的能量(顺便也在这里祝愿 Testerhome 越来越活跃)。
从两位老外的态度可以看到,编程其实并不苦逼。我们可以从编程找到很多乐趣(如 Dan 的机器手和 AppleScript),也可以在编程之外找到很多乐趣(如 Jonathan 的音乐造诣,Dan 通过 appium 收获到这么多好友)。工作和生活是可以共存的,而且可以都是快乐的。也许也是因为这样,appium 才能发展这么长的时间,并最终脱颖而出。
下午的国内场虽然相对时间比较紧,但也有一定收获。
React Native 由于是在太困没有全部听到,但了解到了天猫团队对于 React Native 的深度使用以及他们对它做出的较为深度的改造,感受到开源工具不仅仅是免费工具,更是可以在工作中不断改进,并且和社区共同发展的好工具。
芈峮对豌豆荚的实验室环境开发说明也让我有一定收获,虽然工作中暂时没有接触到这样的实验室建设问题,但从其中了解到了两点:
oneapm 的分享其实还是有一定干货的,但可能由于演讲妹子的演讲技巧问题,有一些广告的味道,而且说得确实不大具体(有些内容不方便透露?)。但必须承认的是,性能这方面确实是不少测试里面的痛点,获取数据不方便、分析麻烦等确实是大问题。 oneapm 在这方面确实是积累了不少,并最终形成了很好的解决方案。
达峰在论坛里有看过他的一些帖子。一开始以为他只是一个前端开发来学习一下怎么做测试,但听完他的 topic 才知道原来他的一体化测试已经做到了相当完整的程度。 master/slave 架构和前面豌豆荚的有点类似,但在易用性方面着力更多。而且由于整体架构上和我目前所在项目有点类似(都是分布式测试,都具有 master/slave 结构,只是我们还做到设备管理这种级别的功能),所以收获可以说是最丰富的。后面 offline 也要继续交流一下。
吴博士的分享初看没有多少技术含量(相信做过接口测试的都有做过类似的东西吧),但通过他,不对,是他们的演示,可以看出这其实是一个痛点。mock 这个东西很多地方都用得上,所以怎么让它更易用、更通用其实还是有比较大的意义的。而且如果想要做到比较全面的路径覆盖,这更是必不可少的(微信的例子就能很明显看出了)。他们做的东西可能没有太大的技术含量,但他们做到了平台化、易用,这让 mock 能更容易被相对技术不那么强大的普通测试人员使用,进而提高测试覆盖度。而且对于开发来说,这个 mock 也让他们在做 Demo 的时候更加得心应手,不用分散精力。这也让我想起了之前在《Google 测试之道》里面提到的 Google protocol buffers ,当时没有细看,后面要看下它现在发展如何了,说不定能替代一部分接口文档或者自动生成部分接口测试代码。
黄勇的分享相对前面的所有 topic 而言对具体代码的关注更少,而更关注要怎么做才能做好移动测试,有哪些点需要注意。对于普通手工测试人员或者测试经理而言,这可能会是更加有用的东西,毕竟通用性、实践性更强。而且也更接近完整的 app 测试。
简单总结一下就是:
中午排队等候就餐的过程中认识了一个 96 后,是的,96 后,高中刚毕业。我们当年还在想办法享受高考后的快乐暑假的时候,他已经来参加这种行业会议了。这让我想起之前参加广州 D-day 时的分享 AvantX 的 PeachApp CTO 段岩(Rocky Duan),同样年纪轻轻(没记错也是 19 岁左右,不过这个真心不大记得了)就有不少成就(做初创公司的 CTO ,做出 AvantX 这个框架),真心感觉自己作为 90 后弱爆了。。。衷心祝愿他们能够最终获得成功!
引用一下小兔的话:终于见到活着的 恒捷 了。我也终于见到活着的 Monkey、恒温、思寒、小兔、芝芝、国文、明伟、doctorq 等一众 testerhome 的同学了。虽然我的个人形象全毁了(特别是身材。。。),但还是挺值得的!这次由于时间太短没有和大伙一起深入交流,但至少是 O2O 了,也算是一种突破了。
回归自己,不知不觉工作满两年了。这两年内虽然自己还是有业余搞一下技术的东西(毕竟还是相当喜欢技术的),但进度相当缓慢(如学习 python 学了接近一年才会写个定时报告 MBA 是否有货的脚本,而且最终抢到 MBA 还不是靠这个脚本。。。),而且用得不深入,所以经常踩坑。
工作中第一年只是做手工测试,从一开始的 iPad ,到 iPhone ,到 Android,再到 Web ,把我所在项目的大部分平台都测了个遍。说实话,那段时间我其实有点怀疑自己是不是不适合测试了。因为测多了之后总是想:有些地方是不是可以不用再测了?这样子的测试结果算是通过还是不通过?这个用例跑这么多遍好累啊,或者这次就跳过它(然后最后敌不过心里的天使,还是跑了一次。。。)?而且执行用例的速度和别人比慢了不止一点点(别人一周 100 多,我一周也就 60 多)。后来和一个从华为外包那边跳过来的一个经验比较丰富的测试交流了一下,发现原来现在的工作流程有这么多的问题,现在的测试用例有那么多的不准确的地方(测多了之后基本看了用例标题就知道怎么执行了,也就没有再去关注用例的具体内容了),原来我做得好烂。。。
同届进来的同事在工作一年后从 5 个走剩 2 个,其中测试的从 3 个走剩我一个,我开始想:我是不是也应该走了?去别的公司见识一下他们怎么搞的?但和其中一个同届的测试(已跳槽)交流后发现,其实其他公司在这方面也没有多大的不同,薪酬差不多,但工作时间更长、压力更大,而且工作内容也都差不多。
我开始迷茫了。恰好有个机会出国旅游,就去英国旅游了 2 周。这两周过得很快乐,也过得很快。不知不觉,我就回来了。
正当我准备继续过着之前的生活时,项目成立了一个自动化测试的子项目,测试 leader 找到了我(我和测试的 leader 比较熟,他问我有没有兴趣,我就加入了),我也从此进入了自动化测试的世界。
一开始很不适应。一方面是刚旅游完回来还没收回心,另一方面一开始做的是接口测试,而且是串口传输的接口测试,用的数据传输协议是项目自己的自定义协议。每天看着 16 进制的数字,一个一个地对比看有没有问题(那时候没接触到单元测试这个东西。。。),而且由于合作的同事感觉比较难相处,感觉还是手工测试幸福。。。持续了接近两个月后,项目第一期的内容终于搞定了,终于不用再看苦逼的 16 进制了。这个时候由于一些人员变动,我成为了项目的主力之一。由于项目需要,我开始去调研 web 和 mobile 的测试框架。由于前面第一年的业余学习,我知道了 appium 的存在(当然也知道 testerhome ,但当时注册后就没再怎么看了),也大致了解 selenium (停留在用 Firefox 的 selenium IDE 录制脚本的最初级阶段,但至少知道这个东西了)。然后在项目 Leader 的推荐下又去研究了一下 robotframework 的相关 library ,最终把框架的 web 和 mobile 部分基本搞定了。
接着由于项目需要,参考 robotframework 的 library 架构,人生中第一次设计了一个小小模块的架构,并和另一个开发合作完成了这个模块(首次协作过程中各种痛苦。。。)。后面相对就顺畅多了,和 Leader 讨论架构设计、制作各种 Demo 、完成分布式测试的实现...也许是之前积累的东西爆发了,后面这半年学习到了很多,而且学习速度相比之前也加快了好多。
然后终于框架搞定了,要开始真正实施到项目中了,然后就是各种协 (che) 作 (pi)、框架改进、环境配置、持续集成。。。一直做到现在。。。还在写 case 中和还技术债中。。。
同时也在第二年的 3 月跟随 doctorq 发起的开源项目正式开始关注 testerhome ,写了第一个帖子,并作为一个小组长完成了一部分文档的翻译工作。后面随着对 testerhome 了解的深入,决定加入官方 qq 群(在此之前我没啥上 QQ 的习惯,1 个月不上一次 QQ 也是很正常的事),然后就一直在 testerhome 的陪伴下走到现在。认识了不少人(其中一些还给我提供了一些工作机会),也认识了一些大神。
总的来说,这两年有 2 个节点对我影响最大:
但其实我的经历也告诉我:没有任何事情是白干的。没有第一年由于兴趣了解过 appium,python 和 testerhome ,也许第二年我还是一个普通的手工测试,业余随便玩下技术相关的东西。没有前面第一年由于手工测试而对业务比较熟悉,也许我也只会钻研技术,而不会参与到架构设计的讨论中。我也想起了乔布斯在某个毕业典礼上说过的话:
“你们现在同样不可能从现在这个点上连出通向未来的那一条线。只有当你回头看时,才会发现这些过去的点其实已经画出了那条线。所以,要相信每一个点迟早都会连接到一起。”
进入第三年。工作方面暂时还是关注前面所做框架的具体落地(之前去微信面试时面试官就有提到对我们具体落地比较感兴趣,只是当时我们还没完全落地)。无论成功还是失败,至少是经历了完整的自动化测试项目,收获到了不少经验。
业余方面,一方面继续在 testerhome 发挥余热,分享自己的经验,参与 testerhome 的各种活动;另一方面去学习、了解一些新的技术并尝试落地(目前主要关注 docker)。
Monkey 说过,在某个领域持续学习,第一年你可能是初学者,第二年就应该是 master 。我也同样要持续学习,往 master,甚至 doctor 之路前进!