EcFeed is a tool which can be used to design, modeling, analyse and execute tests.

Especially EcFeed can be used to:

  • Define a test model: test functions, their parameters, sets of allowed values, and execution constraints.
  • Generate test suites with the use of build-in data generators or manually.
  • Analyse test coverage.
  • Control the run of test suites for applications written in Java language.
  • Run tests of web applications.
  • Run tests of Android applications.
  • Export generated test data to text files of user-defined structure.

The tool is implemented as:

  • A standalone application. It allows modelling tests, generate test data from the model and export generated data to a custom text format.
  • An Eclipse plugin. Apart from everything that is offered by the standalone application, the plugin can integrate with Java projects in Eclipse. Existing test classes can be imported to the test model. This works also in the opposite direction – the ecFeed model can be exported to an eclipse Java project as code stubs. Execution of tests can be controlled from the ecFeed model editor.
  • A jUnit runner. It allows a non-interactive execution of tests generated in runtime from models created in any of the above implementations.

EcFeed is built around equivalence class concept. It can generate n-wise (pairwise, 3-wise etc.) test suites. It also supports an algorithm for adaptive random data generation. The tool distinguishes between input parameters and output values (called here “expected values”) of modeled test methods. The input combinations and relations between input and output values can be constrained, so the generator filters out unwanted combinations of input parameters or sets the desired expected value according to specific combination of input parameters.

The ‘ec’ prefix in the tool’s name stands for “equivalence class”. the ‘Feed’ part is a tribute to the feed4junit tool that was major inspiration for ecFeed.