Network TDD Quickstart Guide

This post gives a quick overview of how to use network Test Driven Development framework. As an example I’ll use a simplified version of a typical enterprise network with a Data Centre/HQ and a Branch office. A new branch is being added and the task is to configure routing for that branch using a TDD approach. First we’ll devise a set of TDD scenarios to be tested and then, going through each one of them, modify routing to make sure those scenarios don’t fail (a so-called red-green-refactor approach)

Verifying TDD Scenarios

Writing a custom Ansible module to verify TDD scenarios

Developing Custom Ansible Modules

IP Address Information Collection With Custom Ansible Modules

Getting Started With Ansible for Cisco IOS

Ansible quickstart guide for Cisco IOS

Development Environment Setup

Setting up development and test environments

Building a Simple Network TDD Framework

In the following series of posts I will show how to build a simple Test-Driven Development framework for Cisco devices. This framework will allow a network engineer to define traffic patterns in a human-readable format and automatically check if those assumption hold. It will be built as a series of Ansible modules and playbooks. The idea is to show an example of how programming can be used by network engineers even now, before all devices acquire their own APIs as well as introduce some well-known programming paradigms and best practices to network engineers thereby making a small step towards networking nirvana a.k.a. SDN. The reader is assumed to have only a basic networking, linux and python programming skills