Step one – creating a functional testDeveloping the missing codeStep two – creating the unit testsSetting up the database for a test environment in the right wayDropping and recreating the database for each testCreating unit testsWriting the code to pass the testRunning functional and unit testsStep three – creating an acceptance test