移动测试 - 应用程序

移动应用程序测试的简单定义是这样的:"移动应用程序测试是一个过程,通过该过程测试为手持移动设备开发的应用软件的功能、可用性和一致性。移动应用程序测试可以是自动或手动类型的测试。"

注意 − 为了更好地理解,我们假设我们正在测试在线机票预订系统的移动应用程序。

功能测试

功能测试是任何应用程序的最基本测试,以确保它按照定义的要求运行。与其他基于用户界面的应用程序类似,移动应用程序在用户场景中需要大量人机交互。

示例测试场景 −

  • 验证是否仅在选定日期显示选定来源目的地的航班可用性。

  • 验证搜索结果中不包含过去的日期。

兼容性测试

在移动应用程序测试中,兼容性测试占据最高水平。一般来说,移动应用程序兼容性测试的目的是确保应用程序的关键功能在特定设备上按预期运行。兼容性本身只需几分钟,并且可以提前规划。

决定应该对哪些移动设备进行兼容性测试并非易事(因为使用所有可用设备进行测试几乎是不可能的)。因此,请准备一个包含所有可能组合的测试矩阵,并让客户对其进行优先排序。

示例测试场景 −

  • 验证是否使用 Android 设备成功执行了航班搜索。
  • 验证是否使用 Apple iPad 成功执行了航班搜索。

本地化测试

如今,大多数应用程序都是为全球使用而设计的,因此关注语言、时区等区域性因素非常重要。当有人更改时区时,验证应用程序的功能非常重要。必须考虑到,有时西方设计可能不适合东方国家的受众,反之亦然。

示例测试场景 −

  • 验证当我们使用不同语言(或非英语)的移动应用程序时,不存在 UI 或数据截断问题。

  • 验证您的移动应用程序是否能妥善处理时区更改。

实验室测试

实验室测试通常由网络运营商进行,通过模拟完整的无线网络来完成。执行此测试是为了找出移动应用程序使用语音和/或数据连接执行某些功能时的任何故障。

示例测试场景 −

  • 确认客户与支持人员进行语音聊天时没有出现故障。

性能测试

移动性能测试涵盖客户端应用程序性能、服务器性能和网络性能。确保性能测试场景涵盖所有这些领域非常重要。借助性能测试工具,在给定预定义负载和事务组合的情况下,识别现有网络、服务器和服务器端应用程序瓶颈并不困难。

示例测试场景 −

  • 验证航班可用性检查仅花费合理的时间。

  • 验证在检查航班可用性时,移动设备是否正常运行且不会挂起。

压力测试

压力测试是必须的,它可以发现在功能和用户界面测试期间可能被忽视的异常、挂起和死锁。以下是压力测试的一些标准列表 −

  • 向您的应用程序加载尽可能多的数据,以尝试达到其临界点。

  • 反复执行相同的操作。

  • 以不同的速度执行重复操作 – 非常快或非常慢。

  • 让您的应用程序长时间运行,既与设备交互又让其闲置,或者执行一些需要很长时间的自动任务,例如幻灯片放映。

  • 随机向您的应用程序发送屏幕点击和按键。

  • 在您的设备上运行多个应用程序,以便您可以经常在您的应用程序和其他设备应用程序之间切换。

示例测试场景 −

  • 检查是否有 1000 名用户正在访问移动应用程序以搜索国内航班。
  • 检查是否有 1000 名用户正在访问移动应用程序以搜索国际航班。

安全测试

应将黑客攻击、身份验证和授权策略、数据安全、会话管理和其他安全标准的漏洞作为移动应用程序安全测试的一部分进行验证。应用程序在通过网络对用户进行身份验证时应加密用户名和密码。

测试安全相关场景的一种方法是通过代理服务器(如 OWASP Zed Attack Proxy)路由您的移动设备数据并寻找漏洞。

示例测试场景 −

  • 验证应用程序不会在两个不同的移动设备上使用相同的用户凭据进行操作。

  • 验证会话是否在超过 15 分钟处于非活动状态时自动过期。

内存泄漏测试

与其他计算机相比,移动设备的内存非常有限,并且移动操作系统的默认行为是终止使用过多内存并导致用户体验不佳的应用程序。

内存测试对于移动应用程序非常重要,以确保每个应用程序在整个用户旅程中保持优化的内存使用率。建议我们在实际目标设备上进行内存测试,因为模拟器和实际设备的系统架构不同。

示例测试场景 −

  • 进行十次航班可用性检查,并记下每次检查增加的内存使用量。

  • 让应用程序运行十分钟,观察内存使用量是否保持稳定。

功耗测试

不同的移动设备使用几种类型的电池(即镍镉/锂离子/镍金属混合)。虽然我们专注于功耗测试,但我们需要在每个活动级别测量电池的状态。这将使我们更好地了解单个应用程序的功耗。

功耗测试可以手动完成;市场上也有一些免费工具,如 Trepn Profiler、Power Tutor 和 Nokia Energy Profiler。这些是可以在智能手机或平板电脑上显示实时功耗的应用程序。

示例测试场景 −

  • 使用移动应用程序搜索航班信息,并检查功耗是否保持在最低水平。

  • 保持移动应用程序处于理想状态;验证应用程序没有活动时是否没有功耗。

中断测试

应用程序在运行时可能会面临多种中断,例如来电或网络覆盖中断和恢复。这可以再次与 − 区分开来

  • 传入和传出 SMS 和 MMS
  • 传入和传出电话
  • 传入通知
  • 电池移除
  • 插入和移除电缆以进行数据传输

示例测试场景 −

  • 验证航班可用性检查是否暂停并在接到来电后恢复。

  • 验证用户是否可以在使用应用程序时拒绝来电,然后再次恢复同一应用程序。

可用性测试

可用性测试根据以下三个标准对目标受众的应用程序进行评估 −

  • 效率 − 指定用户在特定环境中实现指定目标的准确性和完整性。

  • 有效性 − 与实现目标的准确性和完整性相关的资源消耗。

  • 满意度 −工作系统对于其用户和其他受其使用影响的人来说的舒适度和可接受性。

从应用程序设计的早期阶段开始进行可用性测试非常重要,而不应该只在应用程序完成后才进行。可用性测试需要大量用户参与,并且输出可能会影响应用程序设计,这在项目后期很难改变。

示例测试场景 −

  • 航班可用性检查应在主页上。
  • 赞助广告不应显示在内容中间。

安装测试

安装测试验证安装过程是否顺利进行,用户是否遇到任何困难。

示例测试场景 −

  • 验证安装过程是否顺利且不会花费很长时间。
  • 验证通过企业应用商店安装是否成功。

卸载测试

卸载测试的基础知识可以用一行来总结如"卸载应一次性清除与应用相关的数据"。

示例测试场景 −

  • 验证卸载后所有与应用相关的文件是否已成功删除。

  • 如果是存储媒体文件的应用(如 Whatsapp 或 Facebook),则在卸载应用后仍保留这些文件。

更新测试

我们需要非常谨慎地进行移动应用更新。人们经常抱怨应用在更新后无法令人满意地运行。因此,在更新测试下,我们确认应用将像以前一样运行非常重要。简而言之,它不应该破坏任何东西。移动应用更新可以通过两种方式进行 − 自动更新手动更新

示例测试场景 −

  • 验证应用程序在自动更新后是否成功运行。
  • 验证更新进度是否正确显示。

认证测试

要获得合规证书,每台移动设备都需要根据不同移动平台设置的准则进行测试。

示例测试场景 −

  • 验证应用程序安装在 iPhone 上时是否遵守 iOS 手机的政策。

  • 验证应用程序安装在 Android 上时是否遵守 Android 手机的政策。