移动设备的快速增长为移动应用开发者带来了一个特别令人讨厌的测试问题。 市面上如此多的操作系统版本,浏览器和设备,确保所有组合的质量几乎是不可能的,特别是当你手头上的设备数量有限的时候。你对应用要求越多,测试就越重要。随着应用程序变得越来越复杂,测试现在是整个开发生命周期的关键部分。
为了帮助开发人员查找错误并了解他们的应用程序在现实世界中的表现,已经出现了各种各样的工具和服务,包括基于云的方案,可让开发人员访问数千种设备和软件组合。 以下是八个移动应用的测试工具。
Appium
Appium是一个开源的移动测试自动化框架,主要针对应用程序的UI进行功能测试。它可以与原生,混合或Web应用程序一起使用,并允许原生App开发人员在不添加SDK或重新编译的情况下进行测试。可以使用任何与WebDriver兼容的语言(包括Java,Objective-C或JavaScript)使用开发工具编写测试。 国外有些公司甚至在云中提供了Appium测试。
Appium在平台特定的自动化技术之上提供了稳定性和兼容性层。Appium的核心部分是在Node.js中编写的,驱动程序的代码可能必须部分在Java(Android)或其他语言中),但是它的主要开发人员Jonathan Lipps说:“你可以将Appium视为通用的翻译人员,一个统一的API,知道如何与你想要测试的平台上的最新的自动化技术交互的API。”去年,Sauce Labs向JS基金会捐赠了Appium。
Bitbar Testdroid
自称是“为移动测试和监控而开发的”,Bitbar公司的Testdroid可用作公共或私有云服务或作为现场测试服务。 Bitbar公共云(Testdroid Cloud)提供了一个基于云的移动设备服务,其中包含数以千计的Android和iOS设备,用于自动和手动移动应用测试。
Bitbar的需求负责人Ville-Veikko Helppi说:“我们大多数客户都使用自己的测试脚本,他们使用自己的基础设施,但是他们访问了我们的设备。 “这就像软件即服务测试环境一样。”
可以内部部署的TestDroid Enterprise,可自动执行移动应用程序及相关服务的功能,性能,压力,回归和稳定性测试。 Testdroid私有云提供基于云的设备和IaaS进行设备测试。支持分布式团队,并监控设备的可访问性,以确保它们全天候可用。 Helppi指出,Testdroid被许多支付提供商用于测试应用程序和后端集成的功能方面。
Bugsee
Bugsee是一个基于云的工具,用于监视和记录系统的状态,提供错误信息和崩溃报告,并将错误信息发送给开发人员的错误跟踪程序。厂商将Bugsee描述为移动应用的黑匣子。开发人员可以通过嵌入Bugsee的SDK来调试iOS或Android应用程序。也支持使用Cordova和React Native构建的应用程序。
Bugsee在17年1月份正式推出,它可以捕获应用中用户实时互动的视频,为开发人员回显问题提供了参考,避免跟踪错误的时候的胡乱猜测。首席执行官Alex Fishman说,Bugsee可以在开发的初期,beta测试和应用的实时部署中都可以使用。开发人员会得到问题的报告。此外,Bugsee可以与Jira等工具集成。Hello World Engineering的创始人兼首席执行官Jeremy Huff说:“视频真的是我们的杀手功能。”在产品的早期阶段,看到视频比收集用户的描述更有效率。”
CrossBrowserTesting
CrossBrowserTesting是一个云服务,可以访问部署在云端的设备。开发人员能节省花在处理虚拟机,测试设备和跨浏览器测试上的成本。CrossBrowserTesting营销总监Daniel Giordanoss告诉我们: “这是云中的浏览器测试,我们不做本机应用程序。”开发人员可以访问1500多个移动设备和桌面浏览器。 开发人员可以通过各种浏览器并排比较网页。测试会话可以记录在与其他开发团队成员共享的高清视频和屏幕快照中。Selenium,Appium和其他类型的测试都可以在CrossBrowserTesting的远程设备中运行。 对于要测试公司防火墙后的用户,CrossBrowserTesting提供Chrome扩展或Node.js通道。
Sauce Labs
Sauce Labs也是基于云的,为Android和iOS设备以及Web App提供测试服务。
用户可以访问模拟器,仿真器和真实设备。可以执行原生,混合和移动Web测试。该云服务提供超过800个平台,操作系统和浏览器组合。开发人员还可以在提供了真实设备的一个私有云上执行测试。 Sauce Labs产品副总裁Lubos Parobek说:“我们真的模拟了一个用户,模拟他如何实际点击并将信息输入应用程序,并检查结果。”开发人员可以使用Appium和Selenium框架进行测试,并且测试可以并行运行。
LogMeIn的架构师的Parameshwaran Murli表示,他的公司一直在使用TestObject来运行使用Appium和Espresso的测试以及内部测试框架。 “我们运行的每个会话都会创建测试报告,其中包括崩溃日志,设备日志,测试用例视频,步骤日志等,这有助于我们快速找到错误。”TestObject可以轻松地在一个测试中编排多个设备。
Sencha
Sencha Test提供了使用Sencha Ext JS构建的应用程序的功能测试。该公司是构建移动和桌面Web应用程序的平台。一个测试脚本可以在移动和桌面浏览器上使用。 Sencha Test使用代理机制来生成一个唯一URL,这个URL可以在实际设备的移动浏览器中的使用。测试可以通过Jasmine测试框架以JavaScript编写。
Sencha的Baskaran说:“一旦在移动浏览器上启动了被测试的应用程序,该设备将在Sencha Test测试运行器中可用。 “移动设备可以与其他可用的本地桌面浏览器和在仿真器中运行的远程移动浏览器进行选择。
最近发布Sencha Test 2.0版的Sencha正在寻求添加与ALM工具的集成,以便在将来的版本中实现对devops(开发、运营、QA)的支持。该工具目前与持续集成工具集成,包括Jenkins和TeamCity。还计划与缺陷跟踪工具集成。
TestFairy
TestFairy是移动应用程序的beta测试平台,提供每个测试执行的视频,包括CPU,内存和网络特性。 该平台聚焦在管理移动生命周期,旨在帮助开发更好地了解应用程序运行测试时发生的情况。CEO兼联合创始人Yair Bar-on说,
“我们有一个软件平台,帮助企业组织执行非常有效的内测,”Bar-on说。 可以与Bug跟踪软件集成,包括Jira,Bugzilla和GitHub。
TestFairy还提供企业安全功能(如单点登录),以确保只有指定组织的员工可以下载公司的应用程序。 TestFairy可以安装在私有云或任何Amazon Web Services位置。 TestFairy还支持内部部署。
Ubertesters
Ubertesters是一个用于管理开发生命周期的SaaS产品,提供错误测试和跟踪。用户可以通过Ubertesters执行移动测试,并提供整个测试会话的录像以及截图。
“这是QA世界的Jira,”Ran Rachlin说。“我们正在帮助客户在iOS和Android中分发版本,并提供错误报告。
Ubertesters平台帮助公司管理内部测试人员或QA团队。它还可以管理众包的测试服务,使公司可以使用质量保证的外部资源。 Ubertesters在世界各地都有测试人员,报告错误。 Rachlin说:“众包测试允许更多的人参与测试过程,有效降低成本,与传统的内部测试过程相比,周期更短。
Ubertesters测试可用性,功能和本地化;将来可能会添加安全测试。Ubertesters支持原生和跨平台开发,后者可采用Xamarin和PhoneGap。