The user defines tools, branches and versions. Interfaces are added to branches and versions to modelize the possible behaviour of the tools.
Then the user defines chains, i.e. data flow using interfaces, and test cases.
Genet computes all tool version combinations to execute the chains on the test cases. Results can be compared.