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 ...
Get 97 cosas que todo programador Java debe saber now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.