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