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