Если мы говорим про программно-определяемые сети, то обязательно стоит помнить про тестирование, которое встроено в методологии программирования, где некоторые, как например TDD, даже ставят тесты впереди всего остального. Не стоит забывать, что у программистов есть ещё линтеры, статические анализаторы, компиляторы и всё это сработает до того как программа сделает хоть что-то, в том числе тесты.
Статья про то
как тесты подружить с конфигурацией сетевых устройств и в конечном итоге мы видим примеры на Batfish, но первая половина про подходы и идеологию, в которой от частного к общему надо проверить:
1. Непротиворечивость и достаточность конфигурации, например, существует ли
route-map
, который применяется в политике на интерфейсе
2. Реакцию отдельного устройства на эту конфигурацию, например, пройдёт или не пройдёт определённый пакет через
ACL
3. Взаимодействие устройств и протоколов, например, корректность установки BGP соседства, после применения тестируемой конфигурации
4. И высокоуровневое тестирование из конца в конец, будет ли доступен от пользователя Google после того мы всё это применим