37

虽然我们尝试为我们的应用程序设置尽可能多的单元测试,但我总是发现缺少 UI 级测试的数量。那里有很多选择,但我不确定从哪里开始是个好地方。

用于测试 Swing 应用程序的首选单元测试工具是什么?你为什么喜欢它?

4

9 回答 9

11

在我们这边,我们使用FEST来测试 SWING GUI 。这是经典摆动机器人上的适配器,但它极大地简化了它的使用。

结合 TestNG,我们发现它是一种通过 GUI 模拟“人类”动作的简单方法。

于 2008-09-17T05:15:50.283 回答
6

如果您的目标应用程序有自定义组件,我肯定会推荐Marathon来自动化您的测试。

我的任务是自动化一个包含几个极其复杂的自定义组件的应用程序,这些组件都是在内部从头开始编写的。我经历了一个持续两个月的审查过程,在这个过程中,我从近 30 种可用的测试工具列表中决定使用哪种测试工具,包括商业和 FOSS。

它是唯一能够成功自动化我们特定自定义组件的测试工具;IBM 的 Rational Functional Tester、Microfocus 的 TestPartner、QF-Test、Abbot 和 FEST 都失败了

从那以后,我已经能够成功地将测试与 Cruise Control 集成,以便它们在完成应用程序的每个构建时运行。

不过要提醒一句:
1) 在处理 JTable 的方式上,它的边缘相当粗糙。我通过为他们编写自己的代理类来解决这个问题。
2) 还不支持拖放动作的录制/回放。

于 2009-11-04T02:10:12.223 回答
4

考虑 Marathon ( http://www.marathontesting.com/Home.html)——测试是用 Jython 编写的,因此很容易根据对象状态编写任何类型的谓词。

于 2008-09-23T16:56:51.163 回答
2

我有机会玩过一次 QF-TEST。它是商业的,但提供了很多功能。也许你看看它:http ://www.qftest.de/en/index.html

于 2008-09-17T19:59:36.540 回答
2

您可以尝试使用CucumberSwinger为 Swing GUI 应用程序用简单的英语编写功能验收测试。Swinger 在后台使用 Netbeans 的Jemmy库来驱动应用程序。

Cucumber 允许您编写如下测试:

 Scenario: Dialog manipulation
    Given the frame "SwingSet" is visible
      And the frame "SwingSet" is the container
    When I click the menu "File/About"
    Then I should see the dialog "About Swing!"
    Given the dialog "About Swing!" is the container
    When I click the button "OK"
    Then I should not see the dialog "About Swing!"

看看这个Swinger 视频演示,看看它的实际效果。

于 2009-06-16T11:51:22.423 回答
2

我强烈推荐 QFTest。我已将它用于我的商业产品,并且几乎为零代码(我的应用程序需要使用 java 客户端 API 来处理某些事情)。它很好地处理了摆动组件的识别,并且非常容忍对 GUI 的更新——(调整大小、重新定位和添加组件不会破坏现有的测试)。我已经对功能进行了重大更新,并且我的测试仍然有效。

它很贵,但我认为它会在几个月内收回成本。

在 QFTTest 之前,我尝试过:

1) Automatedqa - 好工具,但以 Windows 为中心,不理解 Swing。类似于快速测试专业版。

2)UISpec4J - 在每周投入 50 个小时之后,我遇到了脆弱性和它产生的神秘 Java 代码的问题。使用它太费力了——尝试调试/更新数百行执行一系列 GUI 操作的 java 对我的大脑不起作用。我最终避免编写测试,因为它比实际编写应用程序本身要复杂得多!

于 2011-06-06T01:03:06.670 回答
1

尝试磅: http: //pounder.sourceforge.net/

于 2008-09-17T05:06:27.513 回答
1

我喜欢 Jemmy,为测试 Netbeans 而编写的库。

于 2008-09-26T22:37:08.017 回答
1

不是回答,而是提炼。

录制和播放是错误的。团队需要在编写代码之前编写测试的能力。否则,编码人员会完成他们的工作并等待测试人员争先恐后地记录测试(当他们发现问题时会被修复中断)。

在 BDD/TDD/ATDD 类型的设置中,您确实需要某种工具,允许您为尚未编写的代码编写脚本测试,指定 UI 元素名称等。

是否有适用于非瀑布测试的工具?

于 2012-10-10T14:39:10.933 回答