移动应用程序测试:示例测试用例和测试场景
学员经常问的一个问题是如何测试移动应用。以下是一些示例。 测试场景和测试用例 用于移动应用程序。
您可以根据自身情况执行部分或全部测试用例。 移动测试 需求。案例按移动测试类型分类。
移动应用程序功能测试
移动应用的功能测试是对应用功能进行测试的过程,包括用户交互和用户可能执行的操作。其目的是确保质量、满足预期、降低出错风险并提升客户满意度。
功能测试中涉及的各种相关因素包括:
- 根据业务功能用途(银行、游戏、社交或商业)的应用程序类型
- Target 受众类型(消费者、企业、教育)
- 用于传播应用程序的分发渠道(例如 Apple App Store, Google 播放,直接发行)
如图所示,这些因素决定了下方每个区域的深度。
功能测试中最基本的测试场景可以概括为:
- 验证所有必填字段是否按要求工作。
- 验证必填字段在屏幕上的显示方式是否与非必填字段有明显的区别。
- 在应用程序启动或停止时,验证应用程序是否按要求运行。
- 为了验证应用程序是否会在来电时自动进入最小化模式,请使用另一部手机拨打该设备进行验证。这是核心功能。 中断测试.
- 为了验证手机在应用运行时是否能够存储、处理和接收短信,请使用另一部手机向正在运行被测应用的测试设备发送短信。
- 验证设备是否能够在需要时执行所需的多任务处理。
- 验证应用程序是否允许必要的社交网络选项,例如分享、发布和导航。
- 验证应用程序是否支持应用程序所需的任何支付网关交易,例如 Visa、Mastercard 或 PayPal。
- 验证应用程序中是否已根据需要启用页面滚动功能。
- 验证应用程序中相关模块之间的导航是否符合要求。
- 验证截断误差是否控制在可接受的范围内。
- 验证当出现网络错误时,用户是否能收到适当的错误消息,例如“网络错误。请稍后再试”。
- 验证已安装的应用程序是否能够使其他应用程序正常运行,并且不会占用其他应用程序的内存。
- 验证在硬重启或系统崩溃的情况下应用程序是否在最后一个操作处恢复。
- 验证在用户拥有必要资源的情况下,应用程序的安装是否可以顺利完成,并且不会导致任何重大错误。
- 验证应用程序是否按要求执行自动启动。
- 验证应用程序是否在所有移动网络世代(即 3G、4G 和 5G)上都能按照要求运行。
- 去表演 迭代测试 在系统进行更改后,发现现有区域中存在的新软件漏洞。此外,还要重新运行之前执行的测试,以确定程序行为是否因更改而发生变化。
- 为了验证该应用程序是否为不熟悉该应用程序的用户提供可用的用户指南。
性能测试用例
一旦各项功能运行正常,接下来的问题就是它们能否在高负载下保持稳定。
此类测试的根本目标是确保应用程序在某些性能要求下能够达到可接受的性能,例如大量用户访问或移除关键基础设施部件(如数据库服务器)。
通用测试场景 性能测试 移动应用程序中包含:
- 确定应用程序在不同负载条件下是否按要求执行。
- 确定当前网络覆盖是否能够支持峰值、平均和最低用户水平的应用。
- 确定现有的客户端-服务器配置设置是否提供所需的最佳性能级别。
- 找出导致应用程序无法达到所需可接受性能水平的各种应用程序和基础设施瓶颈。
- 验证应用程序的响应时间是否符合要求。
- 评估产品和/或硬件以确定其是否可以处理预计的负载量。
- 评估电池续航时间能否在预计负载量下支持该应用。
- 验证当网络从 4G/5G 切换到 Wi-Fi 或反之亦然时应用程序的性能。
- 验证每个必需的 CPU 周期是否都得到了优化。
- 验证电池消耗、内存泄漏以及 GPS 和相机性能等资源是否完全符合要求的准则。
- 每当用户负载严格时验证应用程序的寿命。
- 验证设备移动时的网络性能。
- 在仅有间歇性连接的情况下,验证应用程序的性能。
安全测试测试用例
性能和安全性相互重叠:能够加快应用程序速度的本地存储也是攻击者首先读取的内容。
安全测试的基本目标是确保应用程序的数据和网络安全要求按照指南得到满足。
以下是检查移动应用程序安全性的最关键领域。
- 为了验证该应用程序能够抵御任何暴力破解攻击,暴力破解攻击是一种通过反复试验来猜测用户的用户名、密码或信用卡号的自动化过程。
- 验证应用程序是否允许攻击者在未经适当身份验证的情况下访问敏感内容或功能。
- 验证该应用程序是否具有强大的密码保护系统,并且不允许攻击者获取、更改或恢复其他用户的密码。
- 验证应用程序没有遭遇会话过期不足的问题。
- 识别动态依赖关系并采取措施防止任何攻击者利用这些漏洞。
- 阻止 SQL 注入相关的攻击。
- 识别任何非托管代码场景并从中恢复。
- 确保证书已验证,并检查应用程序是否实现了证书绑定。
- 保护应用程序和网络免受拒绝服务攻击。
- 分析数据存储和数据验证要求。
- 启用会话管理,防止未经授权的用户访问未经请求的信息。
- 检查是否有任何加密代码被破解并确保已修复。
- 验证业务逻辑实现是否安全,是否容易受到来自外部的任何攻击。
- 分析文件系统交互,确定任何漏洞并纠正这些问题。
- 例如,通过尝试使用恶意 iframe 重新配置应用程序的默认登录页面来验证协议处理程序。
- 防止恶意客户端注入。
- 防止恶意运行时注入。
- 调查文件缓存并防止任何恶意的可能性。
- 防止应用程序键盘缓存中存储不安全的数据。
- 调查 cookie 并防止 cookie 进行任何恶意操作。
- 为数据保护分析提供定期审计。
- 调查自定义创建的文件,并防止利用自定义创建的文件进行任何恶意活动。
- 防止缓冲区溢出和内存损坏的情况发生。
- 分析不同的数据流,并防止其中存在任何漏洞。
可用性测试用例
即使安全但无人能操作的应用程序仍然会失败,因此可用性与技术检查同等重要。
移动应用可用性测试旨在开发一款功能精简、操作便捷的应用,而非功能繁杂、运行缓慢且难以使用的应用。其主要目标是最终获得一个易于使用、直观的界面,类似于行业广泛认可的界面。
- 确保按钮具有所需的尺寸,并且适合手指粗大的人使用。
- 为确保按钮位于屏幕的同一区域,避免给最终用户造成困惑。
- 确保图标自然并与应用程序保持一致。
- 确保功能相同的按钮颜色也相同。
- 为了确保水龙头验证成功ping 已启用放大和缩小功能。
- 确保能够以适当的方式最小化键盘输入。
- 确保应用程序在触摸错误的项目时,在可接受的时间内提供返回或撤消操作的方法。
- 为了确保上下文菜单不会过载,因为它们必须快速使用。
- 为了确保文本简洁明了,以便用户能够看清。
- 确保短句和短段落对最终用户来说易于阅读。
- 确保字体足够大,便于阅读,不会太大或太小。
- 验证应用程序是否会在用户开始下载大量数据时提示用户,因为这可能会影响应用程序的性能。
- 验证应用程序的关闭是否发生在不同的状态下,并验证它是否在相同的状态下重新打开。
- 确保在有语言翻译功能时,所有字符串都能转换成相应的语言。
- 确保应用程序项始终根据用户操作进行同步。
- 为了确保最终用户能够获得用户手册,以便在他们不熟悉应用程序工作原理时,能够理解和操作该应用程序。
可用性测试通常由人工用户进行,因为只有人类才能理解其他用户的感受和舒适度。
兼容性测试用例
同一版本在团队可能从未接触过的硬件上必须表现得完全相同。
兼容性测试 在移动设备上进行测试是因为移动设备的尺寸、分辨率、屏幕、版本和硬件各不相同,因此应该在所有设备上测试应用程序,以确保其能够按预期运行。
以下是兼容性测试最突出的领域。
- 验证应用程序的用户界面是否与设备的屏幕尺寸相匹配,以及是否存在部分不可见或无法访问的文本或控件。
- 确保应用程序的所有用户都能阅读文本。
- 为确保应用程序运行时始终启用通话和报警功能,当发生通话时,应用程序将被最小化或暂停;通话结束后,应用程序将恢复运行。
可恢复性测试用例
可恢复性测试涵盖崩溃恢复和事务中断——当设备、电池或连接在事务处理过程中出现故障时,应用程序会执行什么操作。
- 验证应用程序在意外中断或崩溃后的有效恢复情况。
- 验证应用程序在断电期间(即电池耗尽或设备手动关闭)如何处理交易。
- 验证连接中断后系统需要重新建立连接以恢复受中断连接直接影响的数据的过程。使用正确的 移动测试工具 有助于确保顺利的恢复过程。
重要的移动应用测试清单
有一些检查项目涵盖以上所有类别,很容易被遗忘。
- 安装测试(应用程序是否能在合理的时间内按照要求的标准完成安装)
- 卸载测试(应用程序是否可以在合理的时间内按照要求的标准卸载)
- 网络测试用例(验证网络在所需负载下的性能,以及网络在测试过程中是否能够支持所有必要的应用程序)
- 检查未映射的按键
- 查看应用程序启动画面
- 在中断期间或其他情况下(例如网络问题)继续输入键盘
- 处理退出应用程序的方法
- 应用程序在后台运行时的充电器效果
- 低电池和高性能需求
- 应用程序运行时移除电池
- 应用程序的电池消耗
- 检查应用副作用



