Language-Based Software Testing

El próximo jueves 6 de noviembre de 2025 a las 10:30 en el salón de actos de la ETSI Informática tendrá lugar el seminario «Language-Based Software Testing» a cargo del profesor Andreas Zeller (CISPA Helmholtz Center for Information Security) dentro de la serie «La informática en la encrucijada» al que está toda la comunidad educativa invitada.

El vídeo del evento puede verse aquí.

La presentación en PDF puede verse aquí.

 

Andreas Zeller es miembro del profesorado en el Centro Helmholtz CISPA para la Seguridad de la Información y profesor de Ingeniería de Software en la Universidad de Saarland. Su investigación sobre depuración automatizada, minería de archivos de software, minería de especificaciones y pruebas de seguridad ha recibido varios premios por su impacto en la academia y la industria.

Zeller es miembro de la ACM (ACM Fellow), ha recibido el Premio a la Investigación Sobresaliente de ACM SIGSOFT, y ha ganado dos ERC grants, la financiación más competitiva a nivel de Europa para investigadores individuales.

Los generadores aleatorios de entradas de prueba (fuzzers) se han convertido en los principales detectores de vulnerabilidades en el software. Aunque los fuzzers genéricos se adaptan fácilmente a programas arbitrarios bajo prueba, ofrecen muy pocas posibilidades para controlar o dar forma a las entradas generadas.

En esta charla, se presentará FANDANGO, un novedoso fuzzer basado en lenguaje que combina gramáticas con predicados sobre elementos de entrada, para producir entradas que satisfacen todos los predicados dados. Algunos ejemplos de lo que estos predicados pueden expresar incluyen:

  • Restricciones de formato de entrada: “El campo length debe ser igual a la longitud de la carga útil (payload).”

  • Sumas de verificación: “El campo signature debe ser un hash SHA-512 del document.”

  • Distribuciones estadísticas: “En todas las entradas, el campo voltage debe seguir una distribución gaussiana, pero nunca exceder los 20 mV.”

  • Colecciones de datos: “El campo credit-card-number debe provenir de la biblioteca Python faker.”

Y mucho más – en realidad, cualquier propiedad que pueda expresarse en una expresión de Python.

Todo esto se vuelve aún más interesante porque las gramáticas, las características de los protocolos y las colecciones de datos pueden consultarse a partir de modelos de lenguaje grandes (LLM), y tanto las entradas como las salidas pueden ser textos en lenguaje natural, obtenidos y evaluados por sistemas de IA.

En nuestros experimentos, FANDANGO resolvió de manera eficiente formatos de archivo complejos y cumplió con predicados exigentes, llegando incluso a generar entradas completas de lenguajes de programación como pruebas para compiladores. Esto abre la puerta al fuzzing personalizado, donde los evaluadores pueden aprovechar su propio conocimiento y el de los LLM para realizar pruebas de sistemas de manera muy eficaz.

Incluiremos demostraciones en vivo.

FANDANGO está disponible en: https://fandango-fuzzer.github.io/

¿Te ha gustado este artículo? ¡Compártelo!

Facebook
Twitter
LinkedIn
Telegram
WhatsApp