Capítulo 87. La irrazonable eficacia de las pruebas Fuzz
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Nat Pryce
Tanto si utilizan el desarrollo dirigido por pruebas como si no, los programadores que escriben pruebas automatizadas sufren un sesgo positivo hacia las pruebas:1, 2 es más probable que comprueben que el software se comporta correctamente cuando se le da una entrada válida que que el software es robusto cuando se le da una entrada no válida. Como resultado, nuestros conjuntos de pruebas no detectan clases enteras de defectos. Las pruebas fuzz3 es una técnica irrazonablemente eficaz para las pruebas negativas que es fácil de incluir en los conjuntos de pruebas automatizadas existentes. Incluir pruebas fuzz en tu proceso de desarrollo basado en pruebas te ayudará a construir sistemas más robustos.
Por ejemplo, estábamos ampliando el software de un producto de consumo muy utilizado para obtener datos de servicios web. Aunque tuvimos cuidado de escribir un código de red robusto y probamos tanto los casos negativos como los positivos, el fuzzing descubrió inmediatamente un número sorprendente de entradas que hacían que el software lanzara excepciones inesperadas. Muchas de las API estándar de Java que analizan datos lanzan excepciones no comprobadas, por lo que el comprobador de tipos no había podido ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access