Impacto de las características personales de los programadores en la efectividad de Test-Driven-Development (TDD)
Authors:   , Raura Ruiz Jorge Geovanny 
Published: February 2023

Contexto: El desarrollo dirigido por pruebas (Test Driven Development - TDD), es una estrategia de programación propuesta por Kent Beck (Beck,2002) como alternativa al desarrollo de software tradicional, ha sido una técnica ampliamente estudiada en la ingeniería de software experimental, especialmente con la realización de estudios que intentan demostrar su efectividad en términos de calidad del código y productividad de los programadores. Objetivos: En este trabajo de tesis doctoral, se propone la realización de una familia de experimentos (Basili,1999), para determinar la influencia de factores personales en la Calidad externa y en la Productividad al aplicar TDD en comparación con el desarrollo iterativo con pruebas al final (ITLD). Metodología: Se realizó una serie de 7 estudios experimentales en el ámbito académico e industrial, partiendo de un experimento tomado como base. Posteriormente los resultados fueron sintetizados mediante un meta- análisis tipo Individual Patient Data (IPD) con descomposición en subgrupos. Resultados: Se obtuvieron diferentes resultados en cuanto a la influencia de los factores humanos sobre la Calidad externa y Productividad, dependiendo del tipo de reclutamiento de los participantes que fueron agrupados como voluntarios (volunteer), no voluntarios (conscripted) y aquellos que participaron de los experimentos como un curso de entrenamiento (Training course), o también agrupados como profesionales y estudiantes. la Calidad externa no produjo diferencias significativas al aplicar TDD, aunque en ciertos casos hubo mejoras al aplicar TDD con estudiantes que participaron como conscripted, pero en otros casos la calidad externa decreció cuando fueron estudiantes que participaron como voluntarios. Por otra parte, los desarrolladores que usaron TDD fueron más productivos que aquellos que usaron ITLD. La experiencia en el uso de herramientas de prueba produjo resultados significativos para la Calidad externa y Productividad, aunque esto depende del tipo de reclutamiento y del carácter profesional o estudiante. Así mismo, la experiencia en Java incidió significativamente en la Calidad externa y el conocimiento del entorno Eclipse en la Productividad. La edad y el grado de completitud o cantidad de código entregado por los participantes al realizar las tareas experimentales fue un factor que influyó significativamente en la Productividad, independientemente de la técnica utilizada. Otro resultado obtenido es que conforme los participantes profesionales tienen mayor edad, su grado de completitud fue disminuyendo, aunque existió cierto interés por realizar un mejor trabajo al aplicar TDD. Conclusiones: Creemos que uno de los principales aportes de nuestro estudio, que lo consideramos de carácter exploratorio, es haber comprobado cómo la motivación, en este caso determinada por el tipo de reclutamiento, incide en el interés de los sujetos sean profesionales o estudiantes al realizar las tareas experimentales y por tanto influye en su productividad. También observamos que la edad es otro factor humano que debe ser objeto de una mayor investigación en trabajos futuros.