Summary
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, but even at 100% test coverage, we can always find new ways and test cases to implement. This is especially true in...