什么是基于Swing的应用程序的最佳测试工具?

时间:2008-09-17 04:10:55

标签: java swing testing

虽然我们尝试在时间允许的情况下设置尽可能多的单元测试,但我总是发现缺少UI级别的测试。有很多选择,但我不确定什么是一个好的开始。

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

9 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:6)

如果你的目标应用程序有自定义组件,我肯定会建议Marathon自动化你的测试。

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

测试工具能够成功自动化我们的特定自定义组件; IBM的Rational Functional Tester,Microfocus'TestPartner,QF-Test,Abbot& FEST 失败

此后,我已成功将测试与Cruise Control集成,以便在完成应用程序的每个版本时运行。

虽然有一句警告:
1)它处理JTable的方式在边缘相当粗糙。我通过为他们编写自己的代理类来解决这个问题 2)不支持拖放操作的记录/重放。

答案 2 :(得分:3)

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

答案 3 :(得分:2)

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

答案 4 :(得分: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 video demo以查看其实际效果。

答案 5 :(得分:2)

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

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

在QFTest之前我尝试过:

1)Automatedqa - 很好的工具,但是以Windows为中心并且不了解Swing。与Quick test Pro。相似。

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

答案 6 :(得分:1)

答案 7 :(得分:1)

我喜欢Jemmy,这是为测试Netbeans而编写的图书馆。

答案 8 :(得分:1)

不是答案,而是精炼。

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

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

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