Skip to main content
Erschienen in: Empirical Software Engineering 4/2018

25.11.2017 | Original Article

Analyzing the effects of test driven development in GitHub

verfasst von: Neil C. Borle, Meysam Feghhi, Eleni Stroulia, Russell Greiner, Abram Hindle

Erschienen in: Empirical Software Engineering | Ausgabe 4/2018

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Testing is an integral part of the software development lifecycle, approached with varying degrees of rigor by different process models. Agile process models recommend Test Driven Development (TDD) as a key practice for reducing costs and improving code quality. The objective of this work is to perform a cost-benefit analysis of this practice. To that end, we have conducted a comparative analysis of GitHub repositories that adopts TDD to a lesser or greater extent, in order to determine how TDD affects software development productivity and software quality. We classified GitHub repositories archived in 2015 in terms of how rigorously they practiced TDD, thus creating a TDD spectrum. We then matched and compared various subsets of these repositories on this TDD spectrum with control sets of equal size. The control sets were samples from all GitHub repositories that matched certain characteristics, and that contained at least one test file. We compared how the TDD sets differed from the control sets on the following characteristics: number of test files, average commit velocity, number of bug-referencing commits, number of issues recorded, usage of continuous integration, number of pull requests, and distribution of commits per author. We found that Java TDD projects were relatively rare. In addition, there were very few significant differences in any of the metrics we used to compare TDD-like and non-TDD projects; therefore, our results do not reveal any observable benefits from using TDD.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Fußnoten
2
Here, we consider four time Δ categories (0 minutes, 1 hour, 1 day, 1 week). Repositories are assigned to the category with the shortest time Δ that is greater than all the time Δs found in that repository – hence if the largest Δ for any code in a repository is 5 minute, this entire repository would be in the “1 hour” category, and if the longest was 3 days, it would be in “1 week”.
 
4
Modified from Boa examples found at http://​boa.​cs.​iastate.​edu/​.
 
Literatur
Zurück zum Zitat Aickin M, Gensler H (1996) Adjusting for multiple testing when reporting research results: the bonferroni vs holm methods. Amer J Public Health 86(5):726–728CrossRef Aickin M, Gensler H (1996) Adjusting for multiple testing when reporting research results: the bonferroni vs holm methods. Amer J Public Health 86(5):726–728CrossRef
Zurück zum Zitat Athanasiou D, Nugroho A, Visser J, Zaidman A (2014) Test code quality and its relation to issue handling performance. IEEE Trans Softw Eng 40(11):1100–1125CrossRef Athanasiou D, Nugroho A, Visser J, Zaidman A (2014) Test code quality and its relation to issue handling performance. IEEE Trans Softw Eng 40(11):1100–1125CrossRef
Zurück zum Zitat Beck K (2003) Test-driven development: by example. Addison-Wesley Professional Beck K (2003) Test-driven development: by example. Addison-Wesley Professional
Zurück zum Zitat Beck K, Andres C (2004) Extreme programming explained: embrace change, 2nd edn. Addison-Wesley Professional Beck K, Andres C (2004) Extreme programming explained: embrace change, 2nd edn. Addison-Wesley Professional
Zurück zum Zitat Beller M, Gousios G, Panichella A, Zaidman A (2015a) When, how, and why developers (do not) test in their ides. In: Proceedings of the 2015 10th joint meeting on foundations of software engineering. ACM, pp 179–190 Beller M, Gousios G, Panichella A, Zaidman A (2015a) When, how, and why developers (do not) test in their ides. In: Proceedings of the 2015 10th joint meeting on foundations of software engineering. ACM, pp 179–190
Zurück zum Zitat Beller M, Gousios G, Zaidman A (2015b) How (much) do developers test? In: 2015 IEEE/ACM 37th IEEE International conference on software engineering (ICSE), vol 2. IEEE, pp 559-562 Beller M, Gousios G, Zaidman A (2015b) How (much) do developers test? In: 2015 IEEE/ACM 37th IEEE International conference on software engineering (ICSE), vol 2. IEEE, pp 559-562
Zurück zum Zitat Bird C, Rigby PC, Barr ET, Hamilton DJ, German DM, Devanbu P (2009) The promises and perils of mining git. In: 6th IEEE International working conference on mining software repositories, 2009. MSR’09. IEEE, pp 1–10 Bird C, Rigby PC, Barr ET, Hamilton DJ, German DM, Devanbu P (2009) The promises and perils of mining git. In: 6th IEEE International working conference on mining software repositories, 2009. MSR’09. IEEE, pp 1–10
Zurück zum Zitat Dyer R (2013) Bringing ultra-large-scale software repository mining to the masses with boa. Iowa State University, PhD thesis Dyer R (2013) Bringing ultra-large-scale software repository mining to the masses with boa. Iowa State University, PhD thesis
Zurück zum Zitat Dyer R, Nguyen HA, Rajan H, Nguyen TN (2013) Boa: a language and infrastructure for analyzing ultra-large-scale software repositories. In: 35th International conference on software engineering, ICSE, 2013, pp 422-431 Dyer R, Nguyen HA, Rajan H, Nguyen TN (2013) Boa: a language and infrastructure for analyzing ultra-large-scale software repositories. In: 35th International conference on software engineering, ICSE, 2013, pp 422-431
Zurück zum Zitat Fucci D, Erdogmus H, Turhan B, Oivo M, Juristo N (2016a) A dissection of test-driven development: does it really matter to test-first or to test-last? IEEE Trans Softw Eng Fucci D, Erdogmus H, Turhan B, Oivo M, Juristo N (2016a) A dissection of test-driven development: does it really matter to test-first or to test-last? IEEE Trans Softw Eng
Zurück zum Zitat Fucci D, Scanniello G, Romano S, Shepperd M, Sigweni B, Uyaguari F, Turhan B, Juristo N, Oivo M (2016b) An external replication on the effects of test-driven development using a multi-site blind analysis approach. In: Proceedings of the 10th ACM/IEEE international symposium on empirical software engineering and measurement. ACM, p 3 Fucci D, Scanniello G, Romano S, Shepperd M, Sigweni B, Uyaguari F, Turhan B, Juristo N, Oivo M (2016b) An external replication on the effects of test-driven development using a multi-site blind analysis approach. In: Proceedings of the 10th ACM/IEEE international symposium on empirical software engineering and measurement. ACM, p 3
Zurück zum Zitat Hindle A, Godfrey MW, Holt RC (2007) Release pattern discovery via partitioning: Methodology and case study. In: Fourth international workshop on mining software repositories, 2007. ICSE Workshops MSR’07. IEEE, pp 19-19 Hindle A, Godfrey MW, Holt RC (2007) Release pattern discovery via partitioning: Methodology and case study. In: Fourth international workshop on mining software repositories, 2007. ICSE Workshops MSR’07. IEEE, pp 19-19
Zurück zum Zitat Holm S (1979) A simple sequentially rejective multiple test procedure. Scand J Stat 65–70 Holm S (1979) A simple sequentially rejective multiple test procedure. Scand J Stat 65–70
Zurück zum Zitat Jeffries R, Melnik G (2007) Guest editors’ introduction: Tdd–the art of fearless programming. IEEE Softw 24(3):24–30CrossRef Jeffries R, Melnik G (2007) Guest editors’ introduction: Tdd–the art of fearless programming. IEEE Softw 24(3):24–30CrossRef
Zurück zum Zitat Kalliamvakou E, Gousios G, Blincoe K, Singer L, German DM, Damian D (2014) The promises and perils of mining GitHub. In: Proceedings of the 11th working conference on mining software repositories. ACM, pp 92–101 Kalliamvakou E, Gousios G, Blincoe K, Singer L, German DM, Damian D (2014) The promises and perils of mining GitHub. In: Proceedings of the 11th working conference on mining software repositories. ACM, pp 92–101
Zurück zum Zitat Pugh K (2010) Lean-Agile acceptance test-driven-development. Pearson Education Pugh K (2010) Lean-Agile acceptance test-driven-development. Pearson Education
Zurück zum Zitat Rousseeuw PJ (1987) Silhouettes: a graphical aid to the interpretation and validation of cluster analysis. J Comput Appl Math 20:53–65CrossRefMATH Rousseeuw PJ (1987) Silhouettes: a graphical aid to the interpretation and validation of cluster analysis. J Comput Appl Math 20:53–65CrossRefMATH
Zurück zum Zitat Santos EA, Hindle A (2016) Judging a commit by its cover: Correlating commit message entropy with build status on travis-ci. In: Proceedings of the 13th international conference on mining software repositories. ACM, pp 504–507 Santos EA, Hindle A (2016) Judging a commit by its cover: Correlating commit message entropy with build status on travis-ci. In: Proceedings of the 13th international conference on mining software repositories. ACM, pp 504–507
Zurück zum Zitat Vasa R, Lumpe M, Branch P, Nierstrasz O (2009) Comparative analysis of evolving software systems using the gini coefficient. In: IEEE International conference on software maintenance, 2009. ICSM 2009. IEEE, pp 179–188 Vasa R, Lumpe M, Branch P, Nierstrasz O (2009) Comparative analysis of evolving software systems using the gini coefficient. In: IEEE International conference on software maintenance, 2009. ICSM 2009. IEEE, pp 179–188
Zurück zum Zitat Vasilescu B, Van Schuylenburg S, Wulms J, Serebrenik A, van den Brand MG (2015) Continuous integration in a social-coding world: empirical evidence from GitHub.** updated version with corrections**. arXiv preprint arXiv:151201862 Vasilescu B, Van Schuylenburg S, Wulms J, Serebrenik A, van den Brand MG (2015) Continuous integration in a social-coding world: empirical evidence from GitHub.** updated version with corrections**. arXiv preprint arXiv:151201862
Zurück zum Zitat Zaidman A, Van Rompaey B, Demeyer S, Van Deursen A (2008) Mining software repositories to study co-evolution of production & test code. In: 2008 1st International conference on software testing, verification, and validation. IEEE, pp 220–229 Zaidman A, Van Rompaey B, Demeyer S, Van Deursen A (2008) Mining software repositories to study co-evolution of production & test code. In: 2008 1st International conference on software testing, verification, and validation. IEEE, pp 220–229
Metadaten
Titel
Analyzing the effects of test driven development in GitHub
verfasst von
Neil C. Borle
Meysam Feghhi
Eleni Stroulia
Russell Greiner
Abram Hindle
Publikationsdatum
25.11.2017
Verlag
Springer US
Erschienen in
Empirical Software Engineering / Ausgabe 4/2018
Print ISSN: 1382-3256
Elektronische ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-017-9576-3

Weitere Artikel der Ausgabe 4/2018

Empirical Software Engineering 4/2018 Zur Ausgabe

Premium Partner