优化Android测试自动化开发

现在我们离Google I / O还有几周的路程,并且我们了解到复杂的Android环境正在变得越来越复杂,让我们探索Android团队可以优化和计划不同平台和设备上的测试自动化的方法。

过去,我写过关于连接3层的需求:

  • 被测应用
  • 测试代码本身
  • 被测设备/操作系统

我回想起了我几年前在J2ME时代共同提交的旧专利,并且还在我新出版的书( 《数字质量手册》 )中写了有关这一章的章节。

优化Android测试自动化开发

问题定义

Android OS系列支持不同的功能,并且从一个Android SDK到另一个Android SDK的差距正在扩大。 例如,低于6.0的Android设备,不支持Android Doze进行电池使用优化或不支持应用快捷方式(请参见Google Photos应用的以下示例)。 这些差异给开发和测试团队带来了挑战,他们需要创新和利用这些功能,因为针对这些功能和设备运行的测试代码只需要转向真正可以支持它的设备即可。

优化Android测试自动化开发

团队如何才能维持测试自动化套件,使其在支持的功能上专门在正确的设备上运行?

拟议方法

尽管我没有防弹的魔术药丸来解决由于上述问题而可能发生的所有挑战,但我可以肯定地推荐一种如下所述的方法。

需要注意的重要一点是,意识到问题是迈向解决问题的一步。��

评估您的应用程序和DUT:

  • 映射您的应用支持或要求用户为其授予权限的不同功能
  • 检查您的设备测试实验室并筛选支持和不支持这些特定功能的设备

要管理上述内容,团队可以利用以下优势:

优化Android测试自动化开发

  • 使用现有的ADB命令从连接的设备中提取支持的功能
      亚行壳牌

运行上面的命令后,您将获得类似于以下内容的输出……

优化Android测试自动化开发

比较输出

一旦了解了要测试的DUT的功能以及您的App的功能,就可以运行简单的输出比较,看看可以测试和不能测试的内容–从这一点来说,优化应该主要是手动的–您将进行设置您在实验室中的测试执行和CI。 尽管还不够简单,但它仍然为开发人员和测试团队提供了一种可持续的方法+意识,这在整个开发,调试和测试活动中都非常有用。 在下面的视觉图中,您可以看到Samsung Note 5 / Android 7.0(左列)与运行Android 5.x设备功能的较旧Samsung(右列)之间的功能差异。 我从较大列表中直接看到的差异显示了Note 5支持的指纹 功能 ,但其他Samsung设备不支持。 当计划在这两种设备上进行功能测试时,应该使用这种洞察力(这只是一个示例)。

优化Android测试自动化开发

底线

随着Google不断创新和添加更多功能,现有的设备和测试框架将很难弥合差距,而这是团队需要意识到,计划和优化的挑战,因此其发布工具和速度保持稳定。

优化愉快!

翻译自: https://www.javacodegeeks.com/2017/06/optimizing-android-test-automation-development.html