Articulo de referencia

Pruebas con monos

En las pruebas de software , la técnica de prueba "monkey testing" consiste en que el usuario prueba la aplicación o el sistema introduciendo datos aleatorios y comprobando su c...

En las pruebas de software , la técnica de prueba "monkey testing" consiste en que el usuario prueba la aplicación o el sistema introduciendo datos aleatorios y comprobando su comportamiento o si la aplicación o el sistema falla. Generalmente, esta técnica se implementa como pruebas unitarias automatizadas y aleatorias .

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

Las pruebas de mono también están incluidas 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 idea general sobre la aplicación o el sistema.
  • Conoce su propia ubicación, adónde puede ir y dónde ha estado.
  • Conocer su propia capacidad y la capacidad del sistema.
  • Concéntrese en romper el sistema.
  • Informa de los errores que encuentres.

Algunos monos inteligentes también son conocidos como monos brillantes , 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:

  • No tengo conocimientos sobre la aplicación o el sistema.
  • No sé si su entrada o comportamiento es válido o no.
  • Desconozco sus capacidades y las del sistema, así como el flujo de la aplicación.
  • Puede encontrar menos errores que los monos inteligentes, pero también puede encontrar errores importantes que son difíciles de detectar para los monos inteligentes.

Ventajas y desventajas

Ventajas

Las pruebas de simulación (monkey testing) son una forma eficaz de identificar errores de configuración. Dado que los escenarios probados suelen ser ad hoc , también pueden ser útiles para realizar pruebas de carga y estrés. La aleatoriedad inherente a las pruebas de simulación las convierte en una buena manera de encontrar errores importantes que pueden dañar todo el sistema. Su configuración es sencilla, por lo que son adecuadas para cualquier aplicación. Si se configuran correctamente con un modelo de estado preciso, los simuladores inteligentes pueden ser muy eficaces para detectar diversos tipos de errores.

Desventajas

La aleatoriedad de las pruebas de mono a menudo dificulta o imposibilita la reproducción de los errores encontrados. Los errores inesperados detectados mediante estas pruebas también pueden ser complejos y requerir mucho tiempo para su análisis. En algunos sistemas, las pruebas de mono pueden prolongarse durante mucho tiempo antes de encontrar un error. Para los monos inteligentes, la efectividad depende en gran medida del modelo de estado proporcionado, y desarrollar un buen modelo de estado puede resultar costoso. [ 1 ]

Técnicas similares y distinciones

Aunque a veces se equipara la prueba de monos con la prueba de fuzzing [ 5 ] y ambos términos suelen usarse juntos, [ 6 ] algunos creen que son diferentes argumentando que la prueba de monos se centra más en acciones aleatorias, mientras que la prueba de fuzzing se centra más en la entrada de datos aleatorios. [ 7 ] La ​​prueba de monos también se diferencia de la prueba ad hoc en que esta última se realiza sin planificación ni documentación, y su objetivo es dividir el sistema aleatoriamente en subpartes y comprobar su funcionalidad, lo cual no ocurre en la prueba de monos.

Véase también

Referencias

  1. 1 2 "¿Qué es Monkey Testing | Capacitación y consultoría en TI – Exforsys?" . www.exforsys.com . 17 de diciembre de 2011 . Recuperado el 22 de abril de 2016 .
  2. "Folklore.org: Monkey Lives" . www.folklore.org . Consultado el 22 de abril de 2016 .
  3. "Mono ejercitador de interfaz de usuario/aplicaciones | 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, Indiana: 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 fuzzing en Delphi - DelphiTools" . www.delphitools.info . Consultado el 22 de abril de 2016 .
  7. "Diferencia entre "pruebas de fuzzing" y "pruebas de monos"" . stackoverflow.com . Consultado el 22-04-2016 .