功能测试是否应模拟UI事件或检查前提条件?

时间:2011-05-26 09:31:28

标签: iphone ios automated-tests integration-testing functional-testing

我正在努力解决这个问题,因为我注意到许多功能测试框架(例如用于Web的Selenium或用于iOS的UISpec)在测试时实际上模拟 UI事件。我问:仅仅检查诸如此类的前置条件是否足够,例如,按钮的目标和选择器是否设置正确,然后手动触发选择器?为什么我需要模拟触摸?这就是你需要了解更多关于你正在测试的UI元素的信息(你必须知道是什么让它们正常运行),但由于我是编写测试的人,也许这无关紧要? 任何人都可以对此有所了解吗?

1 个答案:

答案 0 :(得分:1)

模拟触摸对于确定由模糊或非计划用户行为引起的崩溃非常有用 - 特别常见的是同时按下两个项目。它还允许您创建可能非常深奥的测试:例如,随机用户输入持续一段时间以尝试以您不期望的方式崩溃或破坏您的应用程序。您执行此操作的级别取决于您的应用程序,以及它对您的重要程度。

在多点触控方面,您的替代方法也存在一些缺点。虽然通过某种自动测试而不是模拟用户输入来触发按钮选择器是相当简单的,但如果你有一个处理滑动,捏合或其他多个输入手势的应用程序会发生什么?在这些情况下,所需的结果可能不像按钮的开/关一样黑色和白色:您可能有许多灰色阴影和不同的输出需要验证。

模拟UI测试实际上有相当长的历史 - 关于原始MacPaint以及随机UI输入测试如何能够帮助复制模糊或困难的崩溃,这是一个有趣的故事(对我来说很有趣):{{3 }}