Resumen:
El Origen de los Errores en el Software: Un modelo para Identificar Cómo se Introducen Errores en el Software

Fecha

2021-09-22

Editor

Sistedes

Publicado en

Actas de las XXV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2021)

Licencia

CC BY-NC-ND 4.0

Resumen

A la hora de identificar el origen de los errores en el software, muchos estudios asumen que +ACI-el error fue introducido en las líneas de código que se modificaron para solucionarlo+ACI. Sin embargo, esta suposición no siempre se cumple, ya que al menos en algunos casos esas líneas que se modificaron no fueron las causantes. As+AO0 pasa, por ejemplo, cuando el error es debido a un cambio en una API externa. La falta de evidencia empírica hace imposible evaluar la importancia de estos casos y, por lo tanto, en qu+AOk medida la suposición que comentábamos anteriormente es válida. Para avanzar en esta dirección y comprender mejor cómo nacen los errores, proponemos un modelo de definición de criterios para identificar cuándo un sistema de software en evolución presenta un error. Este modelo, basado en la idea de prueba perfecta, permite reconocer si se ha introducido un error al cambiar el software. Además, estudiamos los criterios del modelo analizando cuidadosamente cómo se introdujeron 116 errores en dos proyectos de software libre. El análisis manual ha ayudado a clasificar la causa de los errores y ha permitido crear manualmente dos conjuntos de datos con cambios que introducen errores y con errores que no fueron introducidos por ningún cambio en el código fuente. Finalmente, usamos estos conjuntos de datos para evaluar el rendimiento de cuatro algoritmos existentes basados en SZZ para detectar los cambios que introducen errores. Hemos descubierto que los algoritmos basados en SZZ no son muy precisos, especialmente cuando se encuentran múltiples confirmaciones+ADs el F-Score varía de 0,44 a 0,77, mientras que el porcentaje de verdaderos positivos no supera el 63+ACU. Nuestros resultados muestran evidencia empírica de que la suposición predominante, +AGAAYA-un error fue introducido por las líneas de código que se modificaron para solucionarlo'', es solo un caso de cómo se introducen errores en un sistema de software. Hemos podido comprobar que encontrar qu+AOk introdujo un error no es trivial: los desarrolladores pueden introducir errores en el código, pero también pueden aparecer errores independientemente del código. Por lo tanto, necesitamos seguir investigando para una mejor comprensión del origen de los errores en los proyectos de software que pueda ayudar a mejorar las pruebas de integración del diseño y a diseñar otros procedimientos que hagan que el desarrollo de software sea más robusto.

Descripción

Acerca de Rodríguez-Pérez, Gema

Palabras clave

Bugs, Errores, Modelo, SZZ, Test Perfecto
Página completa del ítem
Notificar un error en este resumen
Mostrar cita
Mostrar cita en BibTeX
Descargar cita en BibTeX