See You Again

「有车以后」这两年

2018 年 6 月加入「有车以后」,那时正值小程序大火,不知不觉过了两年多,小程序渐显落寞之态。

从大公司的螺丝钉到小公司的话事者,自己完成了向多面手的转变,然而在这个过程中,有众多自己没有意料到的因素,导致了项目的各种不畅……

下面逐个事项进行回顾:

接口测试平台

项目背景是测试组希望从单纯的功能测试中寻求突破,例如把服务端的接口测试做起来,于是我开始着手这方面的建设。

最开始的想法是把阿里双引擎测试 DOOM 那套方案拿过来,可是发现技术难度过高,根本不适合我们这种草根团队,主要表现在:

后来改为基于抓包工具采集接口请求,录制用例然后回放的方案;前期的开发、培训都还算顺利,但是后期难以持续地运行下去,主要原因:

再后来我想基于内部的接口文档库,加上接口测试的功能,也是不了了之。虽然没有把这个项目推进下去,但是也收获了一些效果:

经过这个项目的认知提升:

反思接口测试这个专项,小公司有几点实践方向:

在线文档库

刚来公司时发现内部并没有一个在线文档库(类似 语雀),于是我跟老板提出要进行这方面的工具建设。

经过了若干个平台的横向对比,最终选择了开源的 XWiki。我知道,工具的形式不重要,最重要的是培养团队写文档、分享的习惯。我在这个项目上真正花费了大力气:

前期的开发、宣讲、培训等可能也就用了两三周的时间,后面的宣传阶段用了持续一年。最终的效果是大家把之前积累的文档基本整理上去了,但是增量的文档习惯并没有养成……

XWiki 使用过程中有几个问题:

我从这个项目收获了不少东西:

习惯的改变是一个潜移默化的过程,我所做的是把工具和氛围搞起来,毕竟师父领进门,修行在个人嘛。

实践中发现,大部分人是比较在乎使用体验的(觉得 XWiki 难用),是不是还有更好的选择呢?

Xmock 系统

这个系统基本是从大厂搬过来的,结合自己的专利和对 Mock 系统的理解重新实现了一遍:

这个系统做了几期,基本功能都有了,像微信支付适配、请求参数适配这些高级功能也有了。

虽然提高了测试效率,但是还有一些不便,例如需要额外配置手机代理、启动抓包服务等。

想做好一个工具是真的难啊,需要经过不知道多少轮的打磨。但凡有一点操作上的繁琐就会大大降低使用者的热情。

小程序性能测试

由于不断进行功能累加,有车以后小程序越来越慢,打开要若干秒。领导对这块的优化非常重视,成立了一个专项小组,我主要从测试的角度去发现问题、量化问题、验证问题,包括:

虽然我之前没有接触过小程序,但是对这种问题我有一套方法论。以目标“优化小程序启动耗时到业内平均水平”为例,跟进过程是:

  1. 梳理小程序的启动过程,例如梳理下来主要取决于包大小、接口耗时、渲染机制等
  2. 量化每个过程的耗时,梳理已有的工具,例如微信官方的统计、第三方的统计、业务自身打点的统计,或者手工拨测,找到最准确的标准
  3. 从耗时高的开始针对性优化
  4. 验证优化效果

一些量化性能的工具和手段:

印象最深的是图片大小没有得到很好的控制,本来应该加载缩略图的加载了原图,由此推动了图片使用规范落地,包括全面使用 webp 格式、裁剪尺寸规范等。还有其他的例如包大小控制不当、服务端核心接口性能优化、骨架屏渲染机制等等。

这个过程比较依赖经验,后来发现常见的问题也就那么几类,研发慢慢也注意了,隔段时间(半年或一年)复查一次即可。

App 及小程序自动化测试

为了将部分功能回归测试自动化,在自动化测试这块进行了较多研究,主要在小程序,因为这个平台对 Appium 的支持度较差。在设计测试框架过程中收获的技能:

实践下来有几个致命的问题:

实际使用效果不明显,前期还能发现几个 UI 方面的 bug,到后期基本就很难发现了,因此很难推广。再温习一下测试金字塔吧:

UI 自动化适用的场景应该是逻辑简单、页面比较固定且需要频繁回归测试的用例。

茶话会

线下分享是对线上文档形式的补充,当时的想法是以茶话会的形式,每月出一个选题,多人讨论,最后汇总到文档,发布到线上。

没想到最终只坚持了三期,遇到的阻力:

团队文化的建立并不容易,需要老板的支持(资金、制度),而且是一个长期的过程。

这种形式在小团队内相对比较容易推行,例如周会就可以顺便搞一期。

埋点系统专项

公司要进行大数据转型,大数据核心是数据,数据要从客户端采集上来,因此专门成立了一个埋点专项。我从一开始就参与到这个专项中(以质量管理的角色),持续一年多,直到项目解散。

这个项目因为涉及到的角色较多:客户端(三端)、后端、大数据、中台、产品、测试,我们采用的方案又是有一定技术难度的“可视化无痕埋点”,因此开展起来异常艰难。几乎每一个细节都要拉很多人讨论,有时候要讨论几次才能定型。

我在这个项目中承担了一个多面手的角色:

大数据测试的一个难点就是保证数据整体可靠性,因为会有各种原因导致数据不上报,手工很难测出来。需要经过整体的数据完整性论证,持续定位和分析一个又一个疑难杂症……

虽然很难,最终我们还是落地了各端(安卓、iOS、小程序、H5、WEB)的“可视化无痕埋点”方案,支撑着一千多个埋点的运行,也诞生了几项专利。即便不断地被吐槽系统难用……

尾巴

回顾这两年折腾了不少东西,通过多面手的补位获得了全方位的成长。对失败的容忍度高,不断试错,百折不挠,我认为这是创业型公司的核心竞争力。

后面我慢慢学会,充分评估一件事情的可行性,包括内外部环境、自身和团队的能力、时间、风险、成本,因为别人能做成的,你不一定能。

2021-01-05 喜欢

Copyright © 2015-2021 BY-NC-ND 4.0

回到顶部 ↑