This page lists testing tools integrated with Eclipse IDE by topic. How this list is related to Harmony project? Since integrated development environments are collections of mature development tools, it worth to check this list before starting tool implementation from scratch.
Eclipse Extensibility Model
Eclipse is freely extensible by means of plugins. The list of plugins can be found at Eclipse Plugin Central. There is testing plugins subcategory which includes Test and Performance Tools Platform (TPTP) plugin. This plugin is an Eclipse top-level project which tries to establish a unified platform for testing tools.
JUnit is a recommended tool for developing tests. Is de-facto standard and it is integrated into Eclipse by default.
TestNG is a new generation of JUnit tests which is integrated into Eclipse by means of the following plugin. It can run JUnit tests without any changes, and has an automatic converter for JUnit tests to testNG format. Javadoc taglets or java 5.0 annotations can be used to specify test types and dependencies.
Test finders allow to select and run a subset of available test base.
Eclipse has a primitive test finder which allows to run all tests in the selected project, package or source folder.
A test can be excluded from test run by excluding the test from build process (<Right Mouse Button> -> Build Path -> Exclude).
There is a feature request for advanced test finders.
Release Engineering is a process of creating binary builds from source code. It includes the following steps:
- Acquire a source code from a source contol system
- Build the source code
- Bundle the binaries
- Run promotion checks
- Maintain integrity of the source repository
If promotion checks pass, the build is promoted for the test cycle.
CVS is a default source control system for Eclipse. Many other source control servers such as Subversion are CVS-compatible. Specialized plugins can be found here.
Build tools are script engines which handle local and remote dependencies.
- Local dependency management allows incremental builds which rebuild changed files only and files indirectly affected by the change.
- Remote dependencies are taken into account for automatic download and updates of binary or source library distributions from the Internet.
Eclipse has the following support for building tools:
- XML-based build scripts are highlighted and folded in the editor.
By default the internal Eclipse builder, Apache Ant and a command line tool are supported. Eclipse is extensible with custom builders.
Eclipse is integrated with Maven by means of the followingplugin.
- Daily synchronization with a common repository
- Continuous repository verification (automated build and testing)
Eclipse supports the following systems for continuous integration:
- Any supported builder can be used in "Build Automatically" mode.
Continuous Testing technology runs unit tests in parallel with development process.
TPTP has an extensible SOA-based design.
UI Testing Tools
Abbot and other JUnit based testing tools are used to create automated tests for GUI applications. Test and Performance Tools Platform embeds these tools and enriching them with Eclipse-specific event hooks.
Distributed Testing Tools
TPTP describes remote agents architecture.
JUnit has a set of distributed test runners
- TestNG intself supports distribution of operations on slave machines
Tracing and Profiling Tools
Source Code Coverage and Other Metrics
Here is a list of Eclipse plugins which provide source code metrics.
Stress/Performance Test Generators
The followng tools allows combining existent functional JUnit tests into stress/performance tests.
Automatic Test Generators
Most test generators just help test developers to obtain a trivial JUnit template. The folloiwng generators are more complex and worth additional investigation.
Javver generates random bytecode
Cricket Cage creates test cases recording an exeecution of a valid program
- Mikhail Voronin at Intel