GUI测试

时间:2020-03-06 14:21:03  来源:igfitidea点击:

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

谢谢,
杰夫

解决方案

我们正在寻找的是"验收测试"。如何执行取决于我们使用的框架,所创建的应用程序类型以及所使用的语言。如果我们使用自己的特定技术和上述短语搜索Google,则应该找到一些可以使用的工具。

我们(至少)有2个问题涉及环境(服务器)的复杂性和GUI的复杂性。

有许多用于自动化GUI测试的工具。它们全部或者多或者少都非常脆弱,面对不断变化的布局,需要进行几乎恒定的维护。使用它们可以带来好处,但这是一项长期利益。

另一方面,环境是可以被驯服的区域。如果应用程序是使用依赖项注入/反转技术(将服务器组件"注入"应用程序)构建的,则可以使用相关服务器接口的"模拟"来编写测试用例的脚本。

结合这两种技术,可以使GUI测试自动化。

最后想到的是祝你好运!

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

如果应用程序是基于Web的,则可以使用WatiN或者Selenium之类的工具编写测试。

如果应用程序基于Windows .NET,则可以尝试使用White。

根据我们坐在MVC频谱中的哪个位置(这是一个过度使用的术语),测试视图可能是确保响应于对视图的正确输入而调用正确的模型方法以测试客户端验证的机械过程。谁知道。

从MVC演变而来的许多模式(我认为是被动视图,监督控制器)都在努力使视图需要很少的测试,因为它实际上只是将用户输入连接到演示者或者模型(取决于确切的我们使用的模式的变体)。

"测试GUI经常涉及向服务器发送消息,然后在GUI上观察响应"。

我立即想到应该使用服务器的模拟或者存根对GUI进行测试,以测试是否发生了正确的交互并且GUI可以正确响应。

如果我们需要服务器的自动功能测试,我认为不需要在其中包含GUI。

我的建议:忘记传统的GUI测试。太贵了。对测试进行编码需要花费大量时间,这些工具并不是真正稳定的,因此我们将获得不可靠的测试结果。代码与测试之间的耦合非常牢固,我们将花费大量时间进行维护。

新趋势是忽略GUI测试。请参阅Fowler的ModelViewPresenter模式作为指南链接文本

我可以说的最清楚的方法是:

不要浪费时间编写自动GUI测试。

尤其是在使用MVC应用程序的情况下,将消息发送到服务器时,可以确保返回正确的消息号并完成。我们可以添加其他情况或者完全进行其他测试,以确保GUI将消息ID转换为正确的字符串,但是我们只需要运行一次该测试即可。

我们确实将GUI测试纳入了我们的项目,并且它具有副作用。但是,开发人员有一个重要的设计原则:保持GUI层尽可能薄!

这意味着GUI类中没有逻辑。在负责输入验证等的表示模型中将此分开。

为了在Unix机器上进行测试,我们在运行测试时将Xvfb服务器用作DISPLAY。

我可以提供的其他GUI测试工具是:
Thoughtworks White,
PyWinAuto,
AutoIt,
AutoHotKey。

尝试使GUI自动化时要记住的一件事是,我们唯一可以做到的就是在考虑自动化的情况下构建GUI。 Crush开发人员认为他们的GUI不应该在项目的早期就支持可测试性,并且会根据测试需求愉快地公开所有可以帮助实现按需自动化的挂钩。

不要错过" GUI"中的" U"
我的意思是:如果我们要测试的东西都是正常的,并且按计划正常工作,则可以遵循Seb Rose的回答。

但是请不要忘记,必须使USER界面成为USERS的考虑对象,而不是任何用户,而是为该应用程序创建的TARGET USER。因此,在确定所有功能都可以正常工作后,将每个视图/屏幕/表单与一组由代表可能使用应用程序的不同用户的用户组成的团队进行测试,这些用户包括高级用户,管理员,MS Office用户,计算机配置文件较低的用户,计算机配置文件较高的用户...,然后,对每个用户进行评论,进行混合,如有必要,请重新触摸GUI,然后再次返回GUI用户测试。

我发现WinTask是进行GUI测试的一种非常好的方法。如果我们不经常更改OS引用UI的每个元素的方式,WinTask将按名称处理UI元素,因此,即使布局发生更改,仍可以按下/调整/选择UI元素。

对于基于SIMPLE Web的GUI测试,请尝试使用iMacros(一个简单的Firefox插件,具有很酷的功能,可以将整个测试发送给另一个人)
请注意,SIMPLE的拼写是缩写的...

尝试走廊可用性测试。它既便宜又有用:去最近的走廊,抓住第一个经过的人,让他们坐在计算机上并使用软件。看着他们的肩膀,我们会看到他们试图做什么,使他们沮丧的事情,等等。这样做几次,然后注意模式。