Prueba de mono

Técnica en la que el usuario prueba la aplicación o el sistema proporcionando entradas aleatorias.

En las pruebas de software , la prueba de mono es una técnica en la que el usuario prueba la aplicación o el sistema proporcionando entradas aleatorias y verificando el comportamiento, o viendo si la aplicación o el sistema se bloqueará. La prueba de mono se implementa generalmente como pruebas unitarias automatizadas aleatorias .

Aunque el origen del nombre "mono" es incierto, algunos creen que el nombre tiene que ver con el teorema del mono infinito , [1] que establece que un mono que pulsa teclas al azar en un teclado de máquina de escribir durante una cantidad infinita de tiempo casi seguramente escribirá un texto determinado, como las obras completas de William Shakespeare . Algunos otros creen que el nombre proviene de la clásica aplicación de Mac OS "The Monkey" desarrollada por Steve Capps antes de 1983. Utilizaba ganchos de registro para introducir eventos aleatorios en los programas de Mac y se utilizaba para probar errores en MacPaint . [2]

Monkey Testing también está incluido en Android Studio como parte de las herramientas de prueba estándar para pruebas de estrés . [3]

Tipos de pruebas con monos

Las pruebas con monos se pueden clasificar en pruebas con monos inteligentes o pruebas con monos tontos .

Pruebas de monos inteligentes

Los monos inteligentes suelen identificarse por las siguientes características: [4]

  • Tener una breve idea sobre la aplicación o el sistema.
  • Conocer su propia ubicación, dónde puede ir y dónde ha estado.
  • Conozca su propia capacidad y la capacidad del sistema.
  • Concentrarse en romper el sistema
  • Informar de los errores que encontraron

A algunos monos inteligentes también se les llama monos brillantes , [ cita requerida ] que realizan pruebas según el comportamiento del usuario y pueden estimar la probabilidad de ciertos errores.

Pruebas de monos tontos

Los monos tontos, también conocidos como "monos ignorantes", suelen identificarse por las siguientes características: [ cita requerida ]

  • No tengo conocimiento sobre la aplicación o el sistema.
  • No sé si su aportación o comportamiento es válido o inválido.
  • No conocen sus capacidades ni las del sistema, ni el flujo de la aplicación.
  • Pueden encontrar menos insectos que los monos inteligentes, pero también pueden encontrar insectos importantes que son difíciles de atrapar para los monos inteligentes.

Ventajas y desventajas

Ventajas

Las pruebas de mono son una forma eficaz de identificar algunos errores predefinidos. Dado que los escenarios probados suelen ser ad hoc , las pruebas de mono también pueden ser una buena forma de realizar pruebas de carga y estrés. La aleatoriedad intrínseca de las pruebas de mono también las convierte en una buena forma de encontrar errores importantes que pueden dañar todo el sistema. La configuración de las pruebas de mono es sencilla, por lo que es buena para cualquier aplicación. Los monos inteligentes, si se configuran correctamente con un modelo de estado preciso, pueden ser muy buenos para encontrar varios tipos de errores.

Desventajas

La aleatoriedad de las pruebas con monos hace que los errores encontrados sean difíciles o imposibles de reproducir. Los errores inesperados encontrados en las pruebas con monos también pueden ser difíciles y requerir mucho tiempo para su análisis. En algunos sistemas, las pruebas con monos pueden durar mucho tiempo antes de encontrar un error. Para los monos inteligentes, la capacidad depende en gran medida del modelo de estado proporcionado, y desarrollar un buen modelo de estado puede ser costoso. [1]

Técnicas similares y distinciones

Si bien las pruebas de mono a veces se tratan de la misma manera que las pruebas fuzz [5] y los dos términos generalmente se usan juntos, [6] algunos creen que son diferentes al argumentar que las pruebas de mono se tratan más sobre acciones aleatorias mientras que las pruebas fuzz se tratan más sobre la entrada de datos aleatorios. [7] Las pruebas de mono también se diferencian de las pruebas ad hoc en que las pruebas ad hoc se realizan sin planificación ni documentación y el objetivo de las pruebas ad hoc es dividir el sistema aleatoriamente en subpartes y verificar su funcionalidad, lo que no es el caso de las pruebas de mono.

Véase también

Referencias

  1. ^ ab "¿Qué es Monkey Testing? | Capacitación y consultoría en TI – Exforsys". www.exforsys.com . Consultado el 22 de abril de 2016 .
  2. ^ "Folklore.org: Monkey Lives" (en inglés). www.folklore.org . Consultado el 22 de abril de 2016 .
  3. ^ "Mono ejercitador de UI/aplicación | Desarrolladores de Android". developer.android.com . Consultado el 25 de abril de 2016 .
  4. ^ Patton, Ron (2001). "Pruebas aleatorias: monos y gorilas". Pruebas de software . Indianápolis, Ind: Sams. ISBN 978-0-672-31983-9.
  5. ^ Brummayer, Robert; Lonsing, Florian; Biere, Armin (11 de julio de 2010). Strichman, Ofer; Szeider, Stefan (eds.). Pruebas y depuración automatizadas de solucionadores SAT y QBF . Notas de clase en informática. Springer Berlin Heidelberg. págs. 44–57. CiteSeerX 10.1.1.365.777 . doi :10.1007/978-3-642-14186-7_6. ISBN .  9783642141850.
  6. ^ "Pruebas de fuzz en Delphi - DelphiTools" www.delphitools.info . Consultado el 22 de abril de 2016 .
  7. ^ "Diferencia entre "prueba fuzz" y "prueba de mono"". stackoverflow.com . Consultado el 22 de abril de 2016 .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Prueba_con_monos&oldid=1236350321"