Ответ 1
Возможно, вам захочется абстрагироваться от сетевого уровня, а затем вы можете иметь модульные тесты, которые вводят интересные события сбоя в соответствующих точках.
У меня есть сетевая программа на С++ в Windows, которую я хотел бы протестировать для сетевых отключений в разное время. Каковы мои варианты?
В настоящее время я:
Ни один из этих методов не идеален для меня, и я хотел бы легче эмулировать сетевые проблемы.
Я хотел бы иногда подключаться к сбою, иногда сокет читает сбой, а иногда сокет записывается в сбой. Было бы здорово, если бы была какая-то полезность, которую я мог бы использовать для эмуляции этих типов проблем.
Было бы неплохо иметь возможность создавать некоторые автоматизированные модульные тесты, пока эта эмулированная плохая сеть не работает.
Возможно, вам захочется абстрагироваться от сетевого уровня, а затем вы можете иметь модульные тесты, которые вводят интересные события сбоя в соответствующих точках.
Ближайший, о котором я могу думать, делает что-то подобное с VEDekstop из Shunra..
Shunra VE Desktop Standard - это клиентское программное обеспечение на базе Windows, которое имитирует широкополосную сетевую связь, чтобы вы могли тестировать приложения в различных текущих и потенциальных сетевых условиях - прямо с вашего рабочего стола.
Вы можете подклассифицировать любой класс библиотеки, который вы используете для управления сокетами (предположительно CAsyncSocket или CSocket, если вы используете MFC), переопределить методы, сбой которых вы хотите протестировать, и вставить соответствующий тестовый код в свои переопределения.
Есть несколько методов, которые вы можете использовать, это зависит от того, на каком уровне вы хотите протестировать. Для уровня функции вы можете использовать инфраструктуру тестирования XUNIT, чтобы высмеять ответ. Для уровня программного обеспечения вы можете использовать локальный прокси-сервер для контрал-соединения.