Analyzing test driven development based on GitHub evidence
- Published
- Accepted
- Subject Areas
- Software Engineering
- Keywords
- Opinion Mining, Human Factors in Software Engineering, Test Driven Development, Sentiment Analysis
- Copyright
- © 2016 Borle et al.
- Licence
- This is an open access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ Preprints) and either DOI or URL of the article must be cited.
- Cite this article
- 2016. Analyzing test driven development based on GitHub evidence. PeerJ Preprints 4:e1920v3 https://doi.org/10.7287/peerj.preprints.1920v3
Abstract
Testing is an integral part of the software development lifecycle, approached with varying degrees of rigor by different process models. Agile process models advocate Test Driven Development (TDD) as one among their key practices for reducing costs and improving code quality. In this paper we comparatively analyze GitHub repositories that adopt TDD against repositories that do not, in order to determine how TDD affects a number of variables related to productivity and developer satisfaction, two aspects that should be considered in a cost-benefit analysis of the paradigm. In this study, we searched through GitHub and found that a relatively small subset of Java-based repositories can be seen to adopt TDD, and an even smaller subset can be confidently identified as rigorously adhering to TDD. For comparison purposes, we created two same-size control sets of repositories. We then compared the repositories in these two sets in terms of number of test files, average commit velocity, number of commits that reference bugs, number of issues recorded, whether they use continuous integration, and the sentiment of their developers’ commits. We found some interesting and significant differences between the two sets, including higher commit velocity and increased likelihood of continuous integration for TDD repositories.
Author Comment
This version expands the previous version submitted to the MSR 2016 Challenge Track into a paper suitable for submission to the ICSME 2016 Research Track. Substantial portions of this work have been changed.