Evaluation of Test-Driven Development: An Academic Case Study

  • Shaochun Xu
  • Tong Li
Part of the Studies in Computational Intelligence book series (SCI, volume 253)

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 Evaluation 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
  2. 2.
    Beck, K.: Extreme Programming Explained, Maassachusettes. Addison-Wesley, Reading (2000)Google Scholar
  3. 3.
    Beck, K.: Test-Driving development: by Example. Addison Wesley, Reading (2003)Google Scholar
  4. 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. 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. 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. 7.
    Coyoto Development (2006), http://www.coyotedev.freeserve.co.uk/
  8. 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. 9.
    Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (1999)Google Scholar
  10. 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. 11.
    Hamill, P.: Unit Test Frameworks. O’Reilly, Sebastopol (2004)Google Scholar
  12. 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. 13.
    Llopis, N.: Games from within: GDC 2004: Software Engineering Roundtable Summary (2004), http://www.gamesfromwithin.com/articles/0403/000015.html
  14. 14.
    Llopis, N.: Stepping Through the Looking Glass: Test-Driven Game Development (2005), http://www.gamesfromwithin.com/articles/0502/000073.html
  15. 15.
    Microsoft, Microsoft Producer for Microsoft Office Powerpoint (2003), http://www.microsoft.com/windows/windowsmedia/technologies/producer.aspx
  16. 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. 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. 18.
    Nosek, J.T.: The case for collaborative programming. Communications of the ACM 41(3), 105–108 (1998)CrossRefGoogle Scholar
  19. 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. 20.
    Schwaber, K., Beedle, M.: Agile Software Development with SCRUM. Prentice Hall, Englewood Cliffs (2001)Google Scholar
  21. 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. 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. 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. 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. 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. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Shaochun Xu
    • 1
  • Tong Li
    • 2
  1. 1.Department of Computer ScienceAlgoma UniversityCanada
  2. 2.School of SoftwareYunnan UniversityKunmingChina

Personalised recommendations