虽然我们尝试在时间允许的情况下设置尽可能多的单元测试,但我总是发现缺少UI级别的测试。有很多选择,但我不确定什么是一个好的开始。
用于测试Swing应用程序的首选单元测试工具是什么?你为什么喜欢它?
答案 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)
您可以尝试使用Cucumber和Swinger以简单的英语为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)
尝试pounder:http://pounder.sourceforge.net/
答案 7 :(得分:1)
我喜欢Jemmy,这是为测试Netbeans而编写的图书馆。
答案 8 :(得分:1)
不是答案,而是精炼。
录制和播放是错误的。团队需要能够在编写代码之前编写测试。否则,编码人员完成他们的工作并等待测试人员争先恐后地记录测试(当他们发现问题时被修复中断)。
在BDD / TDD / ATDD类型的设置中,您确实需要某种工具,允许您编写尚未编写的代码的脚本测试,指定UI元素名称等。
是否有适用于非瀑布测试的工具?