移动测试 – 应用
移动测试 – 应用
移动应用程序测试的简单定义如下:“移动应用程序测试是测试为手持移动设备开发的应用程序软件的功能、可用性和一致性的过程。移动应用程序测试可以是自动化或手动类型的测试。”
注意– 为了更好地理解,我们假设我们正在测试用于在线机票预订系统的移动应用程序。
功能测试
功能测试是任何应用程序的最基本测试,以确保它按照定义的要求工作。与其他基于用户界面的应用程序类似,移动应用程序需要在用户场景中进行大量人工交互。
示例测试场景 –
-
验证是否仅在选定日期显示选定源目的地的航班可用性。
-
确认搜索结果中不包含过去的日期。
兼容性测试
在移动应用程序测试方面,兼容性测试拥有最高的堆栈。移动应用程序兼容性测试的目的通常是确保应用程序的关键功能在特定设备上按预期运行。兼容性本身应该只需要几分钟,并且可以提前计划好。
决定应该执行哪些移动设备兼容性测试并不是一件容易的事(因为对所有可用设备进行测试是不可能的)。因此,准备一个包含所有可能组合的测试矩阵,并让客户对其进行优先排序。
示例测试场景 –
- 验证是否使用 Android 设备成功执行航班搜索。
- 验证是否已成功为 Apple iPad 执行航班搜索。
本地化测试
如今,大多数应用程序都是为全球使用而设计的,关注语言、时区等区域轨迹非常重要。当有人更改时区时验证应用程序的功能非常重要。必须考虑到,有时西方设计可能不适用于东方国家的观众,反之亦然。
示例测试场景 –
-
当我们使用不同语言(或非英语语言)的移动应用程序时,确认没有 UI 或数据截断问题。
-
验证您的移动应用程序是否已妥善处理时区更改。
实验室测试
通常由网络运营商进行的实验室测试是通过模拟完整的无线网络来完成的。执行此测试是为了找出移动应用程序使用语音和/或数据连接来执行某些功能时的任何故障。
示例测试场景 –
-
验证客户与支持人员进行语音聊天时没有故障。
性能测试
移动性能测试涵盖客户端应用性能、服务器性能和网络性能。确保性能测试场景涵盖所有这些领域非常重要。在性能测试工具的帮助下,给定预定义的负载和事务组合,不难识别现有网络、服务器和服务器端应用程序瓶颈。
示例测试场景 –
-
验证可用航班检查只需要合理的时间。
-
验证在检查航班可用性时,移动设备运行正常且未挂起。
压力测试
压力测试是发现异常、挂起和死锁的必要条件,这些异常、挂起和死锁在功能和用户界面测试期间可能会被忽视。以下是压力测试的一些标准列表 –
-
使用尽可能多的数据加载您的应用程序,以尝试达到其断点。
-
一遍又一遍地执行相同的操作。
-
以不同的速度执行重复操作——非常快或非常慢。
-
让您的应用程序长时间运行,既可以与设备交互,也可以让它闲置,或者执行一些需要很长时间的自动任务,例如幻灯片。
-
将屏幕点击和按键随机发送到您的应用程序。
-
在您的设备上运行多个应用程序,以便您可以经常在您的应用程序和其他设备应用程序之间切换。
示例测试场景 –
- 检查 1000 名用户正在访问移动应用程序以搜索国内航班。
- 检查 1000 名用户正在访问移动应用程序以搜索国际航班。
安全测试
黑客攻击、身份验证和授权策略、数据安全、会话管理和其他安全标准的漏洞应作为移动应用程序安全测试的一部分进行验证。在通过网络对用户进行身份验证时,应用程序应加密用户名和密码。
测试安全相关场景的一种方法是通过代理服务器(如 OWASP Zed Attack Proxy)路由您的手机数据并查找漏洞。
示例测试场景 –
-
验证应用程序不会在两个不同的移动设备上使用相同的用户凭据运行。
-
如果会话保持非活动状态超过 15 分钟,请验证它是否会自动过期。
内存泄漏测试
与其他计算机相比,移动设备的内存非常有限,并且移动操作系统的默认行为是终止使用过多内存并导致用户体验不佳的应用程序。
内存测试对于移动应用程序非常重要,以确保每个应用程序在整个用户旅程中保持优化的内存使用。建议我们在实际目标设备上进行内存测试,因为系统架构从模拟器到实际设备是不同的。
示例测试场景 –
-
做十次航班可用性检查并记下每次检查增加的内存使用量。
-
保持应用程序运行十分钟并观察内存使用情况是否保持稳定。
功耗测试
不同的移动设备中使用了多种类型的电池(即镍镉/锂离子/镍金属混合电池)。虽然我们专注于功耗测试,但我们需要测量每个活动级别的电池状态。它将让我们更好地了解单个应用程序的功耗。
功耗测试可手动完成;此外,市场上还有一些免费工具可用,例如 Trepn Profiler、Power Tutor 和 Nokia Energy Profiler。这些应用程序可以在智能手机或平板电脑上显示实时功耗。
示例测试场景 –
-
使用移动应用程序搜索航班可用性,并检查功耗是否保持最小。
-
保持移动应用程序处于理想状态;当应用程序没有活动时,验证是否没有功耗。
中断测试
应用程序在运行时可能会面临多次中断,例如来电或网络覆盖中断和恢复。这可以再次区分 –
- 传入和传出 SMS 和 MMS
- 来电和去电
- 传入通知
- 电池拆卸
- 用于数据传输的电缆插入和移除
示例测试场景 –
-
确认航班可用性检查在接到来电后暂停并恢复。
-
验证用户可以在使用应用程序时拒绝呼叫,然后再次恢复相同的应用程序。
可用性测试
可用性测试根据目标受众的以下三个标准评估应用程序 –
-
效率– 指定用户在特定环境中实现指定目标的准确性和完整性。
-
有效性– 与实现目标的准确性和完整性相关的资源消耗。
-
满意度– 工作系统对其用户和受其使用影响的其他人的舒适度和可接受性。
从应用程序设计的早期阶段就进行可用性测试非常重要,不应仅在应用程序完成时才进行。可用性测试需要用户大量参与,输出可能会影响应用程序设计,在项目后期很难改变。
示例测试场景 –
- 航班可用性检查应在主页上。
- 赞助广告不应显示在内容中间。
安装测试
安装测试验证安装过程顺利进行,用户不必面对任何困难。
示例测试场景 –
- 验证安装过程是否顺利且不会花费很长时间。
- 通过企业应用商店验证安装是否成功。
卸载测试
卸载测试的基础可以用一句话概括为“卸载应该一口气扫出App相关数据”。
示例测试场景 –
-
验证卸载后是否成功删除了所有与应用程序相关的文件。
-
如果它是一个存储媒体文件的应用程序(如 Whatsapp 或 Facebook),即使在卸载应用程序后也要保留这些文件。
更新测试
我们需要对移动应用程序更新非常谨慎。人们经常抱怨应用程序在更新后无法令人满意地工作。因此,在更新测试下,我们确认该应用程序将像以前一样工作非常重要。简而言之,它不应该破坏任何东西。移动应用程序更新可以通过两种方式进行 –自动更新和手动更新。
示例测试场景 –
- 验证应用程序在自动更新后成功运行。
- 验证更新进度是否正确显示。
认证测试
要获得合规证书,每个移动设备都需要根据不同移动平台设定的准则进行测试。
示例测试场景 –
-
验证应用程序在 iPhone 上安装时是否符合 iOS 手机的策略。
-
验证应用程序在 Android 上安装时是否符合 Android 手机的政策。