写点什么

移动 app 云测试平台的对比与分析

2016 年 5 月 17 日

我们都知道在测试移动 app 时最耗时的是在各种测试设备进行测试, 因为不论是安卓还是 iOS 都已经碎片化了。而云测试看似是解决这一问题的有效途径。因此选择哪种云测试平台来协助测试人员进行各种测试就成为首要问题。

我们先来看看云测试平台通常都提供哪些功能和服务。

主流的云测试平台都支持对原生 native,混合 hybrid 和 Web app 的测试,这些测试包括:

  1. 兼容测试 通过在多种测试设备上安装/卸载和运行被测 app,遍历 app 的每个界面,主要检查 app 是否会报错或者崩溃。有些云测试平台还会对每个页面进行截图并进行对比。
  2. 脚本测试 通过运行云测试平台工具进行录制的或者使用自动化测试框架编写的自动化脚本,实现模拟用户操作的目的,并且减少手动测试时间。
  3. 性能监控和分析 利用 Android SDK 提供的借口,云测试平台可以检测移动 app 的耗电量,CPU 等资源占用率,使用的流量等信息。有些云测试平台还提供自己的 SDK,整合在 app 中可以提供更为准确的性能指标和信息,包括线上 app 的性能信息以及崩溃信息等。
  4. 手动测试和人工测试 云测试平台的手动测试是指租用云测试平台的特定设备,测试人员手动登录设备进行测试。而人工测试则是将测试需求告知云测试平台的专业测试人员,雇佣他们临时作为自己的测试人员进行测试。
  5. 持续集成 不少提供脚本测试的云测试平台都同时提供对持续集成(Continuous Integration)环境的支持。

此外不少国内云测试平台还提供以下功能:

  • 安全测试

  • 内测托管分发

  • 众包测试

我们再来看看各种云测试平台对于上述功能和服务的支持情况。

由于国内外的云测试平台使用环境等因素的不同,我们分别对国内外主流的几个云测试平台进行对比。

国外主流的云测试平台:

(点击放大图像)

图 1 - 国外主流的云测试平台对比

从上图我们可以看到一些特点:

  1. 在测试设备的数量上,Xamarin Test Cloud 和 Sauce Labs 都是非常有优势的,虽然 Xamarin Test Cloud 统计的是测试设备的数量,而 Sauce Labs 是平台的数量;

  2. 亚马逊自己的 FireOS 只被自己的云测试平台支持,在国内我们也能看到类似的例子;

  3. 所有的云测试平台都支持 app 测试,但是只有 TestDroid 支持游戏测试;

  4. 对于国内云测试平台提供的人工测试,安全测试,内测分发和众包测试,国外这些云测试平台都是不支持的,需要结合别的工具和框架进行使用。不过对于手动测试,Sauce Labs 和 Perfecto 这两个云测试平台支持租用测试设备进行手动测试;

  5. 对于云测试基础功能的兼容测试,以及脚本测试,崩溃分析和持续集成,这些云测试平台都是支持的;

  6. 只有 Xamarin Test Cloud,TestDroid 和 AWS Device Farm 支持性能监控;

  7. 对于脚本测试所使用的移动 app 自动化测试框架,每个平台都不甚相同:

  • Xamarin Test Cloud 支持 Calabash(iOS 和 Android)和自己的 Xamarin.UITest;

  • TestDroid 支持很多框架,包括支持 iOS 的 Calabash,appium,UI Automation 和 Jasmine,以及支持 Android 的 Calabash,appium,Espresso,Robotium 和 uiautomator;

  • Sauce Labs 支持自己的开源框架 appium;

  • Google Cloud Test Lab 则支持 Espresso,Robotium 和 Robo test;

  • AWS Device Farm 也支持很多框架,包括支持 iOS 的 Calabash,appium,UIAutomation 和 XCTest,以及支持 Android 的 Calabash,appium,JUnit,Espresso,Robotium 和 uiautomator。

  1. Xamarin Test Cloud,TestDroid 和 Sauce Labs 都有自己的移动 app 测试脚本录制工具,分别是:Xamarin Test Recorder,TestDroid Recorder 和 appium inspector。

综合来看,对于国外的云测试平台,如果侧重的是测试设备的覆盖程度,选择 Xamarin Test Cloud 和 Sauce Labs 会更合适;如果需要测试 FireOS 设备,那就选择 AWS Device Farm;如果侧重的是脚本测试中支持的语言和框架,那就可以选择 TestDroid 和 AWS Device Farm;如果是进行游戏测试,只能选择 TestDroid;如果要远程连接测试设备进行手动测试,那就需要选择 Sauce Labs 和 Perfecto;如果在测试过程中需要同步监测性能,就不能选择 Sauce Labs 和 Google Cloud Test Lab。

国内主流的云测试平台:

(点击放大图像)

图 2 - 国内主流的云测试平台对比

从上图我们也可以看到一些特点:

  1. Testin 云测支持的测试设备数量最多,达到了 600 部 Android 和 70 部 iOS 终端的数量;但是和 Xamarin Test Cloud 以及 Sauce Labs 支持的设备数量还是有不少差距的;

  2. 和亚马逊类似,阿里的 YunOS 也只有阿里 MQC 才能支持;

  3. 和国外的云测试平台很类似,这四个国内云测试平台也都支持 app 的云测试,而不支持游戏测试;只有 Testin 云测支持游戏测试;

  4. 对于云测试基础功能的兼容测试,国内主流云测试平台都是支持的;

  5. 这四个国内云测试平台也都支持崩溃分析,不过对于性能监控,却只有百度 MTC 支持,而且百度 MTC 的深度性能测试中还可以做竞品 app 的性能对比;

  6. Testin 云测和百度 MTC 不支持手动测试;

  7. 只有阿里 MQC 不支持人工测试;

  8. 只有 Testin 云测不支持安全测试;对于支持安全测试的云测试平台,也没有公布是如何进行安全测试的;

  9. Testin 云测支持内测分发和众包测试,阿里 MQC 支持众包测试,其它两个云测试平台对于内测分发和众包测试都不支持;

  10. 对于脚本测试,只有腾讯优测不支持;而对于测试工具和框架,各个平台的支持也不相同:

  • Testin 云测支持 Robotium,JUnit,淘宝的 Athrun 和 Testin SDK,其中只有 Testin SDK 支持 iOS 和 Android,其他框架都只支持 Android;

  • 百度 MTC 只支持通过自己的测试脚本录制工具录制的脚本;

  • 阿里 MQC 支持 Robotium 和增强后的 appium,其中 appium 可以支持 iOS 和 Android;

  1. Testin 云测,百度 MTC 和阿里 MQC 都提供了自己的测试脚本录制工具,分别是 itestin 录制回放工具,百度 MTC 录制回放工具和易测;

  2. 国内云测试平台都没有提及持续集成,不过从笔者的了解看来,Testin 云测和阿里 MQC 应该是都支持的。

对于国内云测试平台,如果需要覆盖更多的测试设备或者需要测试游戏亦或需要内测分发,只能选择 Testin 云测;如果需要测试 YunOS 设备,那就需要选择阿里 MQC;如果需要进行性能监控和竞品对比,那就选择百度 MTC;如果要远程连接测试设备进行手动测试,那就需要选择腾讯优测和阿里 MQC;如果需要雇佣云测试平台的专业测试人员,就不能选择阿里 MQC;如果需要进行安全测试,就不能选择 Testin 云测;如果需要进行众包测试,那就选择 Testin 云测和阿里 MQC;如果要进行脚本测试,就不能选择腾讯优测,对于百度 MTC 也不推荐。

相信通过对比这些云测试平台提供的功能和服务,以及它们各自的特点,读者在选用云测试平台时有了更多的依据。希望大家在使用这些信息作为依据时,综合考虑这些云测试平台的特点,同时可以使用它们提供的免费试用进行尝试,以便验证是否真的适合自己的 app。

P.S. 以上云测试平台提供的功能及服务,截止于 2016 年 3 月 20 日。

作者简介

黄勇 , ThoughtWorks 咨询师。在 10 年的 QA 相关领域的工作中,积累了丰富的对企业级应用和大型产品应用的测试和管理经验;近些年关注于移动 app 的测试和行业发展。合作组织和创办了北京软件质量大会 BQConf,始终关注于新的技术和业界趋势,不停汲取新的知识和实践,同时热衷于分享。著有《移动 app 测试的 22 条军规》,在 InfoQ 曾发表过《游戏化在保险项目中的实践》。


感谢张凯峰对本文的策划,感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016 年 5 月 17 日 17:2815761

评论

发布
暂无评论
发现更多内容

商业智能(Business Intelligence)系统的使用及设计原则

Marilyn

敏捷开发 快速开发 商业智能

Redis Sharding集群跟一致性哈希有什么瓜葛?

Man

一致性哈希 Jedis redis cluster

架构师训练营 1 期第 4 周:系统架构 - 作业

piercebn

极客大学架构师训练营

区块链USDT支付系统开发需要多少费用?USDT跨境支付

135深圳3055源中瑞8032

区块链钱包软件开发费用,区块链多币种钱包

135深圳3055源中瑞8032

合约跟单交易系统开发,一键智能跟单软件

135深圳3055源中瑞8032

智能时代,快速开发平台将成为主流软件开发工具

Marilyn

敏捷开发

深入分析软件快速开发平台与传统软件开发方案的优缺点

Marilyn

敏捷开发

快速开发平台,程序员“老师傅”必备

Marilyn

敏捷开发 快速开发 开发工具

TensorFlow 篇 | TensorFlow 2.x 基于 Keras 的模型保存及重建

Alex

tensorflow keras model save model restore tensorflow hub

JVM-技术专题-深入理解内存结构

李浩宇/Alex

Java JVM

数字货币交易所开发,币币交易源码

135深圳3055源中瑞8032

Go语言内存管理三部曲(一)内存分配原理

网管

go 内存管理 内存布局

阿里内部《Java架构进阶宝典》,总结了基础、进阶、架构三个阶段的知识点

Java架构之路

Java 程序员 面试 算法 编程语言

摆脱复杂烧脑的程序代码,利用快速开发平台轻轻松松做软件

Marilyn

敏捷开发 快速开发

spring-boot-route(十三)整合RabbitMQ

Java旅途

Java Spring Boot RabbitMQ

GitHub 上开源了一个很邪恶的项目!女生勿近,18香警告...

程序员生活志

有一说一,大型信息化企业的软件系统,还是用自研的好

Marilyn

敏捷开发 快速开发 开发工具 软件设计

低代码开发平台,来自“未来”的软件开发方案

Marilyn

敏捷开发

Vidyo的解决方案到底是什么?有哪些特点?

dwqcmo

音视频会议 集成架构 解决方案 智能硬件

标本兼治,程序员用它整体提升公司效率

Marilyn

敏捷开发 快速开发

JAVA & VUE ,分离式开发平台建造思路

Marilyn

Java Vue 敏捷开发

用友政务表格技术应用开发实践:预算一体化产品核心功能搭建

Geek_Willie

SpreadJS 用友

MySQL-技术专题-性能优化—索引篇

李浩宇/Alex

阿里面试官纯手打:金九银十跳槽必会Java核心知识点笔记整理

Java架构追梦

Java 数据库 架构 面试 微服务

快速开发平台,高集成易扩展,进入软件疾速开发新世代

Marilyn

敏捷开发 快速开发 开发工具

为什么巨头都在布局SaaS生态?

ToB行业头条

SASS

五年Java开发经验,4面阿里成功拿下offer,分享一下个人面经!

Java架构之路

Java 程序员 面试 算法 编程语言

Go发起HTTP2.0请求流程分析(前篇)

Gopher指北

go golang HTTP HTTP2.0

JAVA代码生成器,快速开发平台之魂

Marilyn

Java 敏捷开发 快速开发 开发工具

大企内部软件系统反复故障难以解决,业内人士:唯有彻底更换

Marilyn

敏捷开发 快速开发 开发工具

移动 app 云测试平台的对比与分析-InfoQ