2008-09-14 13 views
11

Tengo un programa de red C++ en Windows que me gustaría probar para las desconexiones de red en varias ocasiones. ¿Cuáles son mis opciones?Probando interrupciones de red en el software

Actualmente estoy:

  1. desconectar realidad el cable de red de la parte posterior de mi equipo
  2. mediante ipconfig/release
  3. Utilizando el programa cports para cerrar el zócalo por completo

Ninguno de estos métodos es ideal para mí, y me gustaría emular problemas de red más fácilmente.

Me gustaría que algunas veces la conexión falla, a veces las lecturas de socket fallan y, a veces, las escrituras de socket fallan. Sería genial si hubiera alguna utilidad que pudiera usar para emular este tipo de problemas.

También sería bueno poder construir algunas pruebas unitarias automatizadas mientras esta emulada mala red está activa.

Respuesta

11

Es posible que desee abstraer la capa de red, y luego puede tener pruebas de unidad que inyecten eventos de falla interesantes en los puntos apropiados.

+0

Este es el enfoque que tomo y funciona muy bien. El uso juicioso de las interfaces significa que puedo simular varias partes del sistema bajo prueba. Para las pruebas que no se pueden hacer de esta manera, tengo el código bajo prueba conectado a un socket de prueba en el arnés de prueba que luego controlo en la prueba –

0

Puede subclase cualquier clase de biblioteca que esté utilizando para administrar sus sockets (presumiblemente CAsyncSocket o CSocket si está utilizando MFC), anule los métodos cuyo error desea probar e inserte el código de prueba apropiado en sus sobrescrituras.

0

Existen algunos métodos que puede utilizar, depende del nivel que desee probar. Para el nivel de función, puede usar el marco de prueba XUNIT para simular una respuesta. Para nivel de software, puede usar un servidor proxy local para la conexión contral.

Cuestiones relacionadas