2008-08-25 10 views
12

¿Qué estrategias ha utilizado con las Pruebas basadas en modelos?Estrategias de prueba basadas en modelos

  • Cómo se utiliza exclusivamente para pruebas de integración, o rama que a otras áreas (unidad/funcional/sistema/verificación de especificaciones)?
  • ¿Construyes modelos "sellados" enfocados o evolucionas modelos onibus complejos a lo largo del tiempo?
  • ¿Durante el ciclo del producto invierte en la creación de MBT?
  • ¿Qué tipo de bibliotecas de prueba básica crea exclusivamente para MBT?
  • ¿Qué diferencia hace en sus bibliotecas de prueba de base funcional para admitir mejor los MBT?

Respuesta

1

No hemos hecho ningún mucho que & T y unidad de pruebas de uso/casi exclusivamente, sazonada con un poco de pruebas del sistema. Pero nuestro enfoque es claramente en las pruebas unitarias. Soy muy estricto con las API que construimos/proporcionamos, por lo que se supone que, si funciona por sí solo, funcionará en conjunto y no ha habido mucho error todavía.

Nuestros modelos se centran en un único propósito/módulo con la menor cantidad de dependencias posible.

El objetivo siempre es comenzar lo más temprano posible (TDD-un poco), pero desafortunadamente no siempre lo hacemos. El problema es que siempre tienes que vendérselo a la gerencia y luego es difícil porque mientras las pruebas mejoran la estabilidad (control de calidad general), las personas externas (fuera de la tecnología) no pueden relacionarse con lo que eso significa hasta que algo malo sucedió.

Como usamos PHP, empleamos PHPUnit para las pruebas unitarias. En general, hacemos CI con varias herramientas diferentes. :)

14

[Hay varios ensayos que vale la pena leer sobre esto. Stack Overflow no me permite publicar más de uno, así que los agregué en una publicación de blog, vinculada al final de esta respuesta.]

Primero, una nota rápida sobre los términos. Tiendo a usar la definición de Testing de James Bach como "cuestionar un producto para evaluarlo". Todas las pruebas dependen de/mental/modelos de la aplicación bajo prueba. Sin embargo, el término Pruebas Basadas en Modelos generalmente se usa para describir la programación de un modelo que puede explorarse a través de la automatización. Por ejemplo, uno podría especificar un número de estados en los que puede estar una aplicación, varias rutas entre esos estados y ciertas afirmaciones sobre lo que debería ocurrir en la transición entre esos estados. Entonces uno puede tener scripts ejecutando permutaciones semi-aleatorias de transiciones dentro del modelo de estado, registrando resultados potencialmente interesantes.

Aquí hay costos reales: crear un modelo útil, crear algoritmos para explorarlo, registrar sistemas que le permitan a uno pasar por fallas interesantes, etc. Si los costos son razonables tiene mucho que ver con qué son las preguntas que quieres responder? En general, comience con "¿Qué quiero saber? ¿Y cómo puedo aprender mejor sobre esto? "En lugar de buscar un uso para una técnica interesante.

Dicho todo esto, algunos excelentes evaluadores han obtenido un gran rendimiento de las pruebas automatizadas basadas en modelos. A veces tenemos preguntas importantes acerca de la aplicación bajo prueba que se exploran mejor mediante pruebas semialeatorizadas automáticas y de alto volumen.Harry Robinson (uno de los principales teóricos y defensores de las pruebas basadas en modelos) describe un ejemplo muy colorido en el que descubrió muchos errores interesantes en las indicaciones de conducción de Google utilizando una prueba basada en modelos (escrita con la biblioteca Watir de ruby). 1

Robinson ha utilizado MBT con éxito en compañías como Bell Labs, Microsoft y Google, y tiene varios ensayos útiles. [2]

Ben Simo (otro gran pensador y escritor de pruebas) también ha escrito bastante valioso sobre las pruebas basadas en modelos. [3]

Por último, algunas advertencias: para hacer un buen uso de una estrategia, es necesario explorar sus fortalezas y sus debilidades. Con ese fin, James Bach tiene una excelente charla sobre los límites y desafíos de las Pruebas Basadas en Modelos. Esta publicación de blog de los enlaces de Bach a su charla de una hora (y las diapositivas asociadas). [4]

Terminaré con una nota sobre lo que Boris Beizer llama Pesticide Paradox: "Cada método que utiliza para prevenir o encontrar errores deja un residuo de errores más sutiles contra los cuales esos métodos son ineficaces". Pruebas con guiones (ya sean ejecutadas por una computadora o una persona) son particularmente vulnerables a la paradoja del pesticida, tendiendo a encontrar información cada vez menos útil cada vez que se ejecuta el mismo guión. La gente a veces recurre a las pruebas basadas en modelos pensando que soluciona el problema del pesticida. En algunos contextos, las pruebas basadas en modelos pueden encontrar un conjunto mucho más grande de errores que un conjunto dado de pruebas escritas ... pero uno debe recordar que aún está fundamentalmente limitado por la paradoja de los pesticidas. Recordando sus límites, y comenzando con las preguntas que MBT aborda bien, tiene el potencial de ser una estrategia de prueba muy poderosa.

Enlaces a todos los ensayos mencionados anteriormente se pueden encontrar aquí: http://testingjeff.wordpress.com/2009/06/03/question-about-model-based-testing/

0

La mejor manera es intentar por sí mismo una herramienta de prueba basada Modelo. Es la mejor manera de saber si las pruebas basadas en modelos se adaptan a su contexto. Y qué tipo de estrategias es la buena.

te aconsejan la función "Matelo" de All4Tec (www.all4tec.net)

"Matelo es un generador de casos de prueba para pruebas funcionales y de sistema de caja de negro. Conformada con el enfoque de las pruebas basadas en modelos, usos Matelo Cadenas de Markov para el modelado de la prueba Este complemento estadístico permite la validación de productos de manera sistemática. La eficiencia se logra mediante una reducción de los recursos humanos necesarios, un aumento de la reutilización del modelo y la mejora de la relevancia de la estrategia de prueba (debido a la objetivo de confiabilidad). MaTeLo es independiente y fácil de usar, ofrece a las actividades de validación pasar de scripting de prueba a ingeniería de prueba real y centrarse en el valor real de las pruebas: los planes de prueba "

Puede solicitar una licencia de evaluación y probarla usted mismo.

puede encontrar algún ejemplo aquí: http://www.all4tec.net/wiki/index.php?title=Tutorials

Cuestiones relacionadas