iOS 应用测试教程:手动与自动化

什么是iOS应用测试?

iOS 应用测试 是一种测试过程,在真实的 Apple 设备上测试 iOS 应用程序,以检查它在特定的用户操作(如安装时间、用户界面、用户体验、外观、行为、功能、加载时间、性能、App Store 列表、操作系统版本支持等)方面是否按预期运行。

为什么要测试iOS应用?

iOS 应用测试 之所以需要 iOS,是因为 iOS 是 Apple 于 29 年 2007 月 XNUMX 日发布的移动应用程序平台。与 Android,Apple 不授权在非 Apple 硬件上安装 iOS。iOS 和 iOS 应用程序只能安装在 Apple 设备上,因此,您的 iOS 应用程序必须与 iOS 版本和 iOS 设备兼容。

iOS应用测试

这是开发人员创建 iOS 应用程序时常见的问题。

iOS应用测试

无论你在设计和实现上投入多少时间,错误都是不可避免的,并且会出现错误。iOS 应用程序上有一些常见的错误。如下图所示。

iOS应用测试

应用程序崩溃

使用 Apple 设备时最令人沮丧的问题之一是应用程序在执行过程中可能频繁崩溃。很多时候应用程序崩溃是因为应用程序中存在一些错误或内存泄漏。

应用程序不兼容

您的 iOS 应用程序可能在当前的 iOS 版本上完美运行,但如果 iOS 升级,它可能会由于不兼容问题而无法运行。

安全漏洞

iOS 中的安全漏洞允许黑客攻击您的 iOS 设备,窃取您的私人信息。到目前为止,不同的 iOS 版本中都发现了严重的 iPhone 安全漏洞。

内存泄漏

内存泄漏是指程序不再使用的已分配内存块。内存泄漏会导致 iOS 应用程序崩溃。
它们是错误,应该被修复。

iOS 测试 MindMap

iOS 测试思维导图

如上图所示,iOS 测试与验证 MindMap 展示了测试人员在 iOS 上进行测试时应该考虑的所有事项。

iOS 应用程序测试清单

此检查表专门用于测试 iOS 移动应用程序的特性。显然,它仅测试一般应用程序特性,而不测试其功能。

  • 检查应用程序安装到设备上所需的时间。确保应用程序在可接受的时间内安装。
  • 安装应用程序后,请检查应用程序是否有应用程序图标和名称。此外,确保图标和名称都是不言自明的,反映了应用程序的核心意图。
  • 启动应用程序并检查是否显示启动画面。
  • 检查启动画面超时和加载主屏幕所需的时间。应用程序的主屏幕应在可接受的时间内加载。如果主屏幕仅需要更多时间来加载,则用户更有可能退出甚至卸载应用程序本身。另外,请检查主屏幕中内容的加载方式。
  • 应用程序的主要功能应该一目了然。它应该不言而喻。
  • 检查应用是否支持横向和纵向方向。如果支持,请检查两种方向的应用。应用程序的用户界面应进行相应设置。
  • 在没有互联网连接的情况下启动应用程序。确保应用程序的行为符合设计/预期。应用程序在启动时可能会崩溃或仅显示空白屏幕。
  • 如果应用程序使用位置服务,则检查是否显示位置权限警报。此警报应仅向用户提示一次。
  • 如果应用程序发送推送通知,则检查是否显示推送通知权限警报。此警报也应仅向用户提示一次。
  • 启动应用程序,退出并重新启动。检查应用程序是否按设计/预期运行
  • 点击设备的 Home 键关闭应用程序,然后再次打开应用程序。检查应用程序是否按设计/预期运行。
  • 安装后,检查该应用程序是否列在 iPhone 的设置应用程序中。
  • 应用程序上线后,请检查应用程序是否可以在“App Store”中找到。应用程序将支持操作系统版本。因此,请确保应用程序可以在支持操作系统版本的设备的“App Store”中找到。此外,应用程序不应列在不支持操作系统版本的设备的“App Store”中。
  • 检查应用程序在后台运行时是否进入睡眠模式,以防止电池耗尽。
  • 如果应用程序运行缓慢或正在加载内容,请检查是否有进度状态图标(“正在加载...”),最好带有具体消息。
  • 在设备搜索栏中搜索应用程序名称。检查应用程序是否在列表中
  • 检查应用程序中执行标准操作的按钮的外观是否没有改变(例如:刷新、组织、删除、回复、返回等)
  • 检查标准按钮是否未用于其他功能,而不是通常用于

iOS 测试策略

下图介绍了一些常见的iOS测试策略类型。

iOS测试策略

自动化测试

自动化测试是 iOS 测试最大的优势。它使您能够快速检测到错误和性能问题。自动化测试的好处如下:

  • 自动化测试可以在多台设备上运行,节省您的时间
  • 自动化测试可以针对 SDK。您可以在不同的 SDK 版本上运行测试
  • 自动化测试提高您的测试效率,节省您的软件开发成本
  • 有许多开源测试框架支持 iOS 上的自动化测试

使用 OCUnit 进行单元测试

当最初的 iOS SDK 发布时,它缺少 单元测试 功能。因此,苹果重新引入了 OC单元 iOS SDK 版本 2.2 中的单元测试解决方案。

OCUnit 是 Mac OS 中 C-Objective 的测试框架。OCUnit 框架的最大优势在于能够紧密集成到 的XCode 开发环境如下图所示。

使用 OCUnit 进行单元测试

下图显示了 OCUnit 的一些优点。

使用 OCUnit 进行单元测试

使用 UIAutomation 进行 UI 测试

使用 UIAutomation 进行 UI 测试

用户界面自动化 是一个 JavaScript Apple Inc 提供的库,可用于在真实设备和 iOS 模拟器上进行自动化测试。此框架已添加到 iOS SDK4.0。使用 UI Automation,您不仅可以在模拟器上,还可以在真实设备上自动测试应用程序。

UIAutomation 为您带来以下好处:

  • 减少努力 手动测试
  • 使用更少的内存来执行所有测试
  • 简化您的 UI 测试程序(只需按一个或三个按钮即可运行完整的测试套件)

UIAutomation 工具通过脚本工作,这些脚本以 Java脚本。它模拟目标 iOS 应用程序上的用户事件。

UIAutomation 的优缺点

优点 缺点
1. 良好支持手势和旋转 它不是开源的,开发人员的支持较少
2. 可以在设备上运行 UIAutomation 测试,而不仅仅是模拟器。 无法与其他工具很好地集成
3. 开发者 Java脚本,它是一种流行的编程语言。

使用 UIAutomation 进行 UI 测试

上图表示UIAutomation框架中的一些常见的类。

  • 这个 UIA元素 类是自动化上下文中所有用户界面元素的超类
  • 这个 联合会Target 类代表被测系统的高级用户界面元素
  • 这个 用户界面日志记录器 类提供有关检索功能的测试和错误信息
  • 这个 UIAActivityView类允许访问和控制应用程序内的活动视图。
  • 这个 UIAActionSheet 类允许访问和控制应用程序内的操作表。
  • 用户 事件动作
  • UISlider 类
  • UIAButton 类
  • UIAKey 类
  • UIAKeyboard 类

其他自动化测试框架

  • 坦率:自动化 验收测试 iPhone 和 iPad 的框架
  • 韩国国际食品工业联合会 :是 iOS 整合测试 框架。它利用操作系统为视障人士提供的辅助功能属性,轻松实现 iOS 应用程序的自动化。

手动测试

探索性测试

这是没有正式测试计划的测试。探索性测试是一种低成本的测试方法,但它可能会错过 iOS 应用程序中的潜在错误。

探索性测试的优缺点

优点 缺点
1. Less 需要做好准备,尽早发现严重的错误。 要求测试人员具备较高的技能
2. 不需要 测试计划 加快错误检测。 测试覆盖率低。它不能保证测试所有需求。
3. 大多数错误都是通过某种探索性测试在早期发现的 缺乏测试文档

用户测试

用户测试是 iOS 上的一种手动测试。这种测试的目的是创建更好的应用程序,而不仅仅是 无错误 应用程序。下图显示了四种类型的用户测试

用户测试

概念测试

在将应用推向市场之前,评估用户对应用想法的反应。iOS 上的概念测试流程如下所述

概念测试

可用性测试

可用性测试 是测试你的 iOS 应用程序是否易于使用。在 iOS 测试中,可用性测试可以是 记录 去记住或者与他人分享。

有一些工具支持 iOS 上的可用性测试。

TryMyUI 移动用户测试应用程序 Android 和iOS。

Delight.io,该工具可以捕获您 iOS 应用上的真实用户交互。

Beta测试

Beta 测试是 集成测试 使用真实数据来获取用户的最终反馈。要分发您的应用进行 Beta 测试,您必须遵循以下步骤。

Beta测试

预处理:如果您正在对某个版本的最终候选版本进行 Beta 测试,请务必在将应用分发给测试人员之前对其进行验证。

通过服务查找测试人员:您从测试人员那里收集设备 ID,并将其添加到 会员中心

创建临时分发:Ad Hoc 分发允许测试人员在其设备上运行你的应用,而无需 Xcode.此步骤包括 2 个子步骤

  • 创建分发证书
  • 创建临时配置文件

征求测试人员的反馈: 测试人员进行测试并向您发送错误报告。应用发布后,您可以从 iTunes 连接。

A / B测试

A / B测试 是最有效的方法之一 评估你的 iOS 应用的有效性。 它用 随机实验 有两个设备 A 和 B。

A / B测试

A/B 测试包括三个主要步骤

  • 配置测试:准备了两个版本的 iOS 应用(A 和 B)以及测试指标
  • 测试:在设备上同时测试2个以上版本的iOS应用程序。
  • 分析: 测量并选择更好的版本发布

以下工具支持在 iOS 上进行 A/B 测试。

  • 出现:iOS 和 Android.它可以集成到您的iOS应用程序中并使测试过程更加快捷。

A/B 测试的最佳实践

  • 定义 目标 你的测试。没有目标,任何测试都是无用的。
  • 了解 最终用户首次使用你的应用
  • 运行 一种 每次更新仅测试一次。这可以节省您进行测试的时间
  • 显示器 仔细检查测试。通过监控测试,你可以从中吸取经验。

iOS 测试最佳实践

以下是组织 iOS 应用程序测试时应该了解的一些技巧

  1. 真机 了解真实的表现
  2. 提高 您的测试方法,因为传统的测试方法已不足以覆盖 iOS 测试的所有测试
  3. 运用 控制台日志 测试 iOS 应用程序。这是 iOS 的一项功能,其中包含设备上每个应用程序的信息。
  4. 文件 应用程序错误使用 内置屏幕短 命令。它可以帮助开发人员了解错误是如何发生的。
  5. 崩溃报告 是测试应用程序时非常有用的工具。它们可以检测崩溃并记录详细信息,以便您轻松调查错误。

关于 iOS 测试的误解

本节探讨了 iOS 测试中一些常见的误解和现实

在 iOS 上测试应用程序 Android 是一样的。

iOS Android 这两个平台分别由苹果公司和谷歌开发。它们完全不同。测试环境、测试框架、编程语言等等。

在 iOS 模拟器上测试应用程序就足够了。

iOS 模拟器还不足以测试应用程序。因为 iOS 模拟器有一些限制:

  • 硬件限制(摄像头、麦克风输入、传感器)
  • 你的应用界面可能看起来比在设备上运行得更快、更流畅
  • API 限制
  • 某些框架不受支持(媒体播放器、Store Kit、消息 UI..)

每个人都会在应用商店下载我的应用,因为它有很多功能

应用程序的功能越多,可能出现的错误就越多。如果应用程序仍存在许多缺陷,那么将没有用户下载它。