Comparación entre Desarrolladores de Software y ChatGPT: Una Investigación Empírica
Comparing Software Developers with ChatGPT: An Empirical Investigation
May 19, 2023
Autores: Nathalia Nascimento, Paulo Alencar, Donald Cowan
cs.AI
Resumen
El advenimiento de la automatización en tareas específicas de Ingeniería de Software (IS) ha pasado de la teoría a la realidad. Numerosos artículos académicos han documentado la aplicación exitosa de la Inteligencia Artificial para abordar problemas en áreas como la gestión de proyectos, modelado, pruebas y desarrollo. Una innovación reciente es la introducción de ChatGPT, un chatbot basado en aprendizaje automático, promocionado como un recurso competente para generar códigos de programación y formular estrategias de pruebas de software para desarrolladores y testers, respectivamente. Aunque existe la especulación de que la computación basada en IA puede aumentar la productividad e incluso sustituir a los ingenieros de software en el desarrollo de software, actualmente falta evidencia empírica para verificar esto. Además, a pesar del enfoque principal en mejorar la precisión de los sistemas de IA, los requisitos no funcionales, como la eficiencia energética, la vulnerabilidad, la equidad (es decir, el sesgo humano) y la seguridad, frecuentemente reciben una atención insuficiente. Este artículo postula que una comparación exhaustiva entre ingenieros de software y soluciones basadas en IA, considerando diversos criterios de evaluación, es fundamental para fomentar la colaboración humano-máquina, mejorar la confiabilidad de los métodos basados en IA y comprender la idoneidad de las tareas para humanos o IA. Además, facilita la implementación efectiva de estructuras de trabajo cooperativo y procesos con humanos en el ciclo. Este artículo realiza una investigación empírica, contrastando el desempeño de ingenieros de software y sistemas de IA, como ChatGPT, a través de diferentes métricas de evaluación. El estudio empírico incluye un caso de evaluación de código generado por ChatGPT frente al código producido por desarrolladores y subido en Leetcode.
English
The advent of automation in particular Software Engineering (SE) tasks has
transitioned from theory to reality. Numerous scholarly articles have
documented the successful application of Artificial Intelligence to address
issues in areas such as project management, modeling, testing, and development.
A recent innovation is the introduction of ChatGPT, an ML-infused chatbot,
touted as a resource proficient in generating programming codes and formulating
software testing strategies for developers and testers respectively. Although
there is speculation that AI-based computation can increase productivity and
even substitute software engineers in software development, there is currently
a lack of empirical evidence to verify this. Moreover, despite the primary
focus on enhancing the accuracy of AI systems, non-functional requirements
including energy efficiency, vulnerability, fairness (i.e., human bias), and
safety frequently receive insufficient attention. This paper posits that a
comprehensive comparison of software engineers and AI-based solutions,
considering various evaluation criteria, is pivotal in fostering human-machine
collaboration, enhancing the reliability of AI-based methods, and understanding
task suitability for humans or AI. Furthermore, it facilitates the effective
implementation of cooperative work structures and human-in-the-loop processes.
This paper conducts an empirical investigation, contrasting the performance of
software engineers and AI systems, like ChatGPT, across different evaluation
metrics. The empirical study includes a case of assessing ChatGPT-generated
code versus code produced by developers and uploaded in Leetcode.