A critique of cyclomatic complexity as a software metric
Software Engineering Journal
Object-oriented metrics: measures of complexity
Object-oriented metrics: measures of complexity
A Validation of Object-Oriented Design Metrics as Quality Indicators
IEEE Transactions on Software Engineering
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
Test Driven Development: By Example
Test Driven Development: By Example
Empirical Software Engineering
IEEE Software
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Balancing Agility and Discipline: A Guide for the Perplexed
Balancing Agility and Discipline: A Guide for the Perplexed
Test Driven development: A Practical Guide
Test Driven development: A Practical Guide
Extreme Programming Refactored: The Case Against XP
Extreme Programming Refactored: The Case Against XP
Implications of test-driven development: a pilot study
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Extreme Programming Explained: Embrace Change (2nd Edition)
Extreme Programming Explained: Embrace Change (2nd Edition)
On the Influence of Test-Driven Development on Software Design
CSEET '06 Proceedings of the 19th Conference on Software Engineering Education & Training
ESEM '07 Proceedings of the First International Symposium on Empirical Software Engineering and Measurement
IEEE Transactions on Software Engineering
The effect of test-driven development on program code
XP'06 Proceedings of the 7th international conference on Extreme Programming and Agile Processes in Software Engineering
Critical issues on test-driven development
PROFES'11 Proceedings of the 12th international conference on Product-focused software process improvement
Hi-index | 0.00 |
It is suggested that test-driven development (TDD) is one of the most fundamental practices in agile software development, which produces loosely coupled and highly cohesive code. However, how the TDD impacts on the structure of the program code have not been widely studied. This paper presents the results from a comparative case study of five small scale software development projects where the effect of TDD on program design was studied using both traditional and package level metrics. The empirical results reveal that an unwanted side effect can be that some parts of the code may deteriorate. In addition, the differences in the program code, between TDD and the iterative test-last development, were not as clear as expected. This raises the question as to whether the possible benefits of TDD are greater than the possible downsides. Moreover, it additionally questions whether the same benefits could be achieved just by emphasizing unit-level testing activities.