Fixture management
Fixture management in general enables you to create a tree of fixtures which you can assign/position tests to.
What is a fixture?
A fixture represents a state of the Software/System under test. For example, think of web application testing: one fixture (and obviously the basic) can be a machine with nothing installed on it, this state can be defined as the root fixture. A second fixture can be the machine installed with the application under test. An additional fixture can be the application configured with some data, and yet additional fixture can be the application configured with some different data.
To define a fixture two things should be defined: setup - the way to get from the initial state to the fixture state, and teardown - the way to return from the fixture back to the original state.
In the JSystem model the fixtures are arranged in a tree. Every fixture is pointing to it's parent.
Why do we need fixtures?
Every test, especially a functional/system test, has a fixture. In some of the cases the fixture is very complicated. One way is to enter the fixture setting and tear-down into the test itself. However, this way the test gets messy with irrelevant details.
The fixture approach takes the details of fixtures out of the test.