Mobile Testing 简明教程
Mobile Testing - Application
移动应用程序测试的一个简单定义如下:“ Mobile application testing 是为手持移动设备开发的 application software 的功能性、可用性和一致性进行测试的过程。移动应用程序测试可以是自动化或手动类型的测试。”
Note - 为了更好地理解,我们假设我们正在测试一个用于在线航班订票系统的移动应用程序。
Functional Testing
功能测试是确保任何应用程序按照定义要求工作最基本的测试。与其他基于用户界面的应用程序类似,移动应用程序需要用户在用户场景中进行大量的人机交互。
示例测试场景 -
-
仅在所选日期验证是否显示所选出发地目的地的航班信息。
-
验证搜索结果中不包含过去日期。
Compatibility Testing
相容性测试是移动应用测试中涉及范围最广的部分。移动应用相容性测试的目的通常是为了确保应用的关键功能在特定设备上按预期运行。相容性本身只需要短短几分钟,还可以提前规划。
决定应在哪些移动设备上执行相容性测试并非易事(因为无法对所有可用设备进行测试)。因此,应准备一个包含所有可能组合的测试矩阵,并让客户对其进行优先级排序。
示例测试场景 -
-
验证在 Android 设备上成功执行航班搜索。
-
验证在 Apple iPad 上成功执行航班搜索。
Localization Testing
如今,大多数应用都设计为在全球范围内使用,因此非常重要的是关注区域性问题,例如语言、时区等。当用户更改时区时验证应用功能非常重要。必须考虑到,有时西方设计可能不适用于东方国家受众,反之亦然。
示例测试场景 -
-
验证使用不同语言(或者说,非英语语言)在移动应用中没有用户界面或数据截断问题。
-
验证时区更改对移动应用执行得平滑。
Laboratory Testing
实验室测试通常由网络运营商执行,通过模拟完整的无线网络来进行。执行此测试是为了找出移动应用在使用语音和/或数据连接执行某些功能时出现的任何故障。
示例测试场景 -
-
验证客户与支持人员进行语音聊天时没有出现故障。
Performance Testing
移动性能测试涵盖客户端应用性能、服务器性能和网络性能。确保性能测试场景涵盖所有这些领域非常重要。借助性能测试工具,可以轻松识别现有网络、服务器和服务器端应用瓶颈(给定预定义的负载和事务组合)。
示例测试场景 -
-
验证航班信息查询仅耗费合理的时间。
-
验证在查询航班信息时,移动设备正常运行且不会挂起。
Stress Testing
压力测试是必须的,可以找出功能和用户界面测试中可能被忽视的异常、挂起和死锁。以下是压力测试的一些标准 -
-
尽可能向应用加载更多数据以尝试达到其断点。
-
重复执行相同操作。
-
以不同速度执行重复操作 - 非常快或非常慢。
-
长时间运行你的应用程序,既可以与设备交互,也可以仅仅让它处于空闲状态,或者执行一项需要很长时间的自动任务,例如幻灯片播放。
-
向你的应用程序随机发送屏幕点击和按键。
-
在你的设备上运行多个应用程序,以便你可以频繁在你的应用程序和其他设备应用程序之间切换。
示例测试场景 -
-
检查 1000 个用户正在访问移动应用程序以搜索国内航班。
-
检查 1000 个用户正在访问移动应用程序以搜索国际航班。
Security Testing
破解、认证和授权策略、数据安全、会话管理和其他安全标准的漏洞应作为移动应用程序安全测试的一部分来验证。应用程序应在通过网络认证用户时加密用户名和密码。
测试与安全相关的场景的一种方法是通过代理服务器(如 OWASP Zed Attack Proxy)路由手机数据,并寻找漏洞。
示例测试场景 -
-
验证应用程序不会在两个不同的移动设备上使用相同的用户凭据进行操作。
-
验证会话如果在 15 分钟以上保持不活动状态,是否会自动过期。
Memory Leakage Testing
与其他计算机相比,移动设备的内存非常有限,而且移动操作系统默认会终止使用过多内存并造成不良用户体验的应用程序。
内存测试对于移动应用程序非常重要,以确保每个应用程序在整个用户使用过程中保持优化的内存使用情况。建议我们在实际目标设备上进行内存测试,因为系统架构与模拟器与实际设备不同。
示例测试场景 -
-
进行十次航班可用性检查,并记下每次检查的内存使用量。
-
使应用程序运行十分钟,并观察内存使用量是否保持稳定。
Power Consumption Testing
不同的移动设备中使用着几种类型的电池(即镍镉/锂离子/镍金属混合)。在关注功耗测试时,我们需要测量每个活动级别的电池状态。这将使我们更好地了解单个应用程序的功耗。
功耗测试可以通过手动进行;市场上也有一些免费工具,如 Trepn Profiler、Power Tutor 和 Nokia Energy Profiler。这些应用程序可以显示智能手机或平板电脑上的实时功耗。
示例测试场景 -
-
使用移动应用程序搜索航班的可用性,并检查功耗是否保持在最低限度。
-
保持移动应用程序处于理想状态;验证当应用程序没有活动发生时没有功耗。
Interrupt Testing
应用程序在运行时可能会遇到各种中断,如来电或网络覆盖中断和恢复。这可以再次区分为 −
-
收发短信和彩信
-
Incoming and Outgoing calls
-
Incoming Notifications
-
Battery Removal
-
数据传输的电缆插入和移除
示例测试场景 -
-
验证航班可用性检查在收到来电后暂停,并在来电后恢复。
-
验证用户在使用 App 时可以拒绝来电,并在此后重新启动同一 App。
Usability Testing
可用性测试根据以下三个目标人群标准评估应用程序:
-
Efficiency − 指定用户在特定环境中实现特定目标的准确性和完整性。
-
Effectiveness − 所耗费的资源,与实现目标的准确性和完整性相关。
-
Satisfaction − 工作系统让其用户和其他受其使用影响的人感到舒适并可接受。
在应用程序设计早期进行可用性测试非常重要,不要仅在应用程序完成时才进行。可用性测试需要用户的大量参与,并且输出结果可能会影响应用程序设计,而在项目的后期阶段更改起来非常困难。
示例测试场景 -
-
航班可用性检查应该在首页上。
-
赞助广告不应显示在内容中间。
Uninstallation Testing
卸载测试的基础知识可以概括为一行“卸载应该一次性清除与 App 相关的数据”。
示例测试场景 -
-
验证卸载后所有与应用程序相关联的文件均已成功移除。
-
如果这是一个存储媒体文件的 App(如 Whatsapp 或 Facebook),则即使在卸载 App 后也应保留文件。