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

我们让非技术用户执行测试,但他们经常会错过某些部分并让错误溜走。

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

谢谢!

有帮助吗?

解决方案

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

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

其他提示

您可以使用自动化 GUI 测试 白色的 框架。

还可以考虑使用 TDD 友好的设计,即使用 MVP/MVC 图案。

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

特别是看看 复合 UI 应用程序块复合WPF.

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

保持 GUI 层尽可能薄。迈克尔·羽毛文章, 不起眼的对话框, ,堪称经典。另请查看马丁·福勒的 被动观点. 。我还听说“自动按钮点击器”很脆弱,并且很容易花费更多时间来维护测试而不是维护代码。

如果有人发现这有用:

GUI测试工具列表 在维基百科上找到的。

下面的书是对该主题的介绍。有多少开发者就有多少种方法。

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

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

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

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

我无法真正帮助组织或最佳实践,但是 单位 扩展似乎可用于表单测试, NUnitForms.

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

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top