2011-09-15 10 views
7

En el proyecto en el que estoy trabajando tenemos un número desconocido de pruebas de parpadeo que fallan a diferentes velocidades (en cualquier lugar de una ejecución cada dos a una vez cada 5000 ejecuciones) lo que nos ha llevado a creer que tenemos algunos Heisenbugs serios para resolver. La mayoría de las veces, incluidas las declaraciones de seguimiento en el código, cambian el tiempo suficiente para eliminar estos errores, o al menos hacen que ocurran con menos frecuencia, pero obviamente esto no es una corrección de errores válida.Existen herramientas de eliminación de simultaneidad para C# .NET en VS2010

Nos preguntamos si hay herramientas similares a CHESS (http://research.microsoft.com/en-us/projects/chess/download.aspx) que funcionen en/con Visual Studio 2010 para aplicaciones de prueba de estrés y detectar posibles condiciones de carrera y puntos muertos?

+1

SÓLO la pregunta ASÍ PUEDE AYUDAR: http://stackoverflow.com/questions/1715822/unit-test-for-thread-safe-ness –

+1

Gracias - aquí encontrará información útil, especialmente sobre la escritura de pruebas de prueba de roscas y Typemock Racer. La información aquí (http://stackoverflow.com/questions/537014/using-tdd-to-drive-out-thread-safe-code) también fue útil. –

+0

¿Alguna posibilidad de que intente * clases de prueba unitaria * que se ocupen de objetos únicos y estáticos escritos en algún * test de unidad * y leídos en otro? –

Respuesta

2

En Visual Studio 2010 (no estoy seguro de qué ediciones exactamente), puede crear una nueva sesión de creación de perfiles con la opción "Concurrencia". Esto debería detectar los puntos muertos que estás buscando. A continuación, puede perfilar una prueba unitaria para automatizar sus muchas ejecuciones.

No se pudo encontrar muchas imágenes de los resultados, pero he aquí un ejemplo example http://i.msdn.microsoft.com/ee336027.Shafi_Figure2(en-us,MSDN.10).png

+0

Disponible solo en la edición Ultimate. –

+0

Y desafortunadamente no tenemos Ultimate :( –

+5

http://msdn.microsoft.com/en-us/library/dd537632.aspx http://msdn.microsoft.com/en-us/magazine/ee336027 .aspx Esta es la documentación sobre cómo usar VS2010 Concurrency Visualizer - Para beneficio de los usuarios de stackoverflow – Bhuvan

2

Otra herramienta es de Microsoft Research única, puede descargarlo desde CodePlex - chesstool.codeplex.com. Es compatible con las bibliotecas .Net 4.0, la próxima versión de Chess, pero no sé si puede usarlo.

+0

Estoy buscando uno que funcione con visual studio 2015 pero es tan poderoso –

Cuestiones relacionadas