Efectividad del Test-Driven Development: Un Experimento Replicado

Los metodos agiles y sus practicas asociadas, e.g.: Test-Driven Developement (TDD), son ampliamente utilizadas en la industria y han sido repetidamente sometidas a estudios empiricos. Antecedentes: Se han realizado diversos experimentos en empresas y academia acerca de TDD. En general, los experimentos no muestran un efecto positivo de TDD en la calidad del codigo o la productividad de los programadores. Objetivo: Replicar el experimento UPM 2014 efectuado por N. Juristo y su equipo, para reproducir sus resultados y secundariamente, estudiar el efecto de la experiencia del desarrollador en la efectividad de TDD. Metodo: Replicacion experimental manteniendo similares el training y los materiales del experimento original. La replicacion fue llevada a cabo en la Universidad de las Fuerzas Armadas ESPE sede Latacunga (ESPEL). Los sujetos experimentales fueron 17 estudiantes del Master en Ingenieria de Software. Resultados: Los resultados de la replicacion confirman los efectos observados en UPM 2014. La efectividad de TDD ha resultado menor que ITL, aunque las diferencias no son significativas. La productividad y calidad del codigo producido por los estudiantes ESPEL cuando utilizan ITL y TDD es comparable a la de los estudiantes UPM, aunque menor en valores absolutos. Conclusiones: TDD no produce beneficios en calidad o productividad, o al menos no de forma inmediata. Parece necesario que los sujetos experimentales reciban training intensivo para que los efectos de TDD sean evidentes.

[1]  Kai Petersen,et al.  Considering rigor and relevance when evaluating test driven development: A systematic review , 2014, Inf. Softw. Technol..

[2]  Jürgen Münch,et al.  Effects of Test-Driven Development: A Comparative Analysis of Empirical Studies , 2014, SWQD.

[3]  Sérgio Soares,et al.  The Impact of Scrum on Customer Satisfaction: An Empirical Study , 2013, 2013 27th Brazilian Symposium on Software Engineering.

[4]  Óscar Dieste Tubío,et al.  Effectiveness for detecting faults within and outside the scope of testing techniques: an independent replication , 2013, Empirical Software Engineering.

[5]  Vojislav B. Misic,et al.  The Effects of Test-Driven Development on External Quality and Productivity: A Meta-Analysis , 2013, IEEE Transactions on Software Engineering.

[6]  O. S. Gómez Tipología de Replicaciones para la Síntesis de Experimentos en Ingeniería del Software , 2012 .

[7]  Daniel Sundmark,et al.  Factors Limiting Industrial Adoption of Test Driven Development: A Systematic Review , 2011, 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation.

[8]  Forrest Shull,et al.  What Do We Know about Test-Driven Development? , 2010, IEEE Software.

[9]  Tore Dybå,et al.  The effectiveness of pair programming: A meta-analysis , 2009, Inf. Softw. Technol..

[10]  David S. Janzen,et al.  On the Influence of Test-Driven Development on Software Design , 2006, 19th Conference on Software Engineering Education & Training (CSEET'06).

[11]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[12]  Boby George,et al.  An initial investigation of test driven development in industry , 2003, SAC '03.

[13]  Beck Test Driven Development: By Example , 2002 .

[14]  Hussan Munir,et al.  Systematic Literature Review and Controlled Pilot Experimental Evaluation of Test Driven Development (TDD) vs. Test-Last Development (TLD) , 2012 .

[15]  Forrest Shull,et al.  How Effective Is Test-Driven Development? , 2011, Making Software.

[16]  Jeffrey C. Carver Towards Reporting Guidelines for Experimental Replications: A Proposal , 2010 .

[17]  L. Madeyski Test-Driven Development - An Empirical Evaluation of Agile Practice , 2010 .

[18]  T. Cook,et al.  Quasi-experimentation: Design & analysis issues for field settings , 1979 .