General GUI Testing Topic

  • schwaebli

    I have some common questions about GUI testing. Please only answer if you work or worked with GUI tests.

    Of course there are diffent GUI types, like browser, SWING and SWT. My questions apply to all of them.

    I worked with QF Test for one year, testing Swing applications. But I was disappointed with that tool, mainly because of some basic principles of it.

    It uses an own IDE where the GUI Tests are defined visually, this means by mouse clicks instead of typing. If you can't do something with that, you can use Jython scripts.

    I rather would like it that the GUI tests are recorded and edited in Java statements. I see this advantages: You can use your favorite IDE and all its powers like debugging and feedback. You don't need to learn a scripting language. You can integrate the tests easily in a testing environment like JUnit. You can organize your tests conveniently into packages, classes and methods.

    There are no fundamental disadvantages in my eyes to GUI tests as Java statements. The tool developers like the ones who create QF Test sell it as an advantage, that anyone without programming skills can write GUI tests. But this does not work, you need programming skills for writing such GUI tests, even though it is not written in Java statements.

    There are comparisons of GUI test tools, but until yet I didn't see any mention it as a big advantage, if the tests are recorded and edited as Java statements. Tool creators like QFS and Froglogic deny that issue to be of importance.

    What is your experience and opinion? I try to find a GUI testing tool for RCP applications and need to convince people that (like in Selenium) recording and editing GUI tests in Java is important. Maybe you can recommend me some tool. Please also read between the lines.

    • Gary Johnston
      Gary Johnston

      I agree with your experience and opinion.  That's why I use and contribute to abbot.swt.  Abbot.swt tests are JUnit tests written in Java that happen to test UI.  I think that makes tests tend to be more robust.  Plus, I think it's important to support "test-driven development" in the UI realm.