我们的同学经常问的一个问题是如何测试移动应用程序?在本教程中,我们提供了测试移动应用程序的示例测试场景/测试用例。
可以根据移动测试需求执行部分或全部测试用例。测试用例根据移动测试类型进行组织。
- 功能测试测试用例
- 性能测试
- 安全测试测试用例
- 可用性测试测试用例
- 兼容性测试测试用例
- 可恢复性测试测试用例
- 重要核对表
移动应用的功能测试
移动应用的功能测试是对移动应用的用户交互等功能进行测试的过程,也是对用户可能执行的事务进行测试的过程。移动应用功能测试的主要目的是保证质量,满足规定的期望,降低风险或出错,提高客户满意度。
与功能测试相关的各种因素包括
- 基于业务功能使用情况的应用程序类型(银行、游戏、社交或业务)
- 目标受众类型(消费者、企业、教育)
- 用于传播应用程序的分销渠道(例如Apple App Store、Google Play、应用宝、豌豆荚、其他厂商渠道)
功能测试中最基本的测试场景可以认为是:
- 验证所有必填字段是否都按要求工作。
- 验证必填字段是否以与非必填字段不同的方式显示在屏幕上。
- 每当应用程序启动/停止时,验证应用程序是否按要求工作。
- 验证应用程序是否在有来电时进入最小化模式。为了验证这一点,我们需要使用第二部电话来呼叫设备。
- 验证手机是否能够在应用程序运行时存储、处理和接收短信。为了验证这一点,我们需要使用第二部电话将SMS发送到正在测试的设备以及当前运行测试的应用程序的位置。
- 验证设备是否能够在必要时执行所需的多任务要求。
- 验证应用程序是否允许必要的社交网络选项,如共享、发布和导航等。
- 验证应用程序是否支持应用程序要求的任何支付网关交易,如Visa、万事达卡、贝宝等。
- 验证是否根据需要在应用程序中启用了页面滚动方案。
- 验证应用程序中相关模块之间的导航是否符合要求。
- 以验证截断误差绝对达到可承受的限度。
- 以验证用户是否接收到适当的错误消息,如“Network Error”(网络错误)。只要出现任何网络错误,“稍后再试”。
- 验证已安装的应用程序使其他应用程序能够令人满意地执行,并且不会占用其他应用程序的内存。
- 在硬重新启动或系统崩溃的情况下,验证应用程序是否在最后一次操作时恢复。
- 验证应用程序的安装是否可以顺利完成,前提是用户拥有必要的资源,并且不会导致任何重大错误。
- 验证应用程序是否按照要求执行自动启动功能。
- 验证应用程序是否符合2G、3G和4G所有移动版本的要求。
- 执行回归测试,以在对系统的现有区域进行更改后发现它们中的新软件错误。另外,重新运行以前执行的测试,以确定程序行为没有因更改而更改。
- 验证应用程序是否为不熟悉该应用程序的用户提供可用的用户指南
性能测试测试用例
这类测试的基本目标是确保应用程序在某些性能要求(如大量用户访问或移除数据库服务器等关键基础设施部件)下执行得可接受。
在移动应用程序中进行性能测试的一般测试方案包括:
- 以确定应用程序在不同负载条件下是否按要求运行。
- 以确定当前网络覆盖是否能够支持峰值、平均和最低用户级别的应用。
- 以确定现有客户端-服务器配置设置是否提供所需的最佳性能级别。
- 确定阻碍应用程序达到所需可接受级别的各种应用程序和基础设施瓶颈。
- 验证应用程序的响应时间是否符合要求。
- 评估产品和/或硬件以确定其是否能够处理预计负荷量。
- 评估电池寿命是否可以支持应用程序在预计负载量下执行。
- 当网络从2G/3G更改为WiFi(反之亦然)时,验证应用程序性能。
- 要验证每个所需的CPU周期,对其进行优化
- 要验证电池消耗、内存泄漏、GPS等资源以及相机性能是否完全符合要求的指导原则。
- 在用户负载严格时验证应用程序的寿命。
- 在移动设备时验证网络性能。
- 在仅需要断断续续的连接阶段时验证应用程序性能。
安全测试测试用例
安全测试的基本目标是确保按照准则满足应用程序的数据和网络安全要求。
以下是检查移动应用程序安全性的最关键领域。
- 为了验证应用程序是否能够抵御任何暴力攻击,这是一个用于猜测一个人的用户名、密码或信用卡号码的自动化试错过程。
- 验证应用程序是否不允许攻击者在没有正确身份验证的情况下访问敏感内容或功能。
- 验证应用程序是否具有强大的密码保护系统,并且不允许攻击者获取、更改或恢复另一个用户的密码。
- 以验证应用程序没有受到会话过期不足的影响。
- 识别动态依赖关系并采取措施防止任何攻击者访问这些漏洞。
- 防止SQL注入相关攻击。
- 以标识任何非托管代码方案并从中恢复。
- 为了确保证书是否有效,应用程序是否实现证书固定。
- 以保护应用程序和网络免受拒绝服务攻击。
- 分析数据存储和数据验证要求。
- 以启用会话管理,以防止未经授权的用户访问未经求的信息。
- 检查是否有密码学代码损坏,并确保其已修复。
- 验证业务逻辑实现是否安全,并且不容易受到来自外部的任何攻击。
- 要分析文件系统交互,确定任何漏洞并更正这些问题。
- 验证协议处理程序,例如,尝试使用恶意IFRAME重新配置应用程序的默认登录页面。
- 以防止恶意客户端注入。
- 以防止恶意运行时注入。
- 调查文件缓存并防止来自文件缓存的任何恶意可能性。
- 以防止在应用程序的键盘高速缓存中存储不安全的数据。
- 调查Cookie并防止Cookie中的任何恶意行为。
- 为数据保护分析提供定期审计。
- 调查自定义创建的文件并防止自定义创建的文件中的任何恶意行为。
- 以防止缓冲区溢出和内存损坏情况。
- 分析不同的数据流并防止来自这些数据流的任何漏洞。
可用性测试测试用例
执行移动应用程序的可用性测试过程以具有比具有许多特征的缓慢且困难的应用程序具有更少功能的快速且容易的步骤应用程序。主要目标是确保我们最终拥有易于使用、直观且类似于业界广泛使用的界面。
- 以确保按钮具有所需的大小,并适合大手指。
- 确保按钮放置在屏幕的同一部分,避免念力传给终端用户。
- 以确保图标自然且与应用程序一致。
- 以确保具有相同功能的按钮也应该具有相同的颜色。
- 要确保启用点击、放大和缩小功能的验证,执行以下操作。
- 以确保可以以适当的方式最小化键盘输入。
- 以确保应用程序提供在可接受的持续时间内在触摸错误项时返回或撤消操作的方法。
- 以确保上下文菜单不会过载,因为它必须快速使用。
- 以确保文本保持简洁和清晰,以便用户可见。
- 以确保短句和段落可供最终用户阅读。
- 确保字号足够大,便于阅读,不能太大或太小。
- 为了验证应用程序,每当用户开始下载大量数据时都会提示用户,这可能不利于应用程序的性能。
- 以验证应用程序的关闭是否从不同的状态执行,并验证它是否在相同的状态下重新打开。
- 以确保只要语言翻译工具可用,所有字符串都会转换成适当的语言。
- 以确保应用程序项始终根据用户操作进行同步。
- 以确保向终端用户提供用户手册,该用户手册帮助可能不熟悉应用程序的过程的终端用户理解和操作该应用程序
可用性测试通常由手动用户执行,因为只有人类才能理解其他用户的敏感度和舒适性。
兼容性测试测试用例
在移动设备上执行兼容性测试是为了确保由于移动设备具有不同的大小、分辨率、屏幕、版本和硬件,因此应该在所有设备上测试应用程序,以确保应用程序按预期工作。
下面是兼容性测试最突出的领域。
- 为了验证应用程序的用户界面是否与设备的屏幕大小一致,没有文本/控件部分不可见或不可访问。
- 以确保该应用程序的所有用户都可以阅读该文本。
- 以确保在应用程序运行时启用呼叫/报警功能。当发生呼叫时,应用程序被最小化或挂起,然后每当呼叫停止时,应用程序都会恢复。
可恢复性测试测试用例
- 崩溃恢复和事务中断
- 在意外中断/崩溃情况后验证有效的应用程序恢复情况。
- 验证应用程序在断电(即电池耗尽或设备突然手动关闭)期间如何处理事务
- 在连接被挂起的过程的验证中,系统需要重新建立以恢复受挂起连接直接影响的数据。
重要核对表
- 安装测试(应用程序是否可以在合理的时间内按照要求的标准进行安装)
- 卸载测试(应用程序是否可以在合理的时间内按照要求的标准卸载)
- 网络测试用例(验证网络是否在要求的负载下运行,网络在测试过程中是否能够支持所有必要的应用)
- 检查未映射的键
- 检查应用程序闪屏
- 在中断和其他时间(如网络问题)期间继续输入键盘
- 处理退出应用程序的方法
- 应用程序在后台运行时的充电器效果
- 低电池和高性能需求
- 在执行应用程序时卸下电池
- 按应用程序划分的电池消耗
- 检查应用程序副作用