2008-09-18 40 views
16

我正在测试我的GUI的问题,我不完全确定这里的最佳方法。我的GUI是使用传统的MVC框架构建的,因此我可以轻松地测试GUI的逻辑部分,而无需启动GUI本身。但是,在测试GUI的功能时,我不确定是否应该担心单独测试GUI组件,还是应该主要关注功能测试系统。这是一个相当复杂的系统,其中经常测试GUI包括向服务器发送消息,然后观察GUI上的响应。我最初的想法是功能测试是这里的一种方式,因为我需要运行一个完整的系统来真正测试UI。对这个问题的意见将不胜感激。GUI测试

感谢, 杰夫

回答

4

您有(至少)2个问题 - 环境(服务器)的复杂性和GUI的复杂性。

有很多自动化GUI测试的工具。所有这些都或多或少都是脆弱的,并且面对不断变化的布局需要非常持续的维护。使用它们会带来好处,但这是一个长期的好处。

另一方面,环境是一个可以被驯服的区域。如果您的应用程序使用依赖注入/反转技术进行架构(您可以将服务器组件注入到应用程序中),那么您可以使用相关服务器接口的“模拟”来启用脚本测试用例。

结合这两种技术可以让您自动进行GUI测试。

最后一个念头 - 祝你好运!

0

什么你要找的是 “验收测试”。你如何做到这一点取决于你使用的框架,你正在创建什么类型的应用程序和使用什么语言。如果你谷歌你的特定技术和上面的短语,你应该找到一些你可以使用的工具。

2

Mercury QuickTest Pro,Borland SilkTest和Ranorex Recorder是一些GUI测试工具。

+0

关于水星,只有“快”的东西才是它的名字。你想听一个关于Selenium名称选择的故事吗? – Esko 2009-09-25 21:55:07

2

如果您的应用程序是基于Web的,则可以使用类似WatiNSelenium这样的工具编写测试。

如果您的应用程序是基于Windows .NET的,则可以尝试White

3

根据您所在的MVC(这是一个过度使用的术语)的范围的位置,测试视图可能是一个机械过程,以确保正确的模型方法被调用以响应视图的正确输入以测试某些客户端验证谁知道。

很多已经演变出的MVC模式的(我想passive viewsupervising controller)正在努力使视图只需要很少的测试,因为它真的只是接线用户输入到演示者或模型(视你正在使用的模式的确切变体)。

“经常测试GUI包括向服务器发送消息,然后观察GUI上的响应”这句话令我担心。

我马上认为应该使用服务器的模拟或存根测试GUI以测试是否发生了正确的交互,并且GUI的响应是否正确。

如果您需要服务器的自动功能测试,我不认为需要在这些GUI中涉及GUI。

1

我的建议:忘记传统的GUI测试。太贵。对测试进行编码需要很长时间,这些工具并不十分稳定,因此您将得到不可靠的测试结果。代码与测试之间的耦合非常强大,您将花费大量时间进行维护。

新趋势是忽略GUI测试。看到福勒ModelViewPresenter模式作为指导link text

+0

你能详细说明一下吗?引用一些趋势的来源? – Rekin 2011-04-04 13:26:45

1

我可以说这是最明显的方式:

不要浪费你的时间编写自动化GUI测试

尤其是当您使用MVC应用程序时 - 在您的情况下,当您向服务器发送消息时,您可以确保正确的消息编号返回并完成。您可以添加一些额外的案例 - 或者另一个测试,以确保GUI将消息ID转换为正确的字符串,但您只需运行一次该测试。

1

我们在我们的项目中加入了GUI测试,并且有它的副作用。然而,开发人员有一个关键的设计原则:保持GUI层尽可能薄!

这意味着没有逻辑在GUI类。在负责输入验证的演示模型中分开这一点。

对于在Unix机器上测试,我们在运行测试时使用Xvfb服务器作为DISPLAY。

7

其他GUI测试工具,我可以提供有: Thoughtworks WhitePyWinAutoAutoItAutoHotKey

尝试自动化图形用户界面时要记住的一件事是,唯一能做到这点的方法是在考虑自动化的情况下构建GUI。 Crush开发者认为他们的图形用户界面不应该在项目的早期阶段支持可测试性,并且随着您的测试需求的需要,高兴地公开所有可以帮助按需自动化的钩子。

0

不要错过“U”在“GUI”
我的意思是:如果你想考什么是一切工作的权利和作品,因为它是计划工作,那么您可以按照Seb Rose's answer

但是,请不要忘记USER界面必须考虑USERS,而不是任何用户,而是应用程序制作的目标用户。所以,当你确定所有的工作都必须工作之后,把每一个视图/屏幕/表单都放到一个由用户组成的团队中进行测试,该团队代表可能会使用你的应用程序的每个不同用户组:高级用户,管理员,MS Office用户,低计算机配置文件用户,高级计算机配置文件用户...然后,获取每个用户的批评,进行混合,如果需要重新触摸GUI,然后再返回GUI用户的测试。

0

我发现WinTask是一种很好的GUI测试方法。假设您不会不断改变操作系统引用UI的每个元素的方式,WinTask将通过名称来处理UI元素,所以即使布局更改,仍然可以按下/调整/选择UI元素。

0

对于简单的基于Web的GUI测试尝试iMacros(一个简单的Firefox插件,有一个很酷的功能来发送整个测试给其他人) 注意,SIMPLE与声母拼...

1

尝试hallway usability test。它便宜又实用:去最近的走廊,抓住第一个通过的人,让他们坐在你的电脑上并使用你的软件。看着他们的肩膀,你会看到他们想要做什么,挫败他们,等等。多做几次,注意模式。

+1

这对测试GUI设计非常有用,但它不允许轻松地重复检查GUI(如其设计)是否在最近的提交中被破坏,或者它仍然正常运行。 – Joanis 2010-11-24 21:47:00