移动应用测试:示例测试用例和测试场景

学习者经常问的一个问题是:如何测试移动应用程序?在本教程中,我们提供测试移动应用程序的示例测试场景/测试用例。

您可以根据您的移动测试要求执行部分或所有测试用例。测试用例根据移动测试类型进行组织。

移动应用程序的功能测试

移动应用程序的功能测试是一个测试移动应用程序功能的流程,例如用户交互以及用户可能执行的事务。移动应用程序功能测试的主要目的是确保质量,满足指定期望,减少风险或错误以及提高客户满意度。

功能测试中相关的各种因素是:

  1. 根据业务功能使用类型(银行、游戏、社交或商业)划分的应用程序类型
  2. 目标受众类型(消费者、企业、教育)
  3. 用于分发应用程序的分发渠道(例如,Apple App Store、Google Play、直接分发)

Functional Testing of Mobile Application

功能测试中最基本的测试场景可被视为:

  1. 验证所有必需的强制字段是否按要求工作。
  2. 验证强制字段是否在屏幕上以与非强制字段不同的方式显示。
  3. 验证应用程序在启动/停止时是否按要求工作。
  4. 验证当有来电时应用程序是否进入最小化模式。为了验证这一点,我们需要使用第二部手机拨打测试设备。
  5. 验证应用程序运行时手机是否能够存储、处理和接收短信。为了验证这一点,我们需要使用第二部手机向正在测试的设备(应用程序正在运行)发送短信。
  6. 验证设备是否能够在必要时执行所需的多任务要求。
  7. 验证应用程序是否允许必要的社交网络选项,例如共享、发布和导航等。
  8. 验证应用程序是否支持Visa、Mastercard、Paypal等支付网关交易(如果应用程序要求)。
  9. 验证应用程序中是否启用了必要的页面滚动场景。
  10. 验证应用程序中相关模块之间的导航是否符合要求。
  11. 验证截断错误是否绝对在可承受的范围内。
  12. 验证当出现任何网络错误时,用户是否收到适当的错误消息,例如“网络错误。请稍后重试”。
  13. 验证已安装的应用程序是否能够使其他应用程序正常运行,并且不会占用其他应用程序的内存。
  14. 验证应用程序在硬重启或系统崩溃时是否从上次操作恢复。
  15. 验证应用程序的安装是否可以顺利完成,前提是用户拥有必要的资源,并且不会导致任何重大错误。
  16. 验证应用程序是否根据要求执行自动启动功能。
  17. 验证应用程序是否在所有移动版本(即2G、3G和4G)中按要求运行。
  18. 执行回归测试,以在系统现有区域进行更改后发现新的软件错误。同时重新运行以前执行的测试,以确定程序行为是否因更改而未发生变化。
  19. 验证应用程序是否为不熟悉该应用程序的用户提供可用的用户指南。

性能测试用例

此类测试的基本目标是确保应用程序在某些性能要求下(例如大量用户访问或移除数据库服务器等关键基础设施部分)表现可接受。

移动应用程序性能测试的一般测试场景是:

  1. 确定应用程序在不同负载条件下是否按要求运行。
  2. 确定当前网络覆盖是否能够支持应用程序在高峰、平均和最低用户水平下的运行。
  3. 确定现有客户端-服务器配置设置是否提供所需的最佳性能水平。
  4. 识别阻止应用程序达到所需可接受水平的各种应用程序和基础设施瓶颈。
  5. 验证应用程序的响应时间是否符合要求。
  6. 评估产品和/或硬件,以确定其是否能够处理预期负载量。
  7. 评估电池寿命是否能够支持应用程序在预期负载量下运行。
  8. 验证网络从2G/3G切换到WIFI或反之时的应用程序性能。
  9. 验证每个必需的CPU周期是否经过优化。
  10. 验证电池消耗、内存泄漏、GPS、摄像头等资源的性能是否在所需指导方针内。
  11. 验证用户负载严苛时应用程序的持久性。
  12. 验证设备移动时的网络性能。
  13. 验证仅在需要间歇性连接阶段时应用程序的性能。

安全测试用例

Security Testing Test Cases

安全测试的基本目标是确保应用程序的数据和网络安全要求符合指南。

以下是检查移动应用程序安全性的最关键领域。

  1. 验证应用程序是否能够抵御任何暴力攻击,暴力攻击是一种用于猜测用户的用户名、密码或信用卡号码的自动化试错过程。
  2. 验证应用程序是否不允许攻击者在没有适当身份验证的情况下访问敏感内容或功能。
  3. 验证应用程序是否具有强大的密码保护系统,并且不允许攻击者获取、更改或恢复其他用户的密码。
  4. 验证应用程序是否没有会话过期不足的问题。
  5. 识别动态依赖项并采取措施防止任何攻击者利用这些漏洞。
  6. 防止SQL注入相关攻击。
  7. 识别并从任何非托管代码场景中恢复。
  8. 确保证书已验证,应用程序是否实施了证书锁定。
  9. 保护应用程序和网络免受拒绝服务攻击。
  10. 分析数据存储和数据验证要求。
  11. 启用会话管理,以防止未经授权的用户访问未经请求的信息。
  12. 检查是否有加密代码被破解并确保其得到修复。
  13. 验证业务逻辑实现是否安全,并且不易受到外部攻击。
  14. 分析文件系统交互,确定任何漏洞并纠正这些问题。
  15. 验证协议处理程序,例如尝试使用恶意iframe重新配置应用程序的默认登录页面。
  16. 防止恶意客户端注入。
  17. 防止恶意运行时注入。
  18. 调查文件缓存并防止由此产生的任何恶意可能性。
  19. 防止应用程序键盘缓存中不安全的数据存储。
  20. 调查 cookie 并防止 cookie 的任何恶意行为。
  21. 提供定期审计以进行数据保护分析。
  22. 调查自定义创建的文件并防止这些文件的任何恶意行为。
  23. 防止缓冲区溢出和内存损坏情况。
  24. 分析不同的数据流并防止由此产生的任何漏洞。

可用性测试用例

Usability Testing Test Cases

移动应用程序的可用性测试过程旨在开发一个具有较少功能但快速易用的应用程序,而不是一个功能众多但运行缓慢且难以使用的应用程序。主要目标是确保我们最终得到一个易于使用、直观且与行业公认的广泛使用的界面相似的应用程序。

  1. 确保按钮具有所需的大小,并适合大手指操作。
  2. 确保按钮放置在屏幕的同一部分,以避免混淆最终用户。
  3. 确保图标自然且与应用程序一致。
  4. 确保具有相同功能的按钮也应具有相同的颜色。
  5. 确保启用点击放大和缩小功能的验证。
  6. 确保键盘输入能够以适当的方式最小化。
  7. 确保应用程序提供一种方法,在触摸错误项目时,在可接受的时间内返回或撤销操作。
  8. 确保上下文菜单不过载,因为它必须快速使用。
  9. 确保文本保持简单明了,以便用户可见。
  10. 确保短句和段落对最终用户可读。
  11. 确保字体大小足够大以可读,但不要太大或太小。
  12. 验证当用户开始下载大量数据时,应用程序是否会提示用户,因为这可能不利于应用程序性能。
  13. 验证应用程序是否从不同状态关闭,并验证它是否在相同状态下重新打开。
  14. 确保当提供语言翻译功能时,所有字符串都转换为适当的语言。
  15. 确保应用程序项目始终根据用户操作进行同步。
  16. 确保为最终用户提供用户手册,以帮助不熟悉应用程序操作的最终用户理解和操作应用程序。

可用性测试通常由人工用户执行,因为只有人类才能理解其他用户的感受和舒适度。

兼容性测试用例

在移动设备上执行兼容性测试是为了确保应用程序在不同尺寸、分辨率、屏幕、版本和硬件的移动设备上都能正常工作。

以下是兼容性测试最突出的领域。

  1. 验证应用程序的用户界面是否符合设备的屏幕尺寸,没有文本/控件部分不可见或不可访问。
  2. 确保应用程序的文本对所有用户都可读。
  3. 确保当应用程序运行时启用通话/闹钟功能。应用程序在通话事件发生时最小化或暂停,然后在通话停止时恢复。

可恢复性测试用例

  1. 崩溃恢复和交易中断
  2. 验证在意外中断/崩溃情况后应用程序的有效恢复情况。
  3. 验证应用程序在电源故障(即电池耗尽或设备突然手动关机)期间如何处理交易。
  4. 验证连接暂停的过程,系统需要重新建立连接以恢复受暂停连接直接影响的数据。利用正确的移动测试工具可以帮助确保无缝的恢复过程。

重要清单

  1. 安装测试(应用程序是否能在合理的时间内以所需标准安装)
  2. 卸载测试(应用程序是否能在合理的时间内以所需标准卸载)
  3. 网络测试用例(验证网络是否在所需负载下运行,以及网络在测试过程中是否能够支持所有必要的应用程序)
  4. 检查未映射的键
  5. 检查应用程序启动画面
  6. 在中断和其他时间(如网络问题)持续进行键盘输入
  7. 处理退出应用程序的方法
  8. 应用程序在后台运行时充电器效应
  9. 低电量和高性能需求
  10. 应用程序运行时移除电池
  11. 应用程序的电池消耗
  12. 检查应用程序副作用