The lifecycle of a test executed using TradeFederation is composed of four separate stages, designed around formally defined interfaces.

The fundamental testing entity in TF is a Configuration (config). A config is an XML file that declares the lifecycle components of a test.

This separation of the test's lifecycle is intended to allow for reuse. Using this design, the Developer can create a Test once, and then the Integrator can create different Configurations to run that Test in different environments. For example, they could create a Configuration that will run a test on a local machine and dump the result to stdout. They could then create a second Configuration that would execute that same test, but use a different Test Invocation Listener to store the test results in a database. A third Configuration might be designed run that test continuously from a test lab somewhere.

It's convenient to note here that a Configuration along with its command-line arguments (as provided by the Test Runner) is known as a Command. When TF takes pairs a Command with an ITestDevice and executes it, the subsequent object is known as an Invocation. In short, an Invocation encompasses a complete TF test execution, across its entire lifecycle.

Additional Components of a Configuration