2009-10-27 15 views
9

Estoy estudiando el uso de pruebas de unidades paralelas para nuestros proyectos y me preguntaba sobre las mejores prácticas para escribir realmente tales pruebas de unidades paralelas.Mejores prácticas para escribir pruebas en unidades paralelas

+0

¿Está hablando de probar un componente de subprocesos múltiples utilizando llamadas en paralelo? – falstro

+0

Estoy buscando ejecutar múltiples pruebas unitarias (simultáneamente) usando MBUnit, que tiene un atributo/decoración paralelizable para pruebas unitarias - esto ejecutará tantas pruebas en paralelo como núcleos en la máquina. (¡al parecer!) –

+0

¡Ah, excelente! :) – falstro

Respuesta

5

Si por pruebas en unidades paralelas se entiende las pruebas que se pueden ejecutar al mismo tiempo, el consejo más importante que puedo darle es evitar los llamados dispositivos compartidos.

El libro xUnit Test Patterns describen la Fixture plazo, que básicamente puede ser descrito como todo el contexto en el que cada caso de prueba se ejecuta, incluyendo datos persistentes y transitorias.

Un dispositivo compartido indica que los casos de prueba comparten contexto durante la ejecución. Si ese contexto es mutable, las condiciones de carrera pueden ocurrir.

Mantener un dispositivo compartido inmutable (un accesorio compartido inmóvil compartido) le permitirá ejecutar pruebas en paralelo, pero incluso mejor, los denominados Accesorios nuevos (donde cada caso de prueba tiene su propio dispositivo) son seguros para subprocesos por definición, ya que solo el caso de prueba tiene acceso al dispositivo.

Los ejemplos de dispositivos compartidos incluyen cualquier tipo de prueba que utiliza una base de datos compartida, pero también incluyen pruebas en las que tiene estado estático en memoria en el sistema bajo prueba (SUT) o las pruebas en sí, por lo que debe evitar ese.

También debe tener en cuenta que si su SUT accede a datos compartidos (estáticos), ese acceso en sí debe ser seguro para subprocesos.

Cuestiones relacionadas