User Interface Testing我们正在处理一个具有新的或经过修改的GUI功能的大型项目。 过去我们发现,添加新功能时,经常在相关代码中引入新问题。 我们有非技术用户来执行测试,但是他们经常会漏掉零件并让漏洞漏出。
我的问题: 谢谢! 有一些GUI测试工具可以为您单击按钮和其他东西,但是根据我的经验,它们非常脆弱。 最好的办法是使UI层尽可能薄。最佳情况下,事件处理程序类应仅是一两行,以调出其他可测试的类。这样,您可以在单元测试中测试您的业务逻辑,而无需实际单击按钮。 您可以使用White框架自动进行GUI测试。 还可以考虑使用TDD友好的设计,即使用MVP / MVC模式。 我强烈建议您阅读Microsoft模式和实践团队的文档。 特别是看看Composite UI应用程序块和CompositeWPF。 这些项目专门为您提供GUI应用程序开发的最佳实践,包括测试驱动的UI。 保持GUI层尽可能薄。迈克尔·费瑟斯(Michael Feathers)的文章"谦虚对话框"是经典著作。另请参阅马丁·福勒的被动观点。我还听说"自动按钮单击器"非常脆弱,与维护代码相比,花费更多的时间维护测试是容易的。 如果有人发现此功能有用: 在Wikipedia上找到的GUI测试工具列表。 我发现这种快速而肮脏的方法可以在各种浏览器中测试网页布局。它称为browsershots.org。我们的客户目前需要5种浏览器的支持,而完整的回归测试大约需要一周的时间。此服务将提供70多种浏览器和版本的屏幕截图。我将它们打印出来,然后抬起页面。如果他们不排队,那么肯定存在布局问题。 从开放式解决方案(如White)到昂贵的商业解决方案(如HP QuickTest Pro),可以使用许多工具和库来自动化WinForms测试。如果要滚动自己的自动化框架,.NET中也有UIAutomation命名空间。但是,自动化的真正成本在于实施所需的时间和专业技能。可维护性也是自动化测试设计最重要的方面之一。您不想花费过多的资源来使自动化资产与您的应用程序保持同步。还有许多因素会影响自动化决策,这将取决于您的特定应用程序和组织。 最好的选择是对该主题进行更多研究,并查看一些专门的测试站点,例如http://www.sqaforums.com。
本书是对该主题的介绍。 http://pragprog.com/titles/idgtr/scripted-gui-testing-with-ruby 如何组织UI测试取决于您如何设计测试用例。 在单元测试级别自动执行Windows Forms应用程序可以使用TDD框架,例如NUnit。或使用BDD框架,例如NSpec。 在功能测试级别自动执行Windows Forms应用程序可以使用White,CodedUI,甚至可以直接使用Windows Automation API 3.0(UI Automation和MSAA)。 由于上述所有这些东西都是技术而不是解决方案,因此在开始编写自动化测试之前,最好基于这些技术构建一些基本的测试自动化/脚本框架。 现在可用的新方法是通过称为win32-autogui的Ruby gem使用Ruby。这提供了用于测试Windows GUI应用程序的框架。将它与Ruby工具RSpec和Cucumber结合使用,就可以构成一个功能强大的测试框架。 几年前,我使用了类似于该产品(http://www.tethyssolutions.com/product.htm)和该产品(http://www.mjtnet.com/macro_scheduler.htm)的试用版下载,我对此感到满意结果。这些是非常便宜的解决方案,其中一些宏记录器产品实际上可以用于自动化测试。 我不能真正为组织或最佳实践提供帮助,但是NUnit扩展似乎可用于表单测试NUnitForms。 |