In this chapter, we looked at test-driven development and how it can be applied to network engineering. We started with an overview of TDD; then we looked at examples of using the unittest and pytest Python modules. Python and simple Linux command-line tools can be used to construct various tests for network reachability, configuration, and security.
We also looked at how we can utilize testing in Jenkins, a continuous-integration tool. By integrating tests into our CI tool, we can gain more confidence in the sanity of our change. At the very least, we hope to catch any errors before our users do.
Simply put, if it is not tested, it is not trusted. Everything in our network should be programmatically tested as much as possible. As with many software concepts, test-driven development is a never-ending service wheel. We strive to have as much test coverage as possible...