- 移动测试教程
- 移动测试 - 首页
- 移动测试 - 概述
- 移动测试 - 平台
- 移动测试 - 设备类型
- 原生 vs 混合 vs 移动网页
- 移动测试 - 设备 vs 应用
- 模拟器 vs 仿真器
- 移动测试 - 应用
- 移动测试 - UI
- 移动测试 - 计划与工具
- 硬件视角
- 移动设备测试 - 类型
- 移动测试 - 框架概述
- 移动测试 - Android框架
- 移动测试 - iOS框架
- Robotium框架
- Selendroid框架
- 移动测试 - Appium框架
- 移动测试 - Zucchini框架
- 移动测试有用资源
- 移动测试 - 快速指南
- 移动测试 - 有用资源
- 移动测试 - 讨论
移动测试 - 应用
移动应用程序测试的一个简单定义如下:“移动应用程序测试是一个过程,通过该过程,为手持移动设备开发的应用程序软件在其功能、可用性和一致性方面进行测试。移动应用程序测试可以是自动化或手动类型的测试。”
注意 - 为了更好地理解,我们将假设我们正在测试一个用于在线机票预订系统的移动应用程序。
功能测试
功能测试是任何应用程序最基本的测试,以确保它根据定义的要求运行。与其他基于用户界面的应用程序类似,移动应用程序在用户场景中需要大量的用户交互。
示例测试场景 -
验证仅在选定的日期上为所选的出发地目的地显示航班可用性。
验证过去的日期未包含在搜索结果中。
兼容性测试
在移动应用程序测试中,兼容性测试占据了最高的堆栈。通常,移动应用程序兼容性测试的目的是确保应用程序的关键功能在特定设备上按预期运行。兼容性本身只需要几分钟,并且可以提前计划好。
决定应该在哪些移动设备上执行兼容性测试并非易事(因为使用所有可用设备进行测试几乎是不可能的)。因此,请准备一个包含所有可能组合的测试矩阵,并由客户对其进行优先级排序。
示例测试场景 -
- 验证使用Android设备是否成功执行航班搜索。
- 验证Apple iPad是否成功执行航班搜索。
本地化测试
如今,大多数应用程序都设计用于全球使用,并且非常重要的一点是要关注区域性线索,例如语言、时区等。当有人更改时区时,验证应用程序的功能非常重要。必须考虑到,有时西方设计可能不适用于东方国家的受众,反之亦然。
示例测试场景 -
验证当我们使用不同语言(或说是非英语语言)的移动应用程序时,是否存在任何UI或数据截断问题。
验证移动应用程序是否可以优雅地处理时区更改。
实验室测试
实验室测试通常由网络运营商进行,通过模拟完整的无线网络来完成。执行此测试是为了找出移动应用程序使用语音和/或数据连接执行某些功能时是否存在任何故障。
示例测试场景 -
验证客户与支持人员进行语音聊天时是否存在任何故障。
性能测试
移动性能测试涵盖客户端应用程序性能、服务器性能和网络性能。确保性能测试场景涵盖所有这些方面非常重要。借助性能测试工具,在给定的预定义负载和事务组合下,识别现有网络、服务器和服务器端应用程序瓶颈并不困难。
示例测试场景 -
验证航班可用性检查是否仅需合理的时间。
验证在检查航班可用性时,移动设备是否正常运行且不会挂起。
压力测试
压力测试对于查找在功能和用户界面测试期间可能未被发现的异常、挂起和死锁至关重要。以下列出了一些压力测试标准 -
尽可能多地加载您的应用程序数据,以尝试达到其断点。
反复执行相同的操作。
以不同的速度执行重复操作 - 非常快或非常慢。
让您的应用程序运行很长时间,既与设备交互,又让其保持空闲状态,或者执行一些需要很长时间的自动任务,例如幻灯片。
随机向您的应用程序发送屏幕点击和击键。
在您的设备上运行多个应用程序,以便您可以经常在您的应用程序和其他设备应用程序之间切换。
示例测试场景 -
- 检查1000名用户是否正在访问移动应用程序以搜索国内航班。
- 检查1000名用户是否正在访问移动应用程序以搜索国际航班。
安全测试
作为移动应用程序安全测试的一部分,应验证对黑客攻击、身份验证和授权策略、数据安全、会话管理和其他安全标准的漏洞。应用程序应在通过网络对用户进行身份验证时加密用户名和密码。
测试安全相关场景的一种方法是通过像OWASP Zed Attack Proxy这样的代理服务器路由移动设备的数据,并查找漏洞。
示例测试场景 -
验证应用程序是否无法在两个不同的移动设备上使用相同的用户凭据进行操作。
验证如果会话保持非活动状态超过15分钟,该会话是否会自动过期。
内存泄漏测试
与其他计算机相比,移动设备的内存非常有限,并且移动操作系统具有默认行为,即终止正在使用过多内存并导致用户体验不佳的应用程序。
内存测试对于移动应用程序来说非常重要,以确保每个应用程序在整个用户旅程中都能保持优化的内存使用率。建议我们在实际目标设备上进行内存测试,因为系统架构与模拟器到实际设备不同。
示例测试场景 -
执行十次航班可用性检查,并记录每次检查的内存使用量增加情况。
让应用程序运行十分钟,观察内存使用量是否保持稳定。
功耗测试
不同移动设备中使用了多种类型的电池(即镍镉/锂离子/镍金属混合动力)。当我们专注于功耗测试时,我们需要测量每个活动级别的电池状态。这将使我们更好地了解单个应用程序的功耗。
功耗测试可以手动完成;市场上还有一些免费工具可用,例如Trepn Profiler、Power Tutor和诺基亚能源分析器。这些应用程序可以显示智能手机或平板电脑上的实时功耗。
示例测试场景 -
使用移动应用程序搜索航班可用性,并检查功耗是否保持最小。
使移动应用程序处于理想状态;验证在应用程序没有任何活动发生时,是否没有功耗。
中断测试
应用程序在运行时可能会遇到一些中断,例如来电或网络覆盖中断和恢复。这又可以分为 -
- 传入和传出短信和彩信
- 传入和传出电话
- 传入通知
- 电池移除
- 用于数据传输的电缆插入和移除
示例测试场景 -
验证在收到来电后,航班可用性检查是否会暂停并恢复。
验证用户是否可以在使用应用程序时拒绝来电,并在之后再次恢复相同的应用程序。
可用性测试
可用性测试根据以下三个标准评估目标受众的应用程序 -
效率 - 指定用户在特定环境中实现指定目标的准确性和完整性。
有效性 - 与实现目标的准确性和完整性相关的资源支出。
满意度 - 工作系统对其用户以及受其使用影响的其他人的舒适度和可接受性。
从应用程序设计的早期阶段开始就实施可用性测试非常重要,并且不应仅在应用程序完成后才进行。可用性测试需要用户的大量参与,并且输出可能会影响应用程序设计,这在项目的后期阶段很难更改。
示例测试场景 -
- 航班可用性检查应在主页上。
- 在内容中间不应显示赞助广告。
安装测试
安装测试验证安装过程是否顺利进行,而无需用户遇到任何困难。
示例测试场景 -
- 验证安装过程是否顺利且不会花费很长时间。
- 验证是否通过企业应用商店成功安装。
卸载测试
卸载测试的基本原理可以用一句话概括为“卸载应立即清除与应用程序相关的数据”。
示例测试场景 -
验证卸载后是否已成功删除所有与应用程序相关的文件。
如果这是一个存储媒体文件(如WhatsApp或Facebook)的应用程序,则即使在卸载应用程序后也要保留这些文件。
更新测试
我们需要对移动应用程序更新非常谨慎。人们经常抱怨应用程序在更新后无法令人满意地工作。因此,在更新测试下,我们必须确认应用程序将像以前一样工作非常重要。简而言之,它不应破坏任何东西。移动应用程序更新可以通过两种方式进行 - 自动更新和手动更新。
示例测试场景 -
- 验证自动更新后应用程序是否可以成功运行。
- 验证是否正确显示更新进度。
认证测试
为了获得合规性证书,每个移动设备都需要根据不同移动平台设定的指南进行测试。
示例测试场景 -
验证安装在iPhone上的应用程序是否符合iOS手机的策略。
验证安装在Android上的应用程序是否符合Android手机的策略。