Research‎ > ‎


Testful is an evolutionary testing framework for stateful systems. The prototype is available as an open source project, and works on Java classes.

Why TestFul?

Testing should be one of the key activities of every software development process. However it requires up to half of the software development effort when it is properly done. One of the main problems is the generation of "smart'' tests to probe the system, which is both difficult and time-consuming. The research community has been proposing several ways to automate the generation of these tests; among them, the search-based techniques recently achieved significant results.

TestFul is an evolutionary testing approach for stateful systems. It is tailored to work on object-oriented systems. It uses a holistic approach to make the state of object evolve, to enable all the features the class provides, and to generate the best test for the class under test. It employs several complementary coverage criteria to drive the evolutionary search. In particular, it combines both black-box and white-box analysis techniques to consider the system from different perspectives and ensure a high fault detection ability of the generated tests. The evolutionary search is completed with a local one, and it establishes a synergic cooperation between them. The evolutionary search concentrates on evolving the state of objects, while the local search detects the functionality not yet exercised, and directly targets them.