我应该在Android上测试UI组件(不是如何)吗?

时间:2017-07-26 15:42:40

标签: java android android-espresso ui-testing

我发现了很多关于如何使用Espresso框架和其他人进行UI测试的材料。但是,我很难找到任何告诉我应该在多大程度上测试UI的信息:我应该编写测试来测试每个gridView中每个可能的GridItem吗?只是可点击的项目?我应该如何确定测试任何特定Android UI的内容和深度?

对于这个问题,您应该假设您是开发人员,所有者和设计师。

在一般情况下获得优先顺序的东西会很好。

1 个答案:

答案 0 :(得分:1)

这个问题的任何答案都是基于意见的,也取决于很多因素。让我给你一些我会考虑的因素。

单元测试:

要问的第一个问题是UI测试是否是唯一的自动化测试。

如果您已经对代码进行了单元测试并拥有可靠的测试套件,那么我就不会在UI测试中投入太多时间。编写一些检查UI元素与应用程序其余部分之间基本集成的测试,但不要尝试使用UI测试来测试内部逻辑 - 这是单元测试的目的。

如果您没有进行单元测试,并且唯一的自动化测试将通过UI完成,那么您希望更深入。映射应用程序应执行的所有流程,根据测试复杂性对它们进行排序,并从最简单的开始为每个流程编写UI测试。您还需要测量UI测试的覆盖范围,以便您可以了解未经测试的应用程序部分。

手动测试(QA):

下一个因素是您可以承受的手动测试量。

由于您提到这是一个单人节目,您可能无法在每次发布之前为手动测试分配天数。在这种情况下,有更广泛的UI测试是有意义的。特别是对于涉及数据验证的流程 - 您真的不想确保(每个版本)注册流程不接受格式错误的电子邮件/用户名/密码。

另一方面,如果您有专门的测试人员,那么您可以大幅减少对UI测试的投资。我想说,在某些情况下,如果你有专门的测试人员和一套好的单元测试,你可以完全删除UI测试。

要求变更率

如果需求经常变化,UI测试是一个巨大的PITA。特别是如果这些更改影响UI / UX。

如果您有一个具有现有用户群的稳定产品,那么您可以添加更多UI测试,因为更改率可能相对较低,并且您希望保证现有功能不会中断。

另一方面,如果您只是引导应用程序或探索想法并且UI / UX非常不稳定,那么维护UI测试将需要很多努力。

错误成本:

考虑错误的成本并适当调整测试策略。

如果错误的成本只是糟糕的用户体验和轻微的不便,那么您就不需要在UI测试中投入太多。如果错误的成本是个人数据受到损害,我会投入更多的资源进行测试。如果您的应用程序可能会导致人员受伤,请务必进行彻底测试,并有一个单独的团队来实现这一目标。

一般说明:

对于质量保证,恕我直言,三种技术在Android上最有效:代码审查,单元测试和探索性手动测试。

UI测试效果不如上述三项。因此,如果您尚未掌握上述其中一项,那么您最好将时间投入到它们中而不是UI测试中。