Java Open Source Projects Directory

...dedicated into Java open source projects

  • Increase font size
  • Default font size
  • Decrease font size
Testing Tools


Marathon is a testing framework for GUI applications developed using Java/Swing. Marathon composes of recorder, runner and editor. The testscripts are composed of python code. Marathon focuses on end-user testing. One need not know Java or Swing to record test scripts using Marathon. Marthon is kept intentionally simple. The aim to produce test scripts that are readable by everyone on the project. This includes the developers, testers and the customers. Marathon is flexible and provides facilities to extend the functionality available through python scripts or through writing ones own component resolvers. Marathon captures the semantic actions on components instead of the mouse & keyboard events. This results in scripts that are simple and at a higher granular level. Marathon suites well for applications that mostly depend on forms-paradigm.



Mock is a widely used technology in unit test domain. It shields exteral and unnecessary factors and helps developers focus on the specific function to be tested. EasyMock is a well known mock tool which can create mock object for given interface at runtime. The mock object's behavior can be fine defined prior the test code in the test case. EasyMock is based on java.lang.reflect.Proxy, which can create dynamic proxy class/object according to the given interfaces. It has the inherent limitation from the Proxy. It can create mock object for given interface only. Mocquer is a similar mock tool as EasyMock. With the help of Dunamis Project, it extends the function of EasyMock to support mock object creation for both class and interface.



In the same way that JUnit allows us to write unit tests for Java classes, TagUnit allows us to unit test JSP custom tags, inside the container. In essence, TagUnit is a tag library for testing custom tags within JSP pages.



Unicorn provides Swing components for interactively invoking methods on JMX MBeans, JavaBeans, and Web Services. It is intended to allow developers to implement simple testing and debugging tools quckly. Unicorn also can be extended to handle other types of objects. All you have to do is implement an ObjectPanelModel.



The Abbot framework is a Java library for GUI unit testing and functional testing. It provides methods to reproduce user actions and examine the state of GUI components. The framework may be invoked directly from Java code or accessed without programming through the use of scripts.



SWTBot is an open-source Java based functional testing tool for testing SWT and Eclipse based applications. SWTBot provides APIs that are simple to read and write. The APIs also hide the complexities involved with SWT and Eclipse. This makes it suitable for functional testing by everyone. SWTBot also provides its own set of assertions that are useful for SWT. You can also use your own assertion framework with SWTBot. SWTBot has a driver and recorder to playback and record tests and integrates with Eclipse, and also provides for ant tasks so that you can run your builds from within CruiseControl or any other CI tool that you use. SWTBot can run on all platforms that SWT runs on. Very few other testing tools provide such a wide variety of platforms.



TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use, such as: - JSR 175 Annotations (JDK 1.4 is also supported with JavaDoc annotations). - Flexible test configuration. - Default JDK functions for runtime and logging (no dependencies). - Powerful execution model (no more TestSuite). - Supports dependent methods.



T2 is a random testing tool. As one, it is fully automatic, but one must keep in mind that the code coverage of random testing is in general very limited. It should be used as a complement to other testing methods. T2 checks for internal errors, run time exceptions, method specifications, and class invariant. T2 does not check individual methods in isolation; instead T2 generates random executions where methods may interfere with each other, and thus it may discover more subtle errors. Violating executions can be saved for re-test (regression). No special specification language is needed. Specifications are written in plain Java. The current state is prototype.


Page 3 of 7