如何测试Eclipse Juno RCP的用户界面

4
我们正在开发一个基于Eclipse的RCP。最近我们升级到了Eclipse Juno版本,目前我们关注质量,当然也引起了自动化测试的关注,因为应用程序非常庞大,测试工作会延迟发布。
我们已经编写了JUnit测试,但我更感兴趣的是UI测试。在旧版本的Eclipse中,这不是问题。有很多好的测试框架可供选择。不幸的是,由于添加了将默认SWT UI切换为Swing或JavaFX的功能(至少这是我对导致问题的更改的理解),所以在Juno中,大多数测试工具都无法正常工作。
因此,大多数测试工具不再有效。从过去的经验来看,似乎:
- SWTBot最近似乎没有得到太多关注,并且非常不稳定(在某些版本中找不到元素) - Window Tester似乎相当不错,但在测试运行期间识别元素时存在许多问题(特别是弹出窗口,例如内容辅助或工具提示) - 显然Froglogics Squish支持Juno,但由于许可证成本约为2.5k欧元,我必须放弃 - 对于QF-Test情况也是如此(价格太高)。 - 这就留下了Jubula(或商业Jubula的GUIDancer),我们过去尝试过,但遇到了与Window Tester和SWTBot类似的问题(在Eclipse平台发生更改时不稳定,并且难以检测某些元素)
我需要知道哪个工具是值得关注/信任的。是否有人有使用这些工具的经验,甚至正在测试Juno RCP(或Juno本身)?或者是否有人知道Eclipse如何测试自己的平台(如果他们现在这样做的话)?
只搜索与“test”、“Juno”和“UI/GUI”相关的信息只会带出商业产品。
对我来说,重要的是找到一个工具,在其中可以使用开发的测试用例甚至在未来的版本中使用,这意味着:一个框架项目,它有一些社区支持,能够快速适应。还重要的是找到像工具提示、覆盖层或内容辅助/建议之类的东西-类似于Selenium与基本的HTMLUnit相比。
目前我甚至不太关心集成、报告或符合标准。

显然,开源市场不支持高度定制的Juno RCP,因此您需要使用专有工具。 - Peter Ilfrich
2个回答

4
您可以在Eclipse Wiki中找到一张全面的GUI测试工具表: http://wiki.eclipse.org/Automated_Testing#UI_tests 您需要做出一个重要的决定,即是否想使用鼠标来记录/创建测试(Jubula、QFTest等),是否想手写测试代码(SWTBot等),或者是否两者兼备(WindowTester Pro等)。
Eclipse Juno相对较新,我预计所有列出的工具都会存在问题,但迁移不应该花费太长时间,因为这些工具大多集中于测试SWT小部件,而Juno仍然使用SWT。到目前为止,我没有听说过任何严肃使用JavaFX的RCP应用程序,除了技术演示之外,但我很想看看它们!
我认为问题在于测试Eclipse很难,GUI测试尤其困难。您可能想看看这项研究,它发现并解释了主要问题: http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2011-010.pdf 如果您相信这项研究,JUnit测试通常比GUI测试更可取。好吧,使用Juno,您有一个巨大的优势,即Eclipse单元测试比以往任何时候都更容易,因为该框架从继承和单例模式转换为依赖注入,这使得它更加可测试。

谢谢分享知识。我会仔细研究的。我的主要问题是,仅使用Junit测试,接口本身可能非常复杂,这会导致我们无法收集可能发生的一些问题。我知道Juno相当新,希望测试框架能够跟上发展。然而,随着最近所有的新闻/博客等的流传,我对既有框架的快速改进感到怀疑。但至少知道这是我必须应对的宇宙是很重要的。 - Peter Ilfrich
确实存在很多技术问题之外的问题。例如,我更喜欢使用WindowTester Pro,因为它可以让你录制测试并从录制中生成代码。之后,你可以方便地重构生成的代码,并在Eclipse内作为JUnit测试运行。然而,目前Google使得对该项目做出贡献变得困难,而将其转移到一流的Eclipse项目似乎进展缓慢,这推迟了必要的迁移。 - Max Hohenegger

1
我建议你看一下Xored's Q7,它用于GUI测试一些Eclipse项目,包括Eclipse DLTK、Eclipse LDT、Eclipse Tigerstripe等。这个工具非常完美:它让你每天每个工程师可以开发数十个UI测试,并且没有稳定性和不正确记录的问题。它是专门为测试基于Eclipse的应用程序而设计的,显然是该领域最好的。
然而,它需要花费一定的费用,这可能会成为你的障碍(就像Squish一样),但他们有一个免费的社区版本,对于大多数使用情况来说已经足够了。此外,Xored公司刚刚推出了按测试执行付费的定价模型——工具将是免费的,你只需要按月支付执行的测试数量(少于5000个是免费的)。更多关于新模型的信息在eclipse-testing.com

我现在已经尝试了几个小时的Q7。内容协助处理有点麻烦。行为有时与手动执行有所不同。我找不到关于ECL命令的好文档,我的主要可视化编辑器也不能正常访问。它没有使用脚本中指定的正确坐标,并且也无法执行拖放操作。在录制和回放时可以正常工作,但在测试执行时,它实际上并没有真正拖动对象。这种不一致使得它几乎无法使用。 - Peter Ilfrich
嗨@peter,非常感谢您的反馈。我过于乐观地宣传了Juno支持,但实际上这只是刚刚推出,远非理想状态。但团队很乐意与您合作,消除所有不一致之处,您是否有兴趣联系我们并详细指出错误(如果可能的话,请分享您的AUT等)。非常感谢您,祝好! - Andrey Platov
尝试在另一台机器上使用最新版本,运行良好。我的大部分问题都得到了解决。虽然还存在一些小瑕疵,但与其他测试工具(如Squish)相比,作为测试开发人员来说这易于使用。 - Peter Ilfrich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接