移动应用测试初学者指南
已发表: 2018-03-20就像任何其他软件一样,移动应用程序在发布之前必须经过彻底测试,以确保一切都按照预期的方式运行。
虽然移动应用程序测试已经是一个漫长而繁琐的过程,但每天都会引入新的手持移动设备、操作系统版本和应用程序测试工具,这使得移动应用程序测试人员的工作比以往任何时候都更加复杂和具有挑战性。
如果您是一名计划开始其移动应用测试职业生涯的初学者,那么本指南将帮助您了解有关它的所有信息。 让我们开始了解什么是移动应用测试吧!
什么是移动应用测试?
在当今竞争激烈的全球市场中,移动应用程序的成功取决于它的总下载量、获得的正面评价以及它在应用程序商店中的排名,您刚刚开发的移动应用程序必须无可挑剔地吸引、吸引和留住用户,而这只能通过严格的移动应用测试来实现。
移动应用程序测试本质上是发现和修复移动应用程序中的错误的过程,以提高其整体质量、功能、可用性和一致性,并使其对用户尽可能完美。 无论是手动执行,还是通过使用移动应用程序测试工具自动执行,或者通过两者的结合,移动应用程序测试如果正确完成,不仅可以确保用户获得完美和令人满意的体验,而且在使应用程序流行和流行方面发挥着至关重要的作用几乎没有时间就成功了。 简而言之,移动应用程序测试是每个应用程序都需要完美、成功和高质量的。
移动应用测试的主要挑战
移动应用程序测试比传统的桌面测试复杂得多,因此对测试人员和开发人员都提出了全新的挑战。 下面列出了测试人员在提高移动应用程序的质量和性能时面临的主要挑战:
不同类型的移动应用程序:
由于移动应用程序可以是原生的、Web 的或混合的,这本身就是一个巨大的挑战。 由于每种应用程序类型在安装过程和功能方面都不同且彼此完全不同,因此需要以完全不同的方式进行测试。 每种应用程序类型之间的基本差异给移动应用程序测试带来了许多挑战。
各种移动设备:
移动应用测试人员面临的最大挑战之一是当今市场上种类繁多的移动设备。 其中包括智能手机、平板电脑、电子阅读器、可穿戴设备以及在不久的将来推出的任何其他移动设备。 这些设备具有不同的屏幕尺寸、分辨率、输入法和硬件功能,为移动应用程序测试人员带来了一系列完全独特的挑战。
操作系统多样性:
不同的移动设备使用不同的操作系统,并且不同设备在任何给定时间点使用特定操作系统的不同版本。 例如,Android 仍然有 8 个不同的操作系统版本在使用; 另一方面,65% 的 Apple 设备使用 iOS 11,而 iOS 10 安装在 28% 的 Apple 设备上,7% 仍在使用早期版本的 iOS。 在同一操作系统的不同版本上运行的多个移动设备上测试单个应用程序对移动应用程序测试人员构成了独特的挑战。
无数厂商:
测试人员需要应对的另一大挑战是不断增长的移动设备制造商数量。 2015 年,移动设备制造商只有大约 1200 家,而在 2018 年初,这一数字已达到 1600 多家。毫无疑问,这些数字在未来几年只会增加。 制造商为了使自己与众不同而对其移动设备进行的不同硬件和软件更改会直接影响应用程序的工作方式——使测试过程更加复杂和具有挑战性。
连接挑战:
有效处理各种连接选项,例如不同的移动网络(2G/3G/4G LTE/4G VoLTE 和现在的 5G)、Wi-Fi、蓝牙、红外线等,不亚于严峻的考验。 对于各种连接模式,应用程序必须在不同的网络条件下流畅运行,如移动网络变化、漫游、网络信号弱、无网络覆盖、连接速度慢等。但这个挑战不算大一个用于离线应用程序。
持续测试:
为了在当今竞争激烈的市场中生存,移动应用程序需要经常更新新功能和改进。 为了满足这一要求,许多开发人员更喜欢使用敏捷方法而不是传统的瀑布方法,这导致了移动应用程序的持续集成和部署。 因此,需要对应用程序进行持续测试,以确保正确执行所有改进。 这对于移动应用测试人员来说也是一个非常具有挑战性的做法!
选择如何测试:
测试人员需要克服的另一个障碍是使用正确的移动应用测试工具选择合适的移动应用测试方法。 移动应用程序测试主要有两种方法(手动和自动),另一方面,市场上充斥着各种自动化移动应用程序测试工具,这使得选择正确的测试工具成为一项非常混乱和繁琐的任务,除非有一个预先计划好的测试策略。
不同类型的移动应用测试
与任何其他软件一样,移动应用程序也需要经过严格测试,以确保一流的质量、可用性和安全性。 为了达到同样的目的,在移动应用程序开发过程中使用了几种类型的测试方法。 让我们来看看它们是什么以及它们之间的区别。
功能 UI 测试:
作为最基本的测试类型,功能测试可确保应用程序按照预定义的用户要求完美运行。 这些测试通常用于检查应用程序的用户界面和调用流程是否正常工作。 但是,如果功能测试是手动完成的,由于一些特定于移动设备的挑战,它通常被证明是一项极其密集、复杂和耗时的任务。
可用性测试:
由于可用性在决定任何移动应用程序的商业成功中起着至关重要的作用,因此可用性测试主要关注用户体验的三个关键领域:效率、有效性和用户满意度。 进行这些测试是为了确保所有设备的用户体验的一致性,并检查移动应用程序是否易于最终用户使用。
兼容性测试:
执行兼容性测试以检查应用程序是否在不同的移动设备、屏幕尺寸、浏览器、分辨率以及操作系统平台和版本上呈现良好。 例如,在智能手机上正常运行的移动应用程序在平板电脑上可能以完全不同的方式运行。 因此,兼容性测试评估应用程序在不同移动设备和平台上的功能。
内存泄漏测试:
内存泄漏测试也称为低级资源测试,是指检查应用程序利用正在使用的移动设备的内置内存的效率。 主要包括对整体内存使用情况的测试,一段时间后临时文件的自动删除,以及本地数据库的增长问题。 由于与桌面设备相比,移动设备的内存非常有限,因此内存泄漏测试对于确保移动应用程序的正常运行至关重要。
性能测试:
性能测试的基本目标是确保应用程序能够应对各种移动设备挑战,例如网络覆盖差、将连接从移动网络切换到 Wi-Fi、共享应用程序外部的内容、可用电池或内存不足、应用程序速度、许多用户同时使用该应用程序以及其他类似条件。 换句话说,进行性能测试以检查移动应用程序、网络和服务器的性能。
中断/运行测试:
一个应用程序在运行时可能会被移动设备上发生的几个事件中断,例如呼叫或短信、弹出通知、插入或拔出电源线、电池移除、网络中断和恢复、低电量警告等。 中断测试执行以检查移动应用程序是否能够通过每次事件发生时自行关闭并随后自动重新启动来承受所有这些中断。
安装测试:
安装测试验证应用程序可以在合理的时间内安装、卸载或更新,而用户不必面对任何困难。 在这个测试阶段,移动应用测试人员不仅要注意这三个过程中可能发生的崩溃,还要确保一旦卸载过程完成,所有应用数据将从设备存储中完全删除。
安全测试:
这涉及借助漏洞扫描、日志视图、渗透测试、战争拨号、病毒检测、密码破解等各种技术来验证用户的安全和数据隐私在应用程序中是否受到威胁。安全测试旨在提高移动应用程序的机密性、真实性和完整性。
本地化测试:
本地化测试可确保移动应用程序在各种地理区域和时区的可用性、功能性和可访问性。 当您计划将应用程序翻译成多种语言或将其推广到不同国家/地区时,尤其会执行此类测试。 本地化测试被认为是应用程序 QA 测试的最后阶段。
回归测试:
这种类型的测试涉及重新运行以前执行的成功测试,以确保对应用程序代码所做的更改没有重新引入任何旧的或新的错误。 由于回归测试可以在四个测试级别(单元、集成、系统和验收)中的任何一个级别中反复执行,因此它们是自动化测试的理想候选者。
成功的移动应用测试策略的有用提示
如果您真的想在移动应用测试中获胜,那么您绝不能忽视制定清晰而强大的测试策略。 一个合适的移动应用测试策略计划不仅可以帮助您轻松克服上述移动应用测试挑战,还可以让您摆脱应用被拒绝的沮丧情况。 以下是您必须遵循的最佳实践,以高效和有效地测试您的移动应用程序。
自动与手动测试:
如上所述,移动应用程序测试可以手动执行,也可以借助 Appium、SeeTest、Selenium 和 Ranorex 等自动化移动应用程序测试工具进行。 由于在移动应用程序的不同生命周期阶段使用一种或两种方法,因此您必须是根据情况在它们之间进行选择的专家。 由于自动化移动应用程序测试是在不同开发阶段成功进行回归测试的关键,因此仅应在以下情况下执行:
- 你有最频繁的测试用例
- 测试用例具有可预测的结果
- 测试用例易于自动化
- 测试用例非常耗时或无法手动执行
- 应用程序不断增长
- 移动应用程序开发生命周期很长
相反,手动应用程序测试方法基于人工输入、分析或评估,如果应用程序包含新特性和功能或只需要测试一次或两次,则应使用手动应用程序测试方法。
模拟器与物理设备:
就像两种方法一样,测试移动应用程序的主要方法有两种:通过虚拟设备模拟器或现实生活中的物理设备。 虽然在应用程序开发的初始阶段使用设备模拟器证明对测试基本功能非常有帮助,但在测试的后期阶段,它们的工作效率不如物理移动设备,如 Beta 测试。 移动设备模拟器分为三种类型:
- 设备仿真器:由设备制造商提供。
- 浏览器模拟器:在浏览器中模拟移动设备的渲染。
- 操作系统模拟器:由操作系统本身提供。
为了快速有效地获得最佳测试结果,请首先在模拟器上测试您的移动应用程序,以检测和修复尽可能多的错误。 一旦达到令人满意的测试水平,您就可以开始在物理移动设备上测试您的应用程序,以获得更真实的场景。
选择合适的移动设备型号:
确定应该使用哪种设备或设备型号来测试移动应用程序可能是任何测试人员在创建真实测试环境时首先想到的事情。 有时这确实是一个艰难的决定,因为您选择的设备决定了您的应用在数十亿其他类似设备上的运行方式。 因此,在选择目标设备时应考虑以下三个关键因素:
- 操作系统版本
- 屏幕尺寸和分辨率
- 构成因素
如有必要,请在选择设备型号时毫不犹豫地考虑其他几个因素,例如内部存储器、连接选项等。
考虑云测试:
要将您的测试工作提升到一个全新的水平,您还可以尝试基于云计算的移动应用程序测试。 云测试提供基于 Web 的移动应用程序测试环境,可让您快速高效地部署、测试和管理移动应用程序。 除了降低整体项目成本和时间之外,基于云的应用程序测试还为您提供了其他一些好处,例如:
- 高度可扩展、完全同步和预配置的测试环境
- 无需投资任何其他高级测试工具、资源或配置
- 减少错误创建或不稳定的测试环境导致缺陷的可能性
- 使测试人员免于设置非常耗时且经常导致项目延迟的本地测试环境
- 支持对复杂、动态和不同的应用程序进行测试,这在内部环境中几乎是不可能的。
- 实时测试结果
- 自动备份和恢复
组织 Beta 测试:
Beta 测试是在使用真实世界设备的真实最终用户的帮助下分析移动应用程序的功能和可用性的一种非常有效的方法。 这个阶段确实是为了检查应用程序在真实设备和网络上的运行情况,并确保在发布前修复所有错误。 如果您正在测试 iOS 应用程序,您可以利用免费的 TestFlight 工具的强大功能来管理您的 Beta 测试。
同样,您也可以使用 Google Play 控制台将您的 Android 应用分发给受信任的用户和测试人员,以便通过各种 Google 群组或 Google+ 社区进行 beta 测试。