Skip to main content
Erschienen in: Empirical Software Engineering 3/2008

01.06.2008

Realizing quality improvement through test driven development: results and experiences of four industrial teams

verfasst von: Nachiappan Nagappan, E. Michael Maximilien, Thirumalesh Bhat, Laurie Williams

Erschienen in: Empirical Software Engineering | Ausgabe 3/2008

Einloggen

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

search-config
loading …

Abstract

Test-driven development (TDD) is a software development practice that has been used sporadically for decades. With this practice, a software engineer cycles minute-by-minute between writing failing unit tests and writing implementation code to pass those tests. Test-driven development has recently re-emerged as a critical enabling practice of agile software development methodologies. However, little empirical evidence supports or refutes the utility of this practice in an industrial context. Case studies were conducted with three development teams at Microsoft and one at IBM that have adopted TDD. The results of the case studies indicate that the pre-release defect density of the four products decreased between 40% and 90% relative to similar projects that did not use the TDD practice. Subjectively, the teams experienced a 15–35% increase in initial development time after adopting 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!

Literatur
Zurück zum Zitat IEEE (1988) IEEE Std 982.2-1988 IEEE guide for the use of IEEE standard dictionary of measures to produce reliable software. IEEE Computer Society, Washington, DC IEEE (1988) IEEE Std 982.2-1988 IEEE guide for the use of IEEE standard dictionary of measures to produce reliable software. IEEE Computer Society, Washington, DC
Zurück zum Zitat Basili VR, Shull F et al (1999) Building knowledge through families of experiments. IEEE Trans Softw Eng 25(4):456–473CrossRef Basili VR, Shull F et al (1999) Building knowledge through families of experiments. IEEE Trans Softw Eng 25(4):456–473CrossRef
Zurück zum Zitat Beck K (2003) Test driven development—by example. Addison-Wesley, Boston Beck K (2003) Test driven development—by example. Addison-Wesley, Boston
Zurück zum Zitat Beck K (2005) Extreme programming explained: embrace change. Addison-Wesley, Reading, MA Beck K (2005) Extreme programming explained: embrace change. Addison-Wesley, Reading, MA
Zurück zum Zitat Beck K, Fowler M (2001) Planning extreme programming. Addison-Wesley, Reading, MA Beck K, Fowler M (2001) Planning extreme programming. Addison-Wesley, Reading, MA
Zurück zum Zitat Bhat T, Nagappan N (2006) Evaluating the efficacy of test-driven development: industrial case studies. International Symposium on Empirical Software Engineering, Rio de Janeiro Bhat T, Nagappan N (2006) Evaluating the efficacy of test-driven development: industrial case studies. International Symposium on Empirical Software Engineering, Rio de Janeiro
Zurück zum Zitat Cockburn A (2001) Agile software development. Addison-Wesley Longman, Reading, MA Cockburn A (2001) Agile software development. Addison-Wesley Longman, Reading, MA
Zurück zum Zitat Curtis B (1989) Three problems overcome with behavioral models of the software development process (panel). In: Proceedings of the International Conference on Software Engineering, Pittsburgh, PA. ACM, Pittsburgh, PA Curtis B (1989) Three problems overcome with behavioral models of the software development process (panel). In: Proceedings of the International Conference on Software Engineering, Pittsburgh, PA. ACM, Pittsburgh, PA
Zurück zum Zitat Erdogmus H, Williams L (2003) The economics of software development by pair programmers. Eng Econ 48(4):283–319CrossRef Erdogmus H, Williams L (2003) The economics of software development by pair programmers. Eng Econ 48(4):283–319CrossRef
Zurück zum Zitat Erdogmus H, Morisio M, Torchiano M (2005) On the effectiveness of the test-first approach to programming. IEEE Trans Softw Eng 31(3):226–237CrossRef Erdogmus H, Morisio M, Torchiano M (2005) On the effectiveness of the test-first approach to programming. IEEE Trans Softw Eng 31(3):226–237CrossRef
Zurück zum Zitat Fenton NE, Pfleeger SL (1998) Software metrics: a rigorous and practical approach. Cole Brooks, Pacific Grove, CA Fenton NE, Pfleeger SL (1998) Software metrics: a rigorous and practical approach. Cole Brooks, Pacific Grove, CA
Zurück zum Zitat Fenton N, Pfleeger SL et al (1994) Science and substance: a challenge to software engineers. IEEE Softw 11(4):86–95CrossRef Fenton N, Pfleeger SL et al (1994) Science and substance: a challenge to software engineers. IEEE Softw 11(4):86–95CrossRef
Zurück zum Zitat Fowler M (2000) UML Distilled. Addison Wesley, Reading, MA Fowler M (2000) UML Distilled. Addison Wesley, Reading, MA
Zurück zum Zitat Gelperin D, Hetzel W (1987) Software quality engineering. In: Proceedings of the Fourth International Conference on Software Testing, Washington, DC, June Gelperin D, Hetzel W (1987) Software quality engineering. In: Proceedings of the Fourth International Conference on Software Testing, Washington, DC, June
Zurück zum Zitat George B, Williams L (2003a) An initial investigation of test-driven development in industry. In: Proceedings of the ACM Symposium on Applied Computing, Melbourne, FL George B, Williams L (2003a) An initial investigation of test-driven development in industry. In: Proceedings of the ACM Symposium on Applied Computing, Melbourne, FL
Zurück zum Zitat George B, Williams L (2003b) A structured experiment of test-driven development. Inf Softw Technol (IST) 46(5):337–342CrossRef George B, Williams L (2003b) A structured experiment of test-driven development. Inf Softw Technol (IST) 46(5):337–342CrossRef
Zurück zum Zitat Harrison W (1997) N = 1: an alternative for empirical software engineering research? Empir Software Eng 2(1):7–10CrossRef Harrison W (1997) N = 1: an alternative for empirical software engineering research? Empir Software Eng 2(1):7–10CrossRef
Zurück zum Zitat Harrison W (2004) Propaganda and software development. IEEE Softw 21(5):5–7CrossRef Harrison W (2004) Propaganda and software development. IEEE Softw 21(5):5–7CrossRef
Zurück zum Zitat Humphrey WS (1989) Managing the software process. Addison-Wesley, Reading, MA Humphrey WS (1989) Managing the software process. Addison-Wesley, Reading, MA
Zurück zum Zitat Janzen D, Saiedian H (2006) On the influence of test-driven development on software design. In: Proceedings of the Conference on Software Engineering Education and Training, Turtle Bay, HI Janzen D, Saiedian H (2006) On the influence of test-driven development on software design. In: Proceedings of the Conference on Software Engineering Education and Training, Turtle Bay, HI
Zurück zum Zitat Kitchenham B, Pickard L et al (1995) Case studies for method and tool evaluation. IEEE Softw 12(4):52–62CrossRef Kitchenham B, Pickard L et al (1995) Case studies for method and tool evaluation. IEEE Softw 12(4):52–62CrossRef
Zurück zum Zitat Larman C, Basili V (2003) A history of iterative and incremental development. IEEE Comput 36(6):47–56 Larman C, Basili V (2003) A history of iterative and incremental development. IEEE Comput 36(6):47–56
Zurück zum Zitat Larus J, Ball T, Das M, Deline R, Fahndrich M, Pincus J, Rajamani S, Venkatapathy T (2004) Righting software. IEEE Softw 21(3):92–100CrossRef Larus J, Ball T, Das M, Deline R, Fahndrich M, Pincus J, Rajamani S, Venkatapathy T (2004) Righting software. IEEE Softw 21(3):92–100CrossRef
Zurück zum Zitat Müller MM, Hagner O (2002) Experiment about test-first programming. IEEE Proc Softw 149(5):131–136CrossRef Müller MM, Hagner O (2002) Experiment about test-first programming. IEEE Proc Softw 149(5):131–136CrossRef
Zurück zum Zitat Müller MM, Tichy WF (2001) Case study: extreme programming in a university environment. In: Proceedings of the 23rd International Conference on Software Engineering (ICSE2001) Müller MM, Tichy WF (2001) Case study: extreme programming in a university environment. In: Proceedings of the 23rd International Conference on Software Engineering (ICSE2001)
Zurück zum Zitat Royce WW (1970) Managing the development of large software systems: concepts and techniques. IEEE WESTCON, Los Angeles, CA Royce WW (1970) Managing the development of large software systems: concepts and techniques. IEEE WESTCON, Los Angeles, CA
Zurück zum Zitat Sjøberg D, Anda B et al. (2002) Conducting realistic experiments in software engineering. In: Proceedings of the International Symposium on Empirical Software Engineering, Nara, Japan. IEEE Computer Society, Washington, DC Sjøberg D, Anda B et al. (2002) Conducting realistic experiments in software engineering. In: Proceedings of the International Symposium on Empirical Software Engineering, Nara, Japan. IEEE Computer Society, Washington, DC
Zurück zum Zitat Srivastava A, Thiagarajan J, Schertz C (2005) Efficient integration testing using dependency analysis. Technical report: MSR-TR-2005-94. Microsoft Research, Redmond, WA Srivastava A, Thiagarajan J, Schertz C (2005) Efficient integration testing using dependency analysis. Technical report: MSR-TR-2005-94. Microsoft Research, Redmond, WA
Zurück zum Zitat Williams L, Maximilien EM et al. (2003) Test-driven development as a defect-reduction practice. In: Proceedings of the IEEE International Symposium on Software Reliability Engineering, Denver, CO. IEEE Computer Society, Washington, DC Williams L, Maximilien EM et al. (2003) Test-driven development as a defect-reduction practice. In: Proceedings of the IEEE International Symposium on Software Reliability Engineering, Denver, CO. IEEE Computer Society, Washington, DC
Zurück zum Zitat Zelkowitz MV, Wallace DR (1998) Experimental models for validating technology. Computer 31(5):23–31CrossRef Zelkowitz MV, Wallace DR (1998) Experimental models for validating technology. Computer 31(5):23–31CrossRef
Metadaten
Titel
Realizing quality improvement through test driven development: results and experiences of four industrial teams
verfasst von
Nachiappan Nagappan
E. Michael Maximilien
Thirumalesh Bhat
Laurie Williams
Publikationsdatum
01.06.2008
Verlag
Springer US
Erschienen in
Empirical Software Engineering / Ausgabe 3/2008
Print ISSN: 1382-3256
Elektronische ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-008-9062-z

Weitere Artikel der Ausgabe 3/2008

Empirical Software Engineering 3/2008 Zur Ausgabe

Editorial

In this issue

Premium Partner