← Últimos artículos
💻 computer science

On the Flakiness of LLM-Generated Tests for Industrial and Open-Source Database Management Systems

Este estudio investiga la inestabilidad de las pruebas generadas por LLM para cuatro sistemas de gestión de bases de datos, revelando que dichas pruebas exhiben una tasa de inestabilidad ligeramente superior a las existentes debido principalmente a la dependencia de órdenes de ejecución no garantizadas, y que los LLM a menudo propagan patrones de inestabilidad existentes de sus instrucciones, particularmente en entornos de código cerrado.

Autores originales: Alexander Berndt, Thomas Bach, Rainer Gemulla, Marcus Kessel, Sebastian Baltes

Publicado 2026-01-15
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Alexander Berndt, Thomas Bach, Rainer Gemulla, Marcus Kessel, Sebastian Baltes

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina que estás contratando a un robot asistente muy talentoso y culto para ayudarte a escribir verificaciones de seguridad para una máquina compleja, como una base de datos que almacena toda la información importante de tu empresa. Le das al robot algunos ejemplos de cómo escribes estas verificaciones y este comienza a producir cientos de nuevas.

Este artículo es como una boleta de calificaciones sobre qué tan confiables son realmente esas verificaciones escritas por el robot. Los investigadores querían saber: ¿Estas pruebas escritas por robots funcionan de manera consistente, o actúan de forma "inestable" (flaky)?

¿Qué es una prueba "inestable" (Flaky)?

Piensa en una prueba "inestable" como un lanzamiento de moneda que esperas que sea cara siempre.

  • Una prueba normal: La ejecutas y dice "Pasa". La ejecas de nuevo y dice "Pasa". Es confiable.
  • Una prueba inestable: La ejecutas y dice "Pasa". La ejecutas de nuevo y dice "Falla". La ejecutas una tercera vez y dice "Pasa" otra vez.

Esto es una pesadilla para los ingenieros. Si una prueba falla aleatoriamente, no pueden saber si la máquina está realmente rota o si la prueba simplemente tuvo un mal día. Esto hace perder tiempo y hace que la gente pierda la confianza en las verificaciones de seguridad.

El Experimento: El Robot contra el Mundo Real

Los investigadores configuraron un experimento con cuatro diferentes "máquinas" (bases de datos):

  1. SAP HANA: Una base de datos industrial masiva, compleja y de código cerrado (como una bóveda de alta tecnología y secreta).
  2. MySQL, SQLite y DuckDB: Bases de datos de código abierto populares (como planos públicos y bien conocidos).

Utilizaron dos diferentes "cerebros robóticos" (Modelos de Lenguaje Extensos, o LLMs): GPT-4o y Mistral. Le pidieron a estos robots que miraran pruebas existentes y escribieran nuevas para cubrir más escenarios (un proceso llamado amplificación de pruebas).

Los Grandes Hallazgos

1. El Robot es un poco más "nervioso" que los humanos.
Los investigadores encontraron que las pruebas escritas por los robots tenían una probabilidad ligeramente mayor de ser inestables que las pruebas escritas por ingenieros humanos. Mientras que las pruebas escritas por humanos eran mayormente sólidas, las pruebas del robot tenían una mayor probabilidad de fallar aleatoriamente.

2. La confusión del "Orden" (El principal culpable).
¿La mayor razón por la que las pruebas del robot eran inestables? La confusión sobre el orden.
Imagina que le pides a un robot que enumere a los 3 mejores estudiantes de una clase. Si no le dices cómo ordenarlos (por calificación, por nombre, por altura), el robot podría darte una lista diferente cada vez que se ejecuta.

  • El error humano: El robot escribió pruebas que asumían que la base de datos siempre devolvería los resultados en un orden específico (como una lista ordenada de la A a la Z).
  • La realidad: Las bases de datos a menudo devuelven los resultados en un orden aleatorio a menos que les digas explícitamente que los ordenen.
  • El resultado: La prueba pasaba una vez (porque el orden aleatorio coincidía con la suposición del robot) y fallaba la siguiente vez (porque el orden cambió). Esto sucedió en el 63% de las pruebas inestables del robot.

3. El Efecto "Imitador" (Transferencia de inestabilidad).
Esta es la parte más interesante. Los investigadores decidieron jugar un truco. Tomaron una prueba existente que ya era inestable (un mal ejemplo) y se la dieron al robot como un ejemplo de cómo escribir una prueba.

  • El resultado: El robot no solo copió el código; copió el mal hábito. Comenzó a escribir nuevas pruebas que eran inestables de la misma manera.
  • La diferencia: El robot hizo esto mucho más a menudo con SAP HANA (la base de datos industrial secreta) que con las de código abierto. ¿Por qué? Porque el robot nunca había visto el código de SAP HANA antes en su entrenamiento. Dependía fuertemente de los ejemplos que le dabas, incluso si esos ejemplos estaban rotos. Con las bases de datos de código abierto, el robot había visto código similar antes, por lo que era un poco más independiente.

4. La lucha con la compilación.
Para la compleja y de código cerrado SAP HANA, el robot tuvo dificultades para escribir código que incluso compilara (funcionara como un programa) aproximadamente la mitad de las veces. Es como si el robot intentara escribir instrucciones para un motor de coche que nunca ha visto, usando solo unos pocos diagramas que le diste. Se confundió y cometió errores de sintaxis.

La Conclusión

El artículo concluye que, si bien la IA es excelente escribiendo código que parece natural y humano, tiene un punto ciego: no siempre entiende las reglas ocultas del sistema que está probando.

  • La trampa del "Orden": A menudo olvida que las bases de datos no garantizan el orden de los resultados a menos que se les indique lo contrario.
  • La trampa del "Mal Ejemplo": Si le das a la IA un ejemplo de una prueba inestable, es probable que copie esa inestabilidad, especialmente si no conoce bien el sistema.

El Consejo: Antes de dejar que una IA escriba tus verificaciones de seguridad, necesitas asegurarte de que tus verificaciones existentes sean sumamente sólidas. Si alimentas a la IA con malos ejemplos, aprenderá malos hábitos. Además, necesitas darle instrucciones muy específicas sobre cómo funciona el sistema, porque la IA no puede adivinar las reglas ocultas por sí sola.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →