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

问题描述

| 因为我注意到许多功能测试框架(例如Web的Selenium或iOS的UISpec)实际上在测试时模拟UI事件,所以我在这个问题上苦苦挣扎。我在问:仅检查诸如设置按钮的目标和选择器然后手动触发选择器之类的前提条件还不够吗?为什么需要模拟触摸?这样做的缺点是,您必须对正在测试的UI元素有更多的了解(您必须知道是什么使它们能够正确运行),但是由于我是编写测试的人,所以也许这没关系吗? 有人能对此有所启示吗?     

解决方法

模拟触摸对于确定由晦涩或计划外的用户行为导致的崩溃很有用-一种特别常见的做法是同时按下两个项目。它还允许您创建潜在的深奥的测试:例如,持续一段时间的随机用户输入,试图以您意想不到的方式崩溃或破坏您的应用程序。您执行此操作的级别取决于您的应用程序以及它对您的重要性。 对于多点触控,您的替代方法也有一些缺点。尽管通过某种自动测试而不是模拟用户输入来触发按钮选择器相当简单,但是如果您有一个应用程序可以处理滑动,捏合或其他多个输入手势,会发生什么情况?在这些情况下,所需的结果可能不如按钮的打开/关闭那样黑白:您可能有许多灰色阴影和需要验证的不同输出。 模拟的UI测试实际上已有很长的历史了-关于原始MacPaint的一个有趣的故事(对我来说很有趣),以及一个随机的UI输入测试如何能够在此处帮助再现模糊或困难的崩溃:http:/ /www.folklore.org/StoryView.py?story=Monkey_Lives.txt