作者:陈平 | QE_LAB
随着移动设备的广泛普及,智能手机、平板电脑、数字电视等移动设备的市场占用量日益增多;根据相关报告,目前智能手机用户数已超过 60 亿,预计到 2027 年将达到约 76.9 亿的新高度。随着这一数字的上升,移动应用行业也将迎来新的挑战,随之市场将提供愈加多样和复杂的用户体验来满足用户需求。为了应对这一挑战,确保移动应用程序投入用户市场前符合所有标准并确保无重大缺陷是一个非常重要的课题。解决这一个课题的方案是使用合适的移动测试工具、定义明确的策略来进行有效的移动应用程序测试。
面对多样和复杂的移动应用程序,作为测试工程师的我们如何提高移动端应用程序的交付质量呢?下面我们围绕此问题提供一些移动端测试的策略供大家参考。
什么是移动应用测试?
移动应用测试是在各种移动设备、操作系统和网络环境中评估一个应用的功能、性能、可用性和安全性的过程。其目的是确保高质量、无错误的用户体验,并确认该应用程序符合预定的目标和需求。
在我们测试讨论移动端应用测试策略之前,首先应明确测试对象。通常移动应用程序被应用在智能手机、平板电脑、数字电视等移动设备上。而这些移动应用程序用到开发模式通常有以下几种:
原生开发的应用程序:这些应用程序旨在为特定移动平台的用户提供服务,可在 Play Store 或 AppStore 上获得。 此类应用程序是通过使用适用于 iOS 的 Objective-C/Swift 或适用于 Android 的 Java/Kotlin。 对于跨平台原生应用程序,NativeScript、Flutter 或 ReactNative 是最常用的语言。
混合应用程序:混合应用程序的功能类似于本机应用程序,不同之处在于这些应用程序是使用网络技术开发的网络应用程序,通常在本机容器内运行,利用设备的浏览器呈现 HTML,并在本地处理 JS。
响应式 Web 应用程序:这些应用程序专为在移动浏览器上运行而构建,是 PWA 或高度响应的网站版本,可提供额外友好的移动功能。
目前,市场上存在的两种主要移动测试方案是手动和自动的移动测试。 如今,通过移动设备交付的特性和功能日益复杂,这使得单独利用手动测试变得具有挑战性。因为 QA 专家在没有自动化工具、扩展或脚本的情况下执行端到端测试, 这样的过程通常乏味且耗时,而自动化应用程序测试就可以发挥作用。QA 专家通常利用移动应用程序测试工具,编写适当的脚本,执行这些脚本并获取数据。 移动应用程序测试自动化主要用于测试功能,这需要同时分析需求逻辑转换为技术语言,编写为可执行的测试代码。
1.跨平台测试
如今,用户可以自由选择各种设备和操作系统来访问应用程序。 因此,必须在这些平台上提供完美的性能。 在确定将支持的合适操作系统版本后,查看哪些设备是正确的匹配项并需要进行测试是至关重要的。 测试人员可以将模拟器与真机设备测试结合使用,让设备测试更具成本效益并获得很好的测试结果。
2.安全测试
安全问题是当今用户最关心的问题之一。 随着移动设备成为我们生活中不可或缺的一部分,我们经常共享大量的敏感数据,例如身份信息、密码、位置历史记录等,使这些数据容易受到威胁。 因此,必须执行安全测试以验证应用程序对恶意用户攻击的抵抗力。 为了部署有效的安全测试,有必要实施一个稳健且定义明确的策略作为有效弥合安全漏洞的基础。 在制定安全测试策略时,考虑以下因素至关重要:
(1)了解将用于运行应用程序的环境或平台,并识别攻击者可能在特定操作系统上使用的向量。
(2)开发多道防线,包括具有静态、动态和取证分析的移动应用程序测试工具,使用这些测试工具来模拟攻击者可能入侵应用程序的不同方式。
(3)从攻击者的角度运行测试,使用户能够更好地理解程序的弱点和陷阱以及攻击者如何利用这些进行入侵。
3.网络连通性测试
尽管用户可能大部分时间都在使用办公室 WiFi 或在家中拥有良好的网络连接,但仍有相当一部分人面临不稳定的网络连接和低速互联网的挑战。 在这种不利的条件下,不一致的网络接收会导致在可变网络速度之间切换时出现高延迟或性能不佳。 此时,QA 团队必须确保从 3G、4G、5G 到 LTE 再到 WiFi 的多种网络速度和条件下的无缝和一致的性能,并考虑网络、速度之间的突然变化,甚至断开连接产生的表现。
4.用户体验/用户界面测试
通常,一款优秀的移动应用程序依赖于其人性化和优雅的用户界面 (UI) 和用户体验 (UX)。 一方面,高效的 UI 测试有助于解释应用程序的易用性、一致性和逻辑性、可访问性和兼容性,方便了解应用程序如何与最终用户交互。 另一方面,用户体验测试涉及测试用户体验的多个方面,以确定应用程序及其元素与受众交互的正确匹配方式。 在执行 UX 测试时,必须确保以下检查点:通过应用程序轻松导航、快速的交易和下单流程(如果有)、用户充分访问产品信息、结合用户反馈改进用户体验等等。
5.跨多个屏幕尺寸进行测试
由于测试人员需要考虑跨不同平台和设备测试应用程序,因此考虑各种设备的不同规格和尺寸同样重要。 屏幕尺寸是测试过程中的一个重要组成部分,因为它可以显示对应用程序布局产生不良影响的错误。 当应用程序无法在特定维度上进行适当调整时,它会影响许多元素,包括屏幕上遗漏的一些关键功能,失去其实用性的重要部分,并恶化用户的数字体验和整体品牌价值。
6.应用大小和存储测试
通常情况下,用户会避免在其设备上安装占用过多空间的应用程序。 首先,开发人员和测试人员必须专注于在不影响应用程序的可用性的情况下尽可能优化应用程序的大小。 此外,测试人员应确保应用程序大小不会超过每个更新或新版本的特定限制,占用的内存过大可能导致最终用户停止更新或卸载这些应用程序。
7.应用隐私权限测试
软件开发商不愿通过过多的应用程序权限请求来吓跑用户,过多权限请求让用户感到隐私问题受到困扰。 几年前,有 215,000 个应用程序因请求和收集大量用户数据或其他侵犯隐私的行为而从 App Store 中下架。 测试人员需要确保该应用程序不会寻求任何在使用该应用程序时未使用的权限。 同样,测试人员应确保删除应用程序后一并删除了已授权的权限。 此外,测试权限的正确组合也很重要。
8.应用升级测试
对于移动应用测试人员来说非常重要。 此过程有助于确保应用程序不会在升级时崩溃,这可能是因为开发团队提供了不匹配的版本号。 此外,升级后的保留历史数据对于用户在以前版本中保存的确定偏好至关重要,以避免在使用该应用程序时出现麻烦。 例如,在送餐应用程序、出租车应用程序或数字钱包和银行应用程序中,用户会保存大量数据,如卡详细信息、地址、联系信息等,每次升级都必须适当保留历史数据。
9.性能测试
随着全球用户转向移动设备,他们使用的每个应用程序的性能都会影响其在用户中的接受度和受欢迎程度。 因此,性能测试成为应用程序测试管道中的主要元素,因此测试团队应检查应用程序响应时间和延迟,以跟踪和预测跨众多场景和用例的性能。 当大量用户同时使用应用程序时,必须检查应用程序的性能,以及在服务器上造成重大负载,得到准确的生产预判值。
为自动化移动应用程序测试选择合适的工具,设置适当的测试环境对于移动应用程序测试至关重要。 根据被测应用程序的要求安排测试平台或测试环境。 在一些场景中,测试台可以是测试环境和测试信息的组合。 要为移动应用程序测试选择合适的测试台,可以使用以下任一方法或组合:
1.模拟器
模拟器主要透过硬件或软件使得一台计算机系统(称作主 host)在行为上类似于另外一台设备或程序(称作客户 guest)。模拟器一般允许在主系统上运行给客户系统设计的软件或者外部设备。虚拟机(VM)是计算机系统的仿真器,通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,能提供物理计算机的功能。
一般来说不用刻意对虚拟技术进行定义和区别,测试人员更侧重于这种技术带来的结果,即可以通过软件/工具创造一个符合测试设备软件/硬件的环境。市场上手机、平板的配置五花八门,这个时候虚拟设备往往不能取代真机,而常常用于开发、测试环节的 debug。但是对于 PC、Mac 来说系统因素一般是产品运行的关键,开发和测试一般会倾向使用虚拟机完成工作任务。
2.真机
真实的搭载操作系统的硬件设备,可以是电脑、平板、手机。测试人员从终端用户的角度,对真机进行测试往往能发现真实场景下的兼容性问题。通过从市场完成采购,或者从设备平台进行租赁是常见的获取方法。真机常见于手机、平板等可移动设备的测试。
3.云测试平台
云测试是基于云平台提供测试服务的新模式。面向企业及开发者,通过云端调配和使用测试工具、测试设备、测试工程师,以解决企业软件和系统的功能、兼容、性能、安全等全周期的测试需求。通过网络协议等手段便可以在本地连接托管到机房的目标真机进行测试活动。具有设备多、便捷、弱维护成本、即用型等特点。一般情况云测平台提供的是托管在机房的可移动手机、平板的真机。
在我们拥有以上的测试储备后,根据项目需求特性、架构实现、项目交付时长、项目成本等来定制项目的测试策略。
1.针对项目架构实现,选择测试方案,如混合开发移动应用,选择自动化和手工搭配使用,模拟器与真机结合形式进行功能测试。
2.根据项目交付时长、项目交付要求,选择测试方法。如为期三个月的全新小程序开发,需要用到测试方法:功能、兼容性、性能、安全测试、用户体验测试。
3.依照用户使用移动应用程序设备的市场排行,或者首次投入市场或是阶段性迭代新功能,来挑选测试设备。
工欲善其事,必先利其器。作为软件测试人员,接收到测试任务前,建议先思考清晰此次任务的测试策略,大的方向确定,按此实践并持续改进,交付项目的质量从一开始会得到一定程度的保证。
《浅谈兼容性测试》-曾文浩
《一页纸测试策略》-林冰玉