自动化移动UI测试的五个误区

  公司避免为他们的移动应用自动化UI测试有很多种原因。许多都是移动开发和一种Maslow的移动层次需求,在这种感知生存恰好依赖于获得应用程序的工作,遵循工作流程的事情似乎像奢侈品。甚至团队已经达到自我利用自动化测试进行自我实现,这似乎在针对独特的工具和流程的移动测试要求不熟悉网络开发。

  事实上,甚至最先进的开发企业也会经常仅仅使用手动移动测试到移动-或者根本不使用测试。据2014年的Xamarin调查显示,只有13.2%的移动开发人员进行自动化UI测试,据一个Forrester Research调查显示,只有53%的开发人员甚至在一台设备上做一个粗略的测试。

  以下是五个最常见的移动团队还没有进行自动化移动应用质量的原因,和五个为什么他们不理解的原因。

  虚拟1:速度。“我们不能花时间来进行自动化。”

  在2014年,厂商推出了近7000个新的Android设备类型,以及近10000个移动特定的API。移动应用迅速改变且传输极快。与QA不断紧缩模式下,只是没有时间创建测试脚本并保持他们与每天变化的功能保持同步。

  现实是:“你正在浪费时间。”真实的情况是:手动测试会比自动化测试更快,但是仅仅在第一次测试时。在随后的运行中,任何手动测试的边际效益可能带来的几乎都是立即的侵蚀。

  每一次重复的测试或者功能运行,应用程序开发人员必须既要添加测试资源或者规模回到测试范围。在有限的预算,这将是最终导致一个质量递减的粘性循环。为了回应来自未测试设备的用户负面评论和参与数据,团队希望扩展设备范围。这样将会进一步增加QA部门能力方面的压力,因为企业正在努力研究、采购和维护设备同时还要执行测试。

  即使是最好资助的手动UI测试项目也会在完整的覆盖范围方面出现问题。在美国,移动团队需要测试188个设备来100%覆盖市场份额,但据一个2014Xamarin的调查显示,大多数开发团队经常在25个或者更少的设备上测试,仅是开发人员目标的四分之一或者更少。

  在现实世界的测试环境中,自动化几乎可以立即支付。在他们第一次运行测试,我们已经看到客户加速他们的测试,超过4倍的整体手动测试时间,这个是当测试50个或者更多的设备来讲。随后运行速快快了好几倍,节省了几乎一周的测试工作,几个小时就可以做完。

  虚拟2:覆盖。“因为是碎片,不可能得到广泛的设备覆盖率。”

  超过19000独特的Android设备,和几十个形式因素和iOS运行系统的排列,许多团队相信不可能覆盖在一个给定的市场中的大多数设备,因此他们默认设备的手动测试是“足够好的”。

  现实:“你可以有完全的设备覆盖率。”即使你维护一个手动的内部设备,你要做的很多。设备采购是很难的,维护他们花费的时间和金钱,使他们可以适时的满足测试人员且他们需要创建有逻辑的困境。

  Gartner表示,移动开发人员“必须找到完成一个高效自动化来与传播平台和变化的节奏保持一致。”这是在主机及其他功能用来内用管理的,通往自动化使通过第三方云服务实现。

  第三方云服务可以帮助自动化负载应用的程序,执行测试脚本,报告结果,并安全地重置设备到出厂设置。应用测试的子集也可以并行运行,进一步加快产生结果。

  通过在现实设备上进行广泛的测试,测试云允许每一个团队中的成员了解一个应用程序如何展现它的功能,消除移动开发的典型猜测工作。例如,产品经理可以设置最小系统要求,对设备性能有合理的信心,开发人员可以接收客观的对一个错误修复的视觉确认,在提交一个新的架构之前,无论他们什么时候在哪工作。

  虚拟3:成本。“我们只能提供手动测试。”

  自动化测试要求基础设施,测试脚本创建,和QA员工的曲线学习。许多团队都已经努力达到最后期限而且已经超过了预算,所以自动化测试似乎是遥不可及的。

  现实:“如果你牺牲了覆盖率,手动测试仅节省了你的钱。”手动测试仅仅似乎在最裸露的环境中不那么昂贵。如果测试涉及仅仅是一个在一些设备上进行快速的基本的功能“本能检查”,手动测试就像一个交易。但是任何类似的综合性设备和测试覆盖都会快速进行,手动测试都会比自动化测试昂贵。

  手动测试只能通过添加更多的机构来缩放,那些成本不是真正的线性。扩大员工规模来满足巨大开销的要求,通过培训或者协调的形式。划分测试案例减少每个测试人员的效率,来消除观点。此外,测试人员是复杂的,超越了基本用户行为,并预测和探索为什么一个应用可能会失败的原因,这既不便宜也不充分。

  自动化测试会在最初总是会开销稍大,但是如以上所示,这可以产生显著的收益,在测试速度和在几天内减少员工来说。基于云的测试环境已经进一步通过消除昂贵的部分来进一步减少成本,并在前提下测试基础设施。

  虚拟4:一致性。“要做的足够好。”

  对于许多测试团队,“准备部署”是一个主观的决定,建立在许多不同的手动测试人员的看法。然而当他们理解这些意味着错误将会一起释放,重叠的覆盖应该赶上释放之前的最关键和最常见的问题,剩下的错误可以等待一个维护的释放。

  现实:“质量是不定性的。”生产准备不应该是一个观点的问题。再纯手动环境,感知从测试到测试,测试人员到测试人员,导致测试结果不稳定和不一致的文档。这个关于产品复杂的决定,可能导致收入减少,客户的觉醒,或者合规失败。此外,他创建了未被虏获的一系列指示损失就是当员工的离开。自动化创建了一个可量化指标可以作为一个客观的真理,通知关于产品准备的决定,图标团队的进程并为业务决策提供信息。

  虚拟5:不情愿。“自动化代替手工测试。”

  许多开发人员进入到自动化测试,期望他们可以利用机器代替手动测试人员。如果测试自动化可以重复同样的测试数以千次的精确度完成,为什么你需要人员来,而不是利用机器自动化测试脚本来跟进?

  现实:“自动化测试使手动测试人员做到更好。”任何机器都擅长不同的事情。手动测试人员会经常可以更创造性的进行测试,自动化测试可以使他们可以这样做。然而人类寻找新的方法来打破一个应用程序,自动化测试可以确保遵循广泛设备,从单元测试到全回归测试。且两个方法不需要独立工作。执行手动探索测试同时后端系统正在从自动化测试中负载,是一个很好的方法来发现会漏到生产环境中的错误,自动化测试不能够代替人类测试人员。这会使他们更有兴趣,对工作更有价值

  更快的速度,覆盖范围,成本和一致性来提高质量。节省时间和金钱意味着你可以测试更多,不少于,当你到达关键里程碑。它允许测试与敏捷开发团队保持步伐一致,而不是站立的方式,因此企业可以更频繁的释放代码,减少数量和在一个架构中错误的影响程度。那意味着开发人员在使用更清洁的代码,错误修复正戏剧性的不那么复杂。还将测试人员从一个单独的“把关人”到具有创意的工作中,探索性测试提高产品质量。

网友评论