Evaluation of Test-Driven Development: An Academic Case Study
Abstract
This paper investigates the effects of test driven development in the academic environment by conducting a case study with eight students who were assigned to implement a simple application either with test driven approach or with traditional approach. The results of the case study showed that the first group of students completed their tasks faster and with higher quality than the second group. The programs written by the first group pass relatively more test cases than those developed by the second group. The first group of programmers also wrote cleaner code with higher cohesion by creating more reasonable number of methods. Therefore, test-driven approach could be used in the academic environment such as assignments and projects.
Keywords
Test-Driven Test-Last Experiment EvaluationPreview
Unable to display preview. Download preview PDF.
References
- 1.Sammy Corporation (2006), http://www.sammy.co.jp/english/index.html
- 2.Beck, K.: Extreme Programming Explained, Maassachusettes. Addison-Wesley, Reading (2000)Google Scholar
- 3.Beck, K.: Test-Driving development: by Example. Addison Wesley, Reading (2003)Google Scholar
- 4.Canfora, G., Cimitile, A., Visaggio, C.: Working in pairs as a means for design knowledge building: an empirical study. In: Proceedings of International Workshop on Program Comprehension, Bari, Italy, June 24-26, 2004, pp. 62–69 (2004)Google Scholar
- 5.Coad, P., LeFebrve, E., Luca, J.: Feature-driven development. In: Java Modeling in Color with UML. Prentice Hall, Englewood Cliffs (1999)Google Scholar
- 6.Cockburn, A., Williams, L.: The costs and benefits of pair programming. In: Proceedings of Extreme Programming and Flexible Processes in Software Engineering, Cagliari, Italy, June 21-23, 2000, pp. 223–243 (2000)Google Scholar
- 7.Coyoto Development (2006), http://www.coyotedev.freeserve.co.uk/
- 8.Erdogmus, H., Morisio, M., Torchiano, M.: On the effectiveness of the Test-First Approach to Programming. IEEE Transactions in Software Engineering 31(3), 226–237 (2005)CrossRefGoogle Scholar
- 9.Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (1999)Google Scholar
- 10.George, B., Williams, L.: An initial investigation of test driven development in industry. In: Proceedings of the 2003 ACM Symposium on Applied Computing, Melbourne, Florida, pp. 1135–1139 (2003)Google Scholar
- 11.Hamill, P.: Unit Test Frameworks. O’Reilly, Sebastopol (2004)Google Scholar
- 12.Janzen, D., Saiedian, H.: Test-driven learning in early programming courses. In: Proceedings of the 39th SIGCSE technical symposium on Computer science education, Portland, USA, March 12-15, 2008, pp. 532–536 (2008)Google Scholar
- 13.Llopis, N.: Games from within: GDC 2004: Software Engineering Roundtable Summary (2004), http://www.gamesfromwithin.com/articles/0403/000015.html
- 14.Llopis, N.: Stepping Through the Looking Glass: Test-Driven Game Development (2005), http://www.gamesfromwithin.com/articles/0502/000073.html
- 15.Microsoft, Microsoft Producer for Microsoft Office Powerpoint (2003), http://www.microsoft.com/windows/windowsmedia/technologies/producer.aspx
- 16.Muller, M.M., Hagner, O.: Experiment about test-first programming. In: IEE Proceedings Software, 149th edn., October 2002, pp. 131–136 (2002)Google Scholar
- 17.Nagappan, E.N., Maximilien, M., Bhat, T., Williams, L.: Realizing quality improvement through test driven development: results and experiences of four industrial teams. Empirical Software Engineering 13(3), 289–302 (2008)CrossRefGoogle Scholar
- 18.Nosek, J.T.: The case for collaborative programming. Communications of the ACM 41(3), 105–108 (1998)CrossRefGoogle Scholar
- 19.Pancur, M., Ciglaric, M., Trampus, M., Vidmar, T.: Towards empirical evaluation of test-driven development in a university environment. In: The IEEE Region presented at EUROCON 2003. Computer as a Tool, vol. 8 (2003)Google Scholar
- 20.Schwaber, K., Beedle, M.: Agile Software Development with SCRUM. Prentice Hall, Englewood Cliffs (2001)Google Scholar
- 21.Srikanth, H., Williams, J.G., Wiebe, E., Miller, C., Balik, S.: On pair rotation in the computer science course. In: Proceedings of the 17th Conference on Software Engineering Education and Training, Norfolk, Virginia, March 1-3, 2004, pp. 144–149 (2004)Google Scholar
- 22.Vu, J.H., Frojd, N., Shenkel-Therolf, C., Janzen, D.: Evaluating Test-Driven Development in an Industry-Sponsored Capstone Project. In: Proceedings of Sixth International Conference on Information Technology: New Generations, pp. 229–234 (2009)Google Scholar
- 23.Williams, L., Kessler, R., Cuningham, W., Jeffries, R.: Strengthening the case for pair-programming. IEEE Software, 19–25 (July/August 2000)Google Scholar
- 24.Xu, S., Rajlich, V.: Dialog-based protocol: an empirical research method for cognitive activity in software engineering. In: Proceedings of the 4th ACM/IEEE International Symposium on Empirical Software Engineering, Noosa Heads, Queensland, November 17-18, 2005, pp. 397–406 (2005)Google Scholar
- 25.Xu, S., Cui, Z., Chen, X.: Programmer’s Expertise during Test-Driven Software Development. In:Proceedings of 6th IEEE International Conference on Cognitive Informatics (ICCI 2007), Lake Tahole, California, USA, August 6-8, 2007, pp. 456–461 (2007)Google Scholar
- 26.Xu, S., Rajlich, V., Marcus, A.: An Empirical Study of Programmer Learning during Incremental Software Development. In: Proceedings of the 4th IEEE International Conference on Cognitive Informatics (ICCI 2005), Irvine, California, August 8-10, pp. 340–349 (2005)Google Scholar