ÚLTIMAS NOTICIAS
SELECCIONADO PARA TI
SEMANALMENTE
MANTÉNGASE EN LA CIMA

Los mejores análisis sobre criptomonedas directamente en tu bandeja de entrada.

El aprendizaje por refuerzo surge como un elemento innovador para las pruebas unitarias en el desarrollo de software

PorBrian KoomeBrian Koome
3 minutos de lectura
AI
  • Los modelos de lenguaje grandes (LLM) tienen problemas para generar pruebas unitarias precisas debido a las “alucinaciones”
  • El aprendizaje de refuerzo, un enfoque de prueba y error, está surgiendo como una mejor solución para automatizar la escritura de pruebas unitarias.
  • Diffblue Cover, mediante el aprendizaje de refuerzo, puede crear de forma autónoma pruebas unitarias, superando a los LLM para tareas de pruebas complejas.

En el mundo del desarrollo de software, la precisión y la exactitud son fundamentales. Escribir pruebas unitarias robustas es crucial para garantizar la fiabilidad y la funcionalidad de las aplicaciones de software. Si bien los grandes modelos de lenguaje (LLM) como ChatGPT han deslumbrado a la comunidad de IA con su destreza lingüística, en la compleja tarea de las pruebas unitarias, ha surgido una nueva solución más precisa y rentable: el aprendizaje por refuerzo.

El desafío de las alucinaciones LLM

Los modelos lingüísticos grandes han revolucionado sin duda el procesamiento del lenguaje natural, ofreciendo respuestas muy fluidas y contextualmente relevantes. Sin embargo, no están exentos de limitaciones. Uno de los problemas clave que afectan a los LLM es el fenómeno de la alucinación, donde generan texto que, si bien esmaticcorrecto y semánticamente plausible, en última instancia es incorrecto o sin sentido. Esta limitación ha suscitado preocupación entre los expertos.

Aprendizaje por refuerzo vs. LLM

El debate sobre la eficacia del aprendizaje por refuerzo frente a los grandes modelos lingüísticos para abordar los retos de las pruebas unitarias ha sido continuo. Algunos expertos, como Ilya Sutskever de OpenAI, creen que el aprendizaje por refuerzo, combinado con la retroalimentación humana, tiene el potencial de eliminar las alucinaciones LLM. Sin embargo, otros, como Yann LeCun de Meta y Geoff Hinton, ex Google, argumentan que las deficiencias fundamentales de los LLM los hacen menos adecuados para esta tarea.

Las pruebas unitarias son un aspecto crucial del desarrollo de software, ya que garantizan que los componentes individuales de una aplicación funcionen según lo previsto. No solo garantizan la precisión del código, sino que también ahorran tiempo y aumentan la productividad. Si bien los LLM pueden sugerir fragmentos de código para las pruebas, a menudo priorizan la generalización sobre la precisión, dejando a los desarrolladores la tarea de verificar la eficacia del código generado.

Copilot de GitHub, basado en el derivado GPT-3 de OpenAI, ofrece sugerencias de código para pruebas unitarias, pero no las genera explícitamente. Proporciona a los desarrolladores fragmentos para probar diversos escenarios, lo que sirve como un valioso punto de partida para escribir pruebas unitarias completas. Sin embargo, Copilot no sustituye una estrategia de pruebas integral, ya que la supervisión humana sigue siendo esencial.

Presentamos TiCoder

Para abordar los desafíos de las pruebas unitarias, investigadores de Microsoft Research, la Universidad de Pensilvania y la Universidad de California en San Diego desarrollaron TiCoder (Test-driven Interactive Coder). Esta innovadora herramienta aprovecha el procesamiento del lenguaje natural y los algoritmos de aprendizaje automático para ayudar a los desarrolladores a generar pruebas unitarias.

TiCoder interactúa con los desarrolladores mediante preguntas para comprender mejor sus intenciones. Posteriormente, ofrece sugerencias y opciones de autocompletado según el contexto, la sintaxis y el lenguaje del código. Además, TiCoder genera casos de prueba y sugiere aserciones, lo que facilita el proceso de pruebas unitarias.

Tanto Copilot como TiCoder, junto con otras herramientas basadas en LLM, agilizan la creación de pruebas unitarias. Sin embargo, sirven como asistentes de IA para los programadores humanos que deben validar y refinar su trabajo. Estas herramientas mejoran la productividad, pero no reemplazan la experiencia humana en el proceso de desarrollo de software.

Geoff Hinton, figura destacada en IA que dejó Google recientemente, enfatiza la importancia del aprendizaje mediante ensayo y error. Establece un paralelismo con cómo las personas aprenden a practicar deportes como el baloncesto: mediante la práctica y la experimentación. El aprendizaje por refuerzo, una potente técnica de IA, se alinea con este concepto y ha demostrado un rendimiento excepcional en tareas como los videojuegos.

Portada de Diffblue: El pionero del aprendizaje por refuerzo

Un ejemplo notable de aprendizaje por refuerzo en acción es Diffblue Cover. Este innovador producto emplea el aprendizaje por refuerzo para generar pruebas unitarias ejecutables de forma autónoma sin intervención humana. Tiene el potencial de automatizar tareas de prueba complejas y propensas a errores a gran escala.

El enfoque de Diffblue Cover consiste en explorar la amplia gama de métodos de prueba posibles, escribirmaticcódigo de prueba para cada método y seleccionar la prueba más adecuada según diversos criterios, como la cobertura de la prueba y el estilo de codificación. Esta herramienta basada en IA puede crear pruebas para cada método en segundos y entregar la mejor prueba para una unidad de código en tan solo uno o dos minutos.

La metodología de Diffblue Cover es similar a AlphaGo, el sistema de DeepMind para jugar al Go. Ambos sistemasdentáreas críticas dentro de un amplio espacio de búsqueda y emplean aprendizaje por refuerzo para tomar decisiones informadas. En el caso de Diffblue Cover, esto implica generar métodos de pruebas unitarias y seleccionar las más efectivas mediante un procesomatic .

Las limitaciones de los LLM

Cuando se trata de tareas como la automatización de la escritura de miles de pruebas unitarias para un programa complejo, el aprendizaje por refuerzo supera a los grandes modelos lingüísticos. Los modelos de aprendizaje por refuerzo (LLM), a pesar de su destreza lingüística, carecen de la capacidad para una supervisión y corrección humanas efectivas a tal escala. Aumentar la complejidad de los LLM no resuelve este problema fundamental.

Si bien los modelos de lenguaje extensos como ChatGPT han captado la atención por su fluidez y conocimiento, podrían no ser la opción ideal para tareas precisas como las pruebas unitarias en el desarrollo de software. El aprendizaje por refuerzo se ha convertido en una solución más precisa y rentable, demostrando su potencial para revolucionar el campo. 

A medida que la demanda de confiabilidad del software continúa creciendo, la integración del aprendizaje de refuerzo en los procesos de prueba podría marcar un avance significativo en el panorama del desarrollo de software.

Si estás leyendo esto, ya llevas ventaja. Mantente al día con nuestro boletín informativo.

Comparte este artículo

Aviso legal. La información proporcionada no constituye asesoramiento comercial. Cryptopolitanconsultar no se responsabiliza de las inversiones realizadas con base en la información proporcionada en esta página. Recomendamostronencarecidamente realizar una investigación independientedent un profesional cualificado antes de tomar cualquier decisión de inversión.

Brian Koome

Brian Koome

Brian Koome cuenta con más de siete años de experiencia en periodismo sobre blockchain y criptomonedas, y ha estado activo en el sector desde 2017. Ha colaborado con publicaciones destacadas, como BlockToday.com. Además, desarrolló el curso Ethereum 101 para BitDegree.org antes de unirse Cryptopolitan como redactor a tiempo completo. Brian se especializa en guías permanentes, análisis en profundidad, entrevistas y análisis de precios. Su enfoque en DeFi, la innovación blockchain y los proyectos emergentes de criptomonedas resulta muy atractivo para los lectores.

MÁS… NOTICIAS
CURSO INTENSIVO DE CRIPTOMONEDAS PROFUNDAS