El Ecosistema Startup > Blog > Actualidad Startup > IA aprobó todos los tests pero el código estaba mal

IA aprobó todos los tests pero el código estaba mal

El espejismo de los tests perfectos generados por IA

Un equipo de desarrollo enfrentó un problema que está volviéndose cada vez más común en la era de la programación asistida por IA: todos sus tests pasaban con éxito, pero el código seguía siendo incorrecto. Esta experiencia, documentada por Doodled, ilustra uno de los riesgos más sutiles y peligrosos de delegar completamente la validación de software a sistemas de inteligencia artificial.

El proyecto consistía en desarrollar un sistema capaz de convertir flujos visuales en código Solidity (el lenguaje de programación de smart contracts en Ethereum). Para validar que la conversión funcionara correctamente, el equipo implementó IA no solo para generar el código, sino también para crear los tests que verificarían su correcto funcionamiento.

El resultado fue desconcertante: todos los tests daban luz verde, pero cuando revisaban manualmente el código generado, encontraban errores evidentes que deberían haber sido detectados.

Por qué la IA validaba código incorrecto

El problema radicaba en un error conceptual fundamental: los tests generados por IA solo verificaban la implementación del código, no el comportamiento deseado. En otras palabras, la IA escribía tests que confirmaban que el código hacía lo que el código decía que hacía, pero no validaban si eso era realmente lo que se necesitaba.

Este fenómeno ocurre porque cuando la IA genera tanto el código como los tests a partir de la misma fuente (el código mismo), crea un circuito cerrado de validación. Es como pedirle a alguien que corrija su propia tarea usando únicamente lo que escribió, sin consultar las instrucciones originales del profesor.

La ausencia de ground truth

El equipo identificó que el elemento crítico faltante era un ground truth o punto de referencia de intención. En testing de software, el ground truth representa la especificación externa e independiente de lo que el sistema debe hacer, separada de la implementación concreta.

Sin este punto de referencia independiente, la IA no tiene forma de detectar si el código cumple con los requisitos reales del sistema. Los tests simplemente verificaban consistencia interna, no corrección funcional.

La solución: validación mediante estructuras abstractas

La recomendación clave del equipo fue implementar validación basada en AST (Abstract Syntax Trees) en lugar de simples comparaciones de código fuente como texto. Un AST es una representación estructural del código que captura su lógica y relaciones sin depender de la sintaxis superficial.

Ventajas de usar AST para validación

Al comparar la lógica del código mediante AST en lugar de texto plano, el sistema puede:

  • Detectar equivalencias lógicas aunque el código esté escrito de forma diferente
  • Identificar desviaciones estructurales que indican errores de implementación
  • Validar contra especificaciones formales representadas también como estructuras abstractas
  • Reducir falsos positivos causados por diferencias cosméticas de formato

Esta aproximación requiere definir previamente una representación formal del comportamiento esperado, independiente del código generado, que sirva como ese ground truth necesario.

Lecciones para founders que implementan IA en desarrollo

Esta experiencia contiene aprendizajes críticos para cualquier startup que esté automatizando procesos de desarrollo con inteligencia artificial:

1. Los tests generados por IA necesitan validación externa

Si la IA genera tanto el código como los tests, siempre debes tener una tercera fuente de verdad. Esto puede ser especificaciones formales, tests de integración escritos manualmente, o validaciones basadas en comportamiento observable del usuario.

2. El testing automatizado no reemplaza la verificación de requisitos

Tener el 100% de tests pasando no garantiza que el software haga lo correcto. Es fundamental mantener una conexión clara entre los requisitos de negocio y la validación técnica.

3. La IA es excelente para consistencia, no para corrección

Los modelos de lenguaje grandes son muy buenos encontrando y manteniendo patrones consistentes, pero no pueden saber si esos patrones son los correctos sin un marco de referencia externo.

4. Invierte en infraestructura de validación robusta

Para proyectos críticos (como smart contracts en Solidity, donde los errores pueden costar millones), necesitas múltiples capas de validación: unit tests, integration tests, property-based testing, auditorías de seguridad y pruebas formales.

El caso especial de Solidity y blockchain

El contexto de este proyecto (generación de código Solidity) hace el problema aún más crítico. Los smart contracts desplegados en blockchain son inmutables y manejan frecuentemente activos financieros reales. Un error no detectado puede resultar en:

  • Pérdida permanente de fondos
  • Vulnerabilidades de seguridad explotables
  • Daño reputacional irreparable para el proyecto
  • Imposibilidad de corregir el error sin procesos complejos de migración

Por esto, la comunidad de desarrollo blockchain ha desarrollado prácticas rigurosas que incluyen auditorías múltiples, pruebas formales matemáticas, y revisiones manuales exhaustivas antes de cualquier despliegue.

Implementando validación efectiva con IA

Para founders que quieren aprovechar IA en automatización de código sin caer en estos problemas, aquí hay un framework práctico:

Paso 1: Define especificaciones independientes

Antes de generar código o tests, documenta claramente qué debe hacer el sistema en términos de comportamiento observable, casos de uso y reglas de negocio.

Paso 2: Genera código con IA

Usa herramientas como GitHub Copilot, Cursor o Claude para acelerar la implementación, pero siempre partiendo de esas especificaciones.

Paso 3: Genera tests también con IA, pero desde las especificaciones

Pide a la IA que genere tests basándose en las especificaciones originales, no en el código generado. Esto crea una validación cruzada.

Paso 4: Implementa validación estructural

Para lógica crítica, usa herramientas que comparen AST o implementa property-based testing que verifique propiedades invariantes del sistema.

Paso 5: Mantén revisión humana en puntos críticos

La IA puede hacer el trabajo pesado, pero decisiones arquitectónicas, lógica de negocio compleja y código de seguridad crítico deben tener revisión manual por desarrolladores experimentados.

Herramientas útiles para validación de código generado por IA

Algunas herramientas que pueden ayudar a implementar este enfoque:

  • Property-based testing: Hypothesis (Python), fast-check (JavaScript), PropEr (Erlang)
  • Análisis de AST: Tree-sitter, Roslyn (C#), libclang (C/C++)
  • Verificación formal: Coq, Isabelle, TLA+
  • Para Solidity específicamente: Slither, Mythril, Certora Prover
  • Testing de contratos: Hardhat, Foundry, Brownie

Conclusión

La experiencia de este equipo nos recuerda que la automatización con IA debe ser inteligente, no ciega. Cuando implementamos sistemas de IA para generar código o tests, no estamos eliminando la necesidad de validación rigurosa, sino transformando dónde y cómo debemos aplicarla.

El verdadero valor de la IA en desarrollo no está en reemplazar completamente el juicio humano, sino en amplificar la capacidad de los desarrolladores para implementar más rápido manteniendo (o incluso elevando) los estándares de calidad. Pero esto solo funciona cuando diseñamos sistemas de validación que incluyan puntos de referencia independientes y múltiples capas de verificación.

Para startups tecnológicas, especialmente las que trabajan en sectores críticos como blockchain, fintech o salud, esto significa invertir no solo en herramientas de generación de código con IA, sino también en infraestructura robusta de testing, especificaciones claras y procesos de validación que no dependan de un único sistema automatizado.

La pregunta no es si usar IA para automatizar desarrollo, sino cómo estructurar esa automatización para que sea verificable, confiable y genuinamente útil.

¿Implementando IA en tu stack de desarrollo? Conecta con founders que están navegando estos mismos desafíos técnicos y descubre cómo están validando código generado por IA en producción.

Únete gratis ahora

Fuentes

  1. https://doodledapp.com/feed/ai-made-every-test-pass-the-code-was-still-wrong (fuente original)
¿te gustó o sirvió lo que leíste?, Por favor, comparte.

Daily Shot: Tu ventaja táctica

Lo que pasó en las últimas 24 horas, resumido para que tú no tengas que filtrarlo.

Suscríbete para recibir cada mañana la curaduría definitiva del ecosistema startup e inversionista. Sin ruido ni rodeos, solo la información estratégica que necesitas para avanzar:

  • Venture Capital & Inversiones: Rondas, fondos y movimientos de capital.
  • IA & Tecnología: Tendencias, Web3 y herramientas de automatización.
  • Modelos de Negocio: Actualidad en SaaS, Fintech y Cripto.
  • Propósito: Erradicar el estancamiento informativo dándote claridad desde tu primer café.

Share to...