随着移动设备和系统的碎片化程度越来越高以及复杂的移动网络情况,代码级测试和模拟测试已经无法满足移动开发者的需求,真机甚至真人的测试越来越被开发者们所重视,逐渐成为移动开发的标配。苹果和谷歌也纷纷推出自己的内测服务。苹果自收购 TestFlight 以来,将它深入集成到了 Xcode 和苹果开发者中心内。Google 则计划在这个夏天正式推出 Cloud Test Lab 服务。另外 Twitter 收购 Crashlytics 也在业界引起了一定反响。
不过,TestFlight 等服务由于在国外,不可避免会出现速度慢,不够本地化等问题,再加上国内安卓市场的复杂情况,让它们对于国内开发者来说并不是最佳选择。在这种情形下,国内的移动测试服务趁势而起,下面就为大家盘点一下。
从功能上来划分,移动测试服务可以分为真机自动化测试,内测托管分发,众包测试,移动性能监测。
真机自动化测试
真机自动化测试服务利用一些自动测试框架如 Robotium 等,通过一个 Hub 连接多台真机同时进行应用的测试,在上面可以进行应用的适配、遍历、功能测试,以及根据脚本进行一些模拟操作,多用于 Android 应用的测试。这种模式能够帮助开发者定位一些应用在真实环境中的简单出错信息。但也有一些局限性,一是开发者发现应用在某型号设备上出错也难以进一步深入调查,他还需要向周围同事或朋友征集出错型号设备来进行真人测试;二是这种真机自动化测试只能运行一些简单的脚本,毕竟不是真人操作,可能无法测试出真实场景中的情况。
国内以该模式为代表的服务提供商有:
- Testin :面向 iOS、Android 平台的真机自动测试服务。公司启动较早,有数千台设备供测试。除了真机自动化测试,Testin 现在还推出了众测、崩溃信息分析、短信平台等功能。
- 易测云:由东软集团开发的一个测试服务,2013 年 1 月上线。官网上称有 200+ 台设备供测试。它自行研发了一个 Guerrilla 测试框架,并且支持 Robotium 和 Athrun 测试框架编写的自动化测试包。
- 百度 MTC : 百度移动云测试中心,支持 Robotium 脚本,提供兼容测试、性能测试、遍历测试、安全漏洞扫描。另外它也提供一个众测功能。
- 腾讯 bita :由腾讯推出的真机自动化测试服务,主要面向 Android 开发者。官方号称有 1000+ 台设备供测试。能够进行测试应用的自动登录,并进行兼容测试、遍历测试、性能测试、功能测试、稳定性测试。
- 阿里 MQC :全称为阿里移动质量中心,是阿里巴巴淘测试下的一个产品。支持 Robotium 框架编写的脚本对应用进行测试。它一个比较有特色的地方是支持 HTML5 的真机测试,开发者可提交一个 URL,以检测页面在不同设备的上的渲染和性能问题。
另外还有电信运营商提供的真机测试服务,如中国电信推出的 TA 云测试、中国移动推出的终端池,它们进入这一领域非常早,不过由于这些业务难以为运营商直接带来利润,现在已基本被放弃。
内测托管分发
真机自动化测试毕竟不是真人使用,难以深入到真实使用场景,后来的测试服务开始专注于将应用分发给少量用户或测试人员进行测试。
内测托管分发模式以 TestFlight 为代表,iOS 应用的测试多用这种模式。平台为处于内测阶段的应用提供托管服务,并产出用于分发的 URL,开发者需要自己寻找内测人员,并将下载链接发送给他们。这种模式下开发者能对测试结果得到较大程度的掌控,开发者可以和内测人员直接联系,能够对一些特殊案例进行有针对性的调查。不过,这种模式操作起来稍微繁琐,如果是 iOS 应用的话需要制作特殊的内测版本,获取内测设备的 UDID 并制作证书,并且有 100 人的人数限制(TestFlight 作为苹果官方服务限制为 1000 人)。
国内提供该模式的服务商有以下几家:
- fir.im :面向 iOS、Android 平台的内测托管和分发服务。它们还提供崩溃信息收集 BugHD 、邀请码管理 inCode 等服务。另外它们提供了开放 API,这意味着开发者可以方便的将 fir.im 集成到自己的开发流程中。它们比较有特色的地方是很重视工具类的研发,提供了 CLI、Log Guru、网速测试等工具。前不久 fir.im 刚刚庆祝了 Melaka 版本上线一周年,并发布了 Rio 新版,在产品与架构方面进行了大量优化,开放更多的 API 接口,并提供 Android Studio 插件,方便 Android 开发者上传应用。创始人王猛为资深 iOS 开发者,根据自己在开发移动应用的过程中的感到的不便从而推出此项服务。
- 蒲公英:面向 iOS、Android 平台的内测托管和分发服务。同样提供开放 API。它还提供移动端 SDK 用于应用内测数据收集分析、版本更新提示、数据分析统计、应用内提交用户反馈等。另外它还提供用于管理的桌面客户端。 蒲公英与 2014 年 7 月上线,目前总部在西安。创始人为石瑞,创立公司的想法和王猛类似,团队目前有 10 余人,来自腾讯、微软、ThoughtWorks 等知名互联网公司。
其它国内做这种模式的还有内测宝,从去年到现在一直处于邀请注册中,貌似已经不再活跃了。
众包测试/ 众测
内测托管分发的模式还需要自己寻找内测人员,对于一些开发者来说不是很方便,于是服务商自己提供测试人员的众包测试模式应运而生。
这种模式也是国外先兴起,如 uTest 号称有 17 万测试人员。这种模式的一般流程为,开发者向服务提供商上传应用,并且选择测试用户的规模、机型 / 系统、地理分布,服务提供商则向对应的测试人员发放任务,测试人员接到任务,测试完应用后可获得一定分成。这种模式已经基本满足真实测试的需求,不过也有一些缺点,开发者无法与测试人员接触,出现问题仍然需要寻找对应机型进一步收集信息,另外测试人员只是为完成任务,并非目标用户,可能无法对功能进行深入测试。另外这种模式一般是收费的。
国内提供这类模式的服务商除了上面提到的 Testin 和百度 MTC 之外,还有:
- 我测测:我测测是班墨云推出的众包测试平台,它以众包的模式为 APP 开发者提供兼容性测试,功能测试,性能测试等服务。
移动应用性能监测
以上三种模式是大家都比较认可的测试服务模式,但实际上,新兴的应用性能管理(APM)也有机会在这个领域分一杯羹。
移动应用性能监测(移动 APM)是应用性能管理的一部分,它通过在 App 中嵌入 SDK 的方式来收集应用的运行信息,包括各种性能指标、崩溃信息等。显然移动 APM 可以应用在移动 App 的整个生命周期,而不仅仅是内测阶段。如果控制应用只分发给内测人员,那么它可以完成和一些内测托管服务类似的功能。我们可以看到上面有些服务商如蒲公英已经提供了 SDK,说明将移动 APM 用于测试是可行的。
国内提供移动 APM 的服务商如下:
- 腾讯 Bugly :Bugly 原本是腾讯内部使用的一个产品,现在开放出来。它提供对 iOS 和 Android 应用崩溃信息的收集和分析,专注于应用的 Crash,可以说是移动 APM 里最偏测试的一个,但它不是只能用在测试阶段。
- Mobile Insight :这是 OneAPM 下面的移动领域的产品,注重真实用户使用感受监控,提供 Crash 分析、InteractionTrace、网络问题分析、外部调用监控能力。
- 听云 App :这是听云旗下的一款移动 APM 产品,其对网络性能的监控能力较为突出。
- 睿动:这是博睿 Boree 旗下的移动 APM 产品,提供移动 WAP 监测、性能监测、适配监测和 SDK 监测。
随着测试在移动开发中的地位越来越重要,第三方的测试服务也将成为移动开发标配。不过,这不意味着开发者不需要测试,开发者仍然需要在本地进行一些测试,如 UI 自动化测试和 Mock 测试。7 月 11 日由 TesterHome 社区主办的 Mobile Testing Summit China 将在北京举行,这是移动测试领域知名度很高的国际会议,第一次来中国举办,届时知名开源自动化测试框架 Appium 主要开发者 JLipps 也会前来分享测试经验,欢迎感兴趣的开发者报名参会。
评论