Communications of the ACM - Special issue on analysis and modeling in software development
APPL/A: a language for software process programming
ACM Transactions on Software Engineering and Methodology (TOSEM)
Automating process discovery through event-data analysis
Proceedings of the 17th international conference on Software engineering
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Extreme Programming Installed
Test Driven Development: By Example
Test Driven Development: By Example
IEEE Software
Assessing test-driven development at IBM
Proceedings of the 25th International Conference on Software Engineering
Process discovery and validation through event-data analysis
Process discovery and validation through event-data analysis
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
Test-Driven Development as a Defect-Reduction Practice
ISSRE '03 Proceedings of the 14th International Symposium on Software Reliability Engineering
An initial investigation of test driven development in industry
Proceedings of the 2003 ACM symposium on Applied computing
Using software testing to move students from trial-and-error to reflection-in-action
Proceedings of the 35th SIGCSE technical symposium on Computer science education
ISESE '04 Proceedings of the 2004 International Symposium on Empirical Software Engineering
A Prototype Empirical Evaluation of Test Driven Development
METRICS '04 Proceedings of the Software Metrics, 10th International Symposium
On the Effectiveness of the Test-First Approach to Programming
IEEE Transactions on Software Engineering
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
Results from introducing component-level test automation and test-driven development
Journal of Systems and Software - Special issue: Selected papers from the 11th Asia Pacific software engineering conference (APSEC 2004)
Evaluating the efficacy of test-driven development: industrial case studies
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
On the Sustained Use of a Test-Driven Development Practice at IBM
AGILE '07 Proceedings of the AGILE 2007
ESEM '07 Proceedings of the First International Symposium on Empirical Software Engineering and Measurement
An Experimental Evaluation of the Effectiveness and Efficiency of the Test Driven Development
ESEM '07 Proceedings of the First International Symposium on Empirical Software Engineering and Measurement
Automated inference of software development behaviors: design, implementation and validation of zorro for test-driven development
Experiences in discovering, modeling, and reenacting open source software development processes
SPW'05 Proceedings of the 2005 international conference on Unifying the Software Process Spectrum
SPW/ProSim'06 Proceedings of the 2006 international conference on Software Process Simulation and Modeling
The impact of test-driven development on software development productivity: an empirical study
EuroSPI'07 Proceedings of the 14th European conference on Software Process Improvement
Impact of test-driven development on productivity, code and tests: A controlled experiment
Information and Software Technology
Test driven development: the state of the practice
Proceedings of the 50th Annual Southeast Regional Conference
Hi-index | 0.00 |
Test-driven development (TDD) is a style of development named for its most visible characteristic: the design and implementation of test cases prior to the implementation of the code required to make them pass. Many claims have been made for TDD: that it can improve implementation as well as design quality, that it can improve productivity, that it results in 100% coverage, and so forth. However, research to validate these claims has yielded mixed and sometimes contradictory results. We believe that at least part of the reason for these results stems from differing interpretations of the TDD development style, along with an inability to determine whether programmers actually follow whatever definition of TDD is in use.Zorro is a system designed to automatically determine whether a developer is complying with an operational definition of Test-Driven Development (TDD) practices. Automated recognition of TDD can benefit the software development community in a variety of ways, from inquiry into the "true nature" of TDD, to pedagogical aids to support the practice of test-driven development, to support for more rigorous empirical studies on the effectiveness of TDD in both laboratory and real world settings.This paper describes the Zorro system, its operational definition of TDD, the analyses made possible by Zorro, two empirical evaluations of the system, and an attempted case study. Our research shows that it is possible to define an operational definition of TDD that is amenable to automated recognition, and illustrates the architectural and design issues that must be addressed in order to do so. Zorro has implications not only for the practice of TDD, but also for software engineering "micro-process" definition and recognition through its parent framework, Software Development Stream Analysis.