测试移动应用程序 testing-mobile-apps
鉴于市场上有各种各样的设备和正在发布的设备,测试您的应用程序已变得势在必行。 在这个领域,功能和可用性可能会在应用商店中获得较低的评价,但一个缺陷可能会导致卸载您的应用程序。 测试计划和质量保证必须引起注意。 以下链接涵盖了必须一般解决的许多主题,例如识别您的环境、定义测试案例、测试类型、假设以及客户参与。 此外,还讨论了有助于测试工作的工具。 内部工具(如Hobbes)可以帮助进行基于Web的UI测试。 困难日可能使实例承受模拟负载。 如果您的测试环境已经具有第三方工具(如Selenium)的经验,也可以使用这些工具。
在开发移动应用程序时,有许多特定于设备的新问题,必须与传统测试一起解决。
- 功能 — 您的应用程序是否满足所有要求?
- 可用性 — 应用程序是否易于使用且便于客户理解?
- 性能 — 在使用量激增期间会发生什么? 应用程序元素(例如轻扫和轮播)是否非常快速,并且不会破坏体验?
- 失败或中断 — 当应用程序运行时有来电或通知时,会发生什么情况? 如果网络中断或断电会发生什么情况?
- 安装和更新 — 安装体验如何? 如何推送更新?
- 技术 — 您的应用程序是否从设备消耗过多的电力?
- 本地化 — 您的应用程序中的所有区域均经过翻译吗?
- 认证 — 您的应用程序是否已通过认证? 客户是否确信它遵循所有数据隐私法律要求?
在自动和手动测试过程中,应该回答这些问题。
自动化测试 automated-testing
应执行一定程度的自动化测试,以涵盖各种屏幕大小、内存限制、输入方法和操作系统。 它不但覆盖了多种测试用例,而且当引入新的功能或设备时,它可以加快回归测试的速度。 理想情况下,您的自动化工具应该减少或限制重复工作。 请使用工具或框架,以便您的测试工作适用于所有平台。 下图显示了用于基于Web的UI测试和移动应用程序测试的测试环境的简化结构。 图表的左侧显示了一系列使用浏览器的Selenium节点。 SeleniumGrid可以将常见的基于Web的UI测试群发到其中的任何节点。 Selenium中心还可以连接到Appium以进行跨平台应用程序测试。 仅显示模拟器,但您可以包括adb (适用于Android™)和Xcode实用程序(适用于iOS设备)。 本文档稍后提供了一些链接,您可以在其中找到提及工具的特定详细信息。
手动测试 manual-testing
除了自动测试之外,您的应用程序还应经历一个手动测试周期。 脚本无法复制在实际设备上运行应用程序的客户。 在这里,您也有许多选择。 您可以使用HockeyApp等平台定义有权访问和收集反馈的人员。 或者,您可以将整个过程外包给UTest、ElusiveStars或Testn等服务。 如果您有一组内部测试人员,但缺少各种设备,则可以利用云服务对其设备池执行手动测试。 SauceLabs就是其中一项服务。 您还可以远程将应用程序构建到PhoneGap Enterprise并在本地设备上安装作为验收测试或降级级别。 请参阅PhoneGap (https://phonegap.com/
)网站,了解其最新功能和文档。 无论采用哪种方法,手动测试都应执行以下操作:
-
击中了一大群测试者,
-
针对大量设备进行测试(最好是实际的设备,但如果实际的设备不可用,则使用模拟器/模拟器),
-
提供信息性反馈:
- 崩溃报告,
- 分析/跟踪,
- 可用性,
- 关注领域,
- 性能,
- 数据/功耗等等。
工具 tools
有多种工具可用于测试移动应用程序。 应根据您的具体情况选择要使用的解决方案:功能、价格、支持、覆盖范围等。 以下只是对某些可用工具和服务的一小部分说明。
硒
- 框架,包括用于测试脚本的API,以提供WebDriver并控制各种浏览器。
- 您可以将其与Appium一起使用,以在实际设备上进行测试。
- SeleniumGrid跨节点引导测试以进行并行测试。
- Selenium IDE有助于减少编写测试用例的情况。
有关详细信息,请参阅https://www.selenium.dev/。
Testdroid
- 基于云的测试服务,具有持续的集成挂接和实际的设备测试。
- 其中包括一个应用程序Crawler ,用于检查设备兼容性、分析日志、遍历视图、拍摄屏幕快照和监控性能。
有关详细信息,请参阅https://testdroid.com/。
Appium
- Appium是用于自动化移动测试的常用跨平台框架。
- 此外,还随附了检查器以帮助代码测试用例的记录功能。
有关详细信息,请参阅https://appium.io/。
沙司实验室
- SauceLabs提供了基于云的测试,并与持续集成集成。
- 测试在其云环境中自动运行,或者您可以启动特定设备或平台并执行手动测试以帮助调试问题。
有关详细信息,请参阅https://saucelabs.com/。
曲棍球应用
- HockeyApp属于手动测试范畴,在该范畴内,移动设备应用程序会被推送至个人应用商店,以便测试人员下载并试用该应用程序。
有关详细信息,请参阅https://hockeyapp.net/features/。
Jenkins
- 虽然Jenkins不是测试工具,但它是一个持续集成的框架,提供了自动化测试的主干。 可以使用许多第三方插件来扩展功能。 例如,SeleniumGrid插件提供了一个用于帮助管理Selenium中心和节点的UI。
有关详细信息,请参阅https://www.jenkins.io/和https://plugins.jenkins.io/。