One day our software will go in production, and so shortly we will pay dearly for our youthful mistakes. Without regression tests, we will be in deep trouble. If we have regression tests, but we did not have performed TDD, we should probably increase the effort in bug fixing and maintenance, since we do not have enough code coverage and our tests come out complex.
By retracing the author youthful mistakes, we will see a complete development workflow, from the user story to the low-level tests, in order to highlight the differences between functional, integration and unit tests, the best practices, and the lessons learned by the author during the development of the Sardinia Radio Telescope control software.