ABSTRACT
We have conducted a qualitative investigation on test-driven development (TDD) with focus groups to develop insights on the opinions of developers using TDD regarding the unintuitive process involved, its claimed effects, as well as the context factors that can facilitate (or hinder) its application. In particular, we conducted two focus group sessions: one with professionals and another with Master students in Computer Science. We used thematic analysis template (TAT) method for identifying patterns, themes, and interpretations in gathered data. We obtained a number of results that can be summarized as follows: (i) applying TDD without knowing advanced unit testing techniques can be difficult; (ii) refactoring (one of the phases of TDD) is not done as often as the process requires; (iii) there is a need for live feedback to let developers understand if TDD is being applied correctly; and (iv) the usefulness of TDD hinges on task and domain to which it is applied to.
- D. Astels. Test Driven Development: A Practical Guide. Prentice Hall Professional, 2003. Google ScholarDigital Library
- Beck. Test Driven Development: By Example. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2002. Google ScholarDigital Library
- A. Causevic, D. Sundmark, and S. Punnekkat. Factors Limiting Industrial Adoption of Test Driven Development: A Systematic Review. In Software Testing, Verification and Validation (ICST), 2011 IEEE Fourth International Conference on, pages 337--346. IEEE, 2011. Google ScholarDigital Library
- D. Fucci and B. Turhan. On the role of tests in test-driven development: a differentiated and partial replication. Empirical Software Engineering, 19(2):277--302, 2014. Google ScholarDigital Library
- A. Geras, M. Smith, and J. Miller. A prototype empirical evaluation of test driven development. In Software Metrics, 2004. Proceedings. 10th International Symposium on, pages 405--416, 2004. Google ScholarDigital Library
- A. Gupta and P. Jalote. An experimental evaluation of the effectiveness and efficiency of the test driven development. In Empirical Software Engineering and Measurement, 2007. ESEM 2007. First International Symposium on, pages 285--294, 2007. Google ScholarDigital Library
- N. King, C. Cassell, and G. Symon. Using templates in the thematic analysis of texts. Essential guide to qualitative methods in organizational research, pages 256--270, 2004.Google Scholar
- J. Kontio, J. Bragge, and L. Lehtola. The Focus Group Method as an Empirical Tool in Software Engineering. In Guide to Advanced Empirical Software Engineering, chapter 4, pages 93--116. Springer London, London, 2008.Google ScholarCross Ref
- J. Kontio, L. Lehtola, and J. Bragge. Using the Focus Group Method in Software Engineering: Obtaining Practitioner and User Experiences. In Proceedings of the International Symposium on Empirical Software Engineering, pages 271--280. IEEE, 2004. Google ScholarDigital Library
- J. Langford and D. McDonagh. Focus Groups: Supporting Effective Product Development. CRC Press, 2003.Google Scholar
- L. Lehtola and S. Kujala. Requirements Prioritization Challenges in Practice. In Proceedings of International Conference On Product Focused Software Process Improvement, pages 497--508. Springer, 2004.Google ScholarCross Ref
- A. Marchenko, P. Abrahamsson, and T. Ihme. Long-term effects of test-driven development A case study. In Proceedings of Internation Confernce on Agile Processes in Software Engineering and Extreme Programming, pages 13--22. Springer, 2009.Google ScholarCross Ref
- M. B. Miles and A. M. Huberman. Qualitative data analysis: An expanded sourcebook. Sage, 1994.Google Scholar
- D. L. Morgan. Focus Groups. Annual Review of Sociology, 22:129--152, 1996.Google ScholarCross Ref
- M. Muller and W. Tichy. Case study: extreme programming in a university environment. In Proceedings of the 23rd International Conference on Software Engineering, pages 537--544, May 2001. Google ScholarDigital Library
- H. Munir, M. Moayyed, and K. Petersen. Considering rigor and relevance when evaluating test driven development: A systematic review. Information and Software Technology, 2014. Google ScholarDigital Library
- J. Nielsen. The Use and Misuse of Focus Groups. IEEE Softw., 14(1):94--95, Jan. 1997. Google ScholarDigital Library
- M. Pancur, M. Ciglaric, M. Trampus, and T. Vidmar. Towards empirical evaluation of test-driven development in a university environment. In EUROCON 2003. Computer as a Tool. The IEEE Region 8, volume 2, pages 83--86 vol. 2, 2003.Google ScholarCross Ref
- Y. Rafique and V. B. Misic. The Effects of Test-Driven Development on External Quality and Productivity: A Meta-Analysis. Software Engineering, IEEE Transactions on, 39(6):835--856, 2013. Google ScholarDigital Library
- I. Salman, A. T. Misirli, and N. Juristo. Are Students Representatives of Professionals in Software Engineering Experiments? In Procedings of International Conference on Software Engineering, pages 666--676, 2015. Google ScholarDigital Library
- F. Shull, G. Melnik, B. Turhan, L. Layman, M. Diep, and H. Erdogmus. What Do We Know about Test-Driven Development? IEEE Software, 27(6):16--19, 2010. Google ScholarDigital Library
- P. Tahchiev, F. Leme, V. Massol, and G. Gregory. JUnit in action. Manning Publications Co., 2010. Google ScholarDigital Library
- B. Turhan, L. Layman, M. Diep, H. Erdogmus, and F. Shull. How effective is test-Driven Development. Making Software: What Really Works, and Why We Believe It, pages 207--217, 2010.Google Scholar
- C. Wohlin, P. Runeson, M. Höst, M. Ohlsson, B. Regnell, and A. Wesslén. Experimentation in Software Engineering. Springer, 2012. Google ScholarCross Ref
Index Terms
- Students' and professionals' perceptions of test-driven development: a focus group study
Recommendations
An experimental evaluation of test driven development vs. test-last development with industry professionals
EASE '14: Proceedings of the 18th International Conference on Evaluation and Assessment in Software EngineeringTest-Driven Development (TDD) is a software development approach where test cases are written before actual development of the code in iterative cycles. Context: TDD has gained attention of many software practitioners during the last decade since it has ...
Realizing quality improvement through test driven development: results and experiences of four industrial teams
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 ...
Results from an Ethnographically-informed Study in the Context of Test Driven Development
EASE '16: Proceedings of the 20th International Conference on Evaluation and Assessment in Software EngineeringBackground: Test-driven development (TDD) is an iterative software development technique where unit tests are defined before production code. Previous studies fail to analyze the values, beliefs, and assumptions that inform and shape TDD.
Aim: We ...
Comments