2008-09-03 93 views
17

我们正在研究一个大型项目,其中包含一些新的/修改的GUI功能。我们在过去发现,在添加新功能时,我们经常在相关代码中引入新问题。用户界面测试

我们有非技术用户进行测试,但他们经常错过部件并允许错误漏洞。

我的问题: 是否有组织WinForms项目的UI测试的最佳实践?有什么办法可以自动化吗?

谢谢!

+0

你会听到很多的“GUI自动化测试是脆弱”或“自动GUI测试是噩梦”的东西。通常来自那些看到由随机人员完成的测试自动化的人员或者从未见过gui自动化的人员通常会听到失败的消息。无论哪种方式测试自动化需要承诺和熟练的东西。工具只是一个工具,有很多工具。几乎没有:http://www.testingfaqs.org/t-gui.html – yoosiba 2011-02-17 22:03:46

回答

19

有GUI测试工具,会点击按钮和东西给你,但他们在我的经验非常脆弱。

要做的最好的事情就是让UI层保持尽可能薄。你的事件处理程序类最好只有一行或两行向其他更多可测试类发出呼叫。这样,您可以在单元测试中测试业务逻辑,而无需实际执行按钮点击。

+5

无论如何,作者需要一个解决方案,而不是仅仅反对...... – Budda 2010-01-28 12:27:30

0

我无法真正帮助组织或最佳做法,但NUnit扩展程序似乎可用于表单测试,NUnitForms

6

您可以自动使用White框架GUI测试。

还考虑使用TDD友好设计,即使用MVP/MVC模式。

我强烈建议您阅读来自微软模式&实践团队的文档。

特别看看Composite UI application blockCompositeWPF

这些项目专门为您提供GUI应用程序开发的最佳实践,包括测试驱动的用户界面。

+0

“也考虑使用TDD友好设计,即使用MVP/MVC模式。”纠正我,如果我错了,但不会这是一个“**测试**友好的设计”。我认为TDD的建议不仅仅是测试.. – sixtyfootersdude 2010-07-21 23:14:24

4

保持GUI层尽可能薄。迈克尔羽毛的文章,The Humble Dialog Box,是一个经典。还请查看Martin Fowler的Passive View。我也听说“自动按钮答题器”很脆弱,而且花费更多的时间维护测试比花费维护代码容易。

1

有很多工具和库可以自动执行WinForms测试,从White这样的开源解决方案到诸如HP QuickTest Pro等昂贵的商业解决方案。如果你想推出你自己的自动化框架,在.NET中也有UIAutomation命名空间。但是,自动化的真正成本在于它需要实施的时间和专业技能。可维护性也是自动化测试设计最重要的方面之一;您不希望花费过多的资源来保持自动化资产与您的应用程序同步。影响自动化决策的因素还有很多,这些因素将针对您的特定应用程序和组织而定。

最好的办法是对这个问题做更多的研究,并查看一些专门的测试网站,如http://www.sqaforums.com

1

我发现这种快速和肮脏的方式来测试各种浏览器中的网页布局。它叫做browsershots.org。我们的客户现在需要5个浏览器的支持,而完整的回归测试需要大约一个星期的时间。该服务将提供大约70多种浏览器和版本的屏幕截图。我将它们打印出来,并将其放在灯光下。如果他们不排队,就必须有布局问题。

0

现已一种新的方法是使用红宝石,通过红宝石宝石称为win32-autogui。这提供了一个测试Windows GUI应用程序的框架。将它与Ruby工具RSpec和Cucumber结合起来,并且它构建了一个相当强大的测试框架。

0

如何组织UI测试取决于你如何设计测试用例。

自动化Windows在单元测试级别表格应用程序可以使用TDD的框架,如NUnit的;或者使用BDD框架,比如NSpec。

自动化Windows窗体的功能测试级别的应用程序可以使用白色,CodedUI,甚至直接使用Windows Automation API 3.0(UI自动化和MSAA)。

由于上面提到的所有这些东西是技术,而不是解决方案,它的更好,你开始写自动化测试之前建立基于这些技术的一些基本的测试自动化/脚本框架。

+0

你的答案是平淡无奇。 – nalply 2012-09-30 20:39:00