For extra credit, have the last step involve the version control system, so that each migration contains a commit of the last version which contains the old schema, and each version contains a (database | data seed) sufficient to verify the validity of the migration step.
So to test from any given migration:
- Checkout the code at that point
- Apply the migration
- Apply tests
And repeat as necessary.