Given that a test suite is necessary, how should it be structured? There are a number of options:

So which is best?