|
ABSTRACT
Test Driven Development (TDD) is a software development practice in which unit test cases are incrementally written prior to code implementation. In our research, we ran a set of structured experiments with 24 professional pair programmers. One group developed code using TDD while the other a waterfall-like approach. Both groups developed a small Java program. We found that the TDD developers produced higher quality code, which passed 18% more functional black box test cases. However, TDD developer pairs took 16% more time for development. A moderate correlation between time spent and the resulting quality was established upon analysis. It is conjectured that the resulting high quality of code written using the TDD practice may be due to the granularity of TDD, which may encourage more frequent and tighter verification and validation. Lastly, the programmers which followed a waterfall-like process often did not write the required automated test cases after completing their code, which might be indicative of the tendency among practitioners toward inadequate testing. This observation supports that TDD has the potential of increasing the level of testing in the industry as testing as an integral part of code development.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Auer, K. and Miller, R., XP Applied: Addison-Wesley, 2001.
|
| |
2
|
|
| |
3
|
|
| |
4
|
|
| |
5
|
|
| |
6
|
Chaplin, D., "Test First Programming," TechZone, 2001.
|
| |
7
|
Cornett, S., "Code Coverage Analysis," Bullseye Testing Technology 2002.
|
| |
8
|
Elfriede Dustin , Jeff Rashka , John Paul, Automated software testing: introduction, management, and performance, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1999
|
| |
9
|
Gelperin, D. and Hetzel, W., "Software Quality Engineering," presented at Fourth International Conference on Software Testing, Washington D.C., June 1987.
|
| |
10
|
George, B., "Analysis and Quantification of Test Driven Development Approach," North Carolina State MS Thesis, 2002.
|
| |
11
|
|
| |
12
|
Jeffries, R. E., "Extreme Testing," presented at Software Testing and Quality Engineering, 1999.
|
| |
13
|
Martin, C. R., Advanced Principles, Patterns and Process of Software Development: Prentice Hall, 2001, in press.
|
| |
14
|
Muller, M. M. and Hagner, O., "Experiment about Test-first programming," presented at Empirical Assessment In Software Engineering EASE '02, Keele, April 2002.
|
| |
15
|
Royce, W. W., "Managing the development of large software systems: concepts and techniques," presented at IEEE WESTCON, Los Angeles, CA, 1970.
|
| |
16
|
Williams, L. A., The Collaborative Software Process. Salt Lake City, UT: Department of Computer Science, 2000.
|
CITED BY 16
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Laura K. Dillon , R. E. K. Stirewalt , Eileen Kraemer , Shaohua Xie , Scott D. Fleming, Using formal models to objectively judge quality of multi-threaded programs in empirical studies, Proceedings of the 2008 international workshop on Models in software engineering, May 10-11, 2008, Leipzig, Germany
|
|
|
|
|
|
Ivana Turnu , Marco Melis , Alessandra Cau , Alessio Setzu , Giulio Concas , Katiuscia Mannaro, Modeling and simulation of open source development using an agile practice, Journal of Systems Architecture: the EUROMICRO Journal, v.52 n.11, p.610-618, November 2006
|
|
|
|
|
|
Ivana Turnu , Marco Melis , Alessandra Cau , Michele Marchesi , Alessio Setzu, Introducing TDD on a free libre open source software project: a simulation experiment, Proceedings of the 2004 workshop on Quantitative techniques for software agile process, p.59-65, November 05-05, 2004, Newport Beach, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|