We saw how acceptance tests can be used to make clear what we want to build and guide us step by step through what we have to build next, while lower-level tests, such as unit and integration tests, can be used to tell us how we want to build it and how we want the various pieces to work together.
In this case, our application was fairly small, so we used the acceptance test to verify the integration of our pieces. However, in the real world, as we grow the various parts of our infrastructure, we will have to introduce tests to confirm they are able to work together and the reason is their intercommunication protocol.
Once we found a bug, we also saw how regression tests can help us design fixes and how they can prevent the same bug from happening again in the long term.
During any stage of software development, the Design, Implementation, and Maintenance workflow helps us better understand what we are trying to do and thus get the right software, code, and bug fixes in place...