A complete Test-Driven Development cycle