¿Qué significa prueba Fuzz?
Las pruebas fuzz describen los procesos de prueba de sistemas que implican un enfoque aleatorio o distribuido. Los profesionales de TI suelen utilizar el término para referirse a los esfuerzos por someter a pruebas de estrés a las aplicaciones, introduciendo en ellas datos aleatorios para detectar cualquier error o fallo que pueda producirse.
La idea que subyace a las pruebas fuzz es que las aplicaciones y sistemas de software pueden tener muchos errores o fallos diferentes relacionados con la introducción de datos.
Definición de las pruebas fuzz
Por ejemplo, las pruebas fuzz pueden incluir la introducción de distintos tipos de enteros, cadenas de caracteres, flotantes y otras variables que, si no se introducen correctamente, pueden hacer que la aplicación de software se cuelgue o se bloquee.
Un ejemplo común es un campo de números enteros destinado a albergar unos pocos números específicos, como del uno al cinco, pero en el que un usuario puede introducir cualquier número entero debido a la configuración genérica del campo o control de entrada. Introducir un valor alto puede provocar un error o un fallo.
En las pruebas fuzz, los desarrolladores experimentan introduciendo muchos tipos diferentes de respuestas aleatorias, y luego documentan los fallos que se produzcan. En algunos casos, los desarrolladores pueden utilizar una herramienta llamada fuzzer para inyectar datos aleatorios.
La idea de las pruebas fuzz se atribuye a menudo al profesor de la Universidad de Wisconsin Barton Miller y a su trabajo de 1989. Otra forma de entender las pruebas fuzz es que, en cierto modo, el término se corresponde con el más general de lógica difusa, un tipo de razonamiento que sugiere que los procesos distribuidos pueden ayudar a los observadores a detectar una tendencia más amplia en los datos o sistemas.
Algunos profesionales de TI también hablan de pruebas de seguridad fuzz, en las que los probadores pueden experimentar con distintos tipos de hacks para identificar brechas de seguridad.