我发现了很多关于如何使用Espresso框架和其他人进行UI测试的材料。但是,我很难找到任何告诉我应该在多大程度上测试UI的信息:我应该编写测试来测试每个gridView中每个可能的GridItem吗?只是可点击的项目?我应该如何确定测试任何特定Android UI的内容和深度?
对于这个问题,您应该假设您是开发人员,所有者和设计师。
在一般情况下获得优先顺序的东西会很好。
答案 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测试中。