用户界面测试

时间:2008-09-03 12:57:25

标签: user-interface testing integration-testing

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

我们有非技术用户执行测试,但他们经常会错过部分并允许漏洞漏掉。

我的问题: 是否有任何组织WinForms项目的UI测试的最佳实践?有没有办法让它自动化?

谢谢!

11 个答案:

答案 0 :(得分:19)

有一些GUI测试工具可以为你点击按钮和东西,但是根据我的经验,它们非常脆弱。

最好的办法是尽可能减少UI图层。您的事件处理程序类最好只有一行或两行调用其他更可测试的类。这样,您就可以在单元测试中测试业务逻辑,而无需实际按下按钮。

答案 1 :(得分:6)

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

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

我强烈建议您阅读Microsoft模式和实践团队的文档。

特别要查看Composite UI application blockCompositeWPF

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

答案 2 :(得分:4)

保持GUI层尽可能薄。 Michael Feathers的文章The Humble Dialog Box是一部经典之作。另请查看Martin Fowler的Passive View。我还听说“自动按钮答题器”很脆弱,而且维护测试的时间比维护代码要容易。

答案 3 :(得分:2)

如果有人发现这有用:

在维基百科上找到

List of GUI testing tools

答案 4 :(得分:1)

以下书籍是对该主题的介绍。 那里的开发人员有很多种方式..

http://pragprog.com/titles/idgtr/scripted-gui-testing-with-ruby

答案 5 :(得分:1)

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

您最好的选择是对该主题进行更多研究,并查看一些专业测试网站,例如http://www.sqaforums.com

答案 6 :(得分:1)

我发现这种快速而又脏的方法可以在各种浏览器中测试网页布局。它被称为browsershots.org。我们的客户现在需要5个浏览器的支持,大约需要一周时间进行完整的回归测试。该服务将提供大约70多种浏览器和版本的屏幕截图。我将它们打印出来并将页面拉到灯光下。如果它们不对齐,则必然存在布局问题。

答案 7 :(得分:0)

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

答案 8 :(得分:0)

我在几年前使用了类似于此产品(http://www.tethyssolutions.com/product.htm)和此产品(http://www.mjtnet.com/macro_scheduler.htm)的试用版下载,我对结果感到满意。这些是非常便宜的解决方案,其中一些宏记录器产品实际上可以用于自动化测试。

答案 9 :(得分:0)

现在可用的新方法是使用Ruby,通过称为win32-autogui的Ruby gem。这提供了一个用于测试Windows GUI应用程序的框架。将它与Ruby工具RSpec和Cucumber结合起来,它构成了一个非常强大的测试框架。

答案 10 :(得分:0)

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

在单元测试级别自动化Windows窗体应用程序可以使用TDD框架,例如NUnit;或使用BDD框架,例如NSpec。

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

由于上面提到的所有这些内容都是技术而不是解决方案,因此在开始编写自动化测试之前,最好先构建一些基于这些技术的基础测试自动化/脚本框架。