skip to main content
10.1145/2839509.2844633acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
research-article

A Strategy to Combine Test-Driven Development and Test Criteria to Improve Learning of Programming Skills

Published:17 February 2016Publication History

ABSTRACT

Students usually have difficulties assimilating basic contents of introductory programming disciplines. Test-Driven Development (TDD) is an interesting approach to address this issue, but it does not focus on quality with respect to software testing. This study aims to verify the effectiveness of the use of software testing criteria for producing test cases with higher quality in the context of education with TDD. We used the test-driven development technique with a change in the refactoring step, adding an activity for creating test cases using software testing criteria. We performed two experimental studies to evaluate the effectiveness of the technique. Each study comprised two groups: one using traditional TDD and the other using TDD with test criteria, both having developed the same software. The results showed that groups applying the proposed intervention produced better test cases, with greater coverage, and not disrupting TDD. Moreover, we could observe that, in general, the test set for groups using TDD with criteria was more efficient, getting greater coverage with fewer test cases than groups using plain TDD.

References

  1. M. F. Aniche and M. A. Gerosa. How the practice of TDD influences class design in object-oriented systems: Patterns of unit tests feedback. In 26th Brazilian Symposium on Software Engineering, pages 1--10, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. K. Beck. Test-Driven Development: By Example. Addison-Wesley Professional, USA, 1 edition, Nov. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. K. Buffardi and S. H. Edwards. Exploring influences on student adherence to test-driven development. In 17th Conference on Innovation and Technology in Computer Science Education, pages 105--110, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. K. Buffardi and S. H. Edwards. Effective and ineffective software testing behaviors by novice programmers. In 9th Conference on International Computing Education Research, pages 83--90, New York, NY,USA, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. A. Causevic, S. Punnekkat, and D. Sundmark. TDDHQ: Achieving higher quality testing in test driven development. In 39th Euromicro Conference Series on Software Engineering and Advanced Applications, pages 33--36, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. Causevic, R. Shukla, S. Punnekkat, and D. Sundmark. Effects of negative testing on TDD: An industrial experiment. In 14th Conference on Agile Software Development, pages 91--105, 2013. Google ScholarGoogle ScholarCross RefCross Ref
  7. A. Causevic, D. Sundmark, and S. Punnekkat. Impact of test design technique knowledge on test driven development: A controlled experiment. In 13th Conference on Agile Software Development, pages 138--152, 2012.Google ScholarGoogle Scholar
  8. D. M. de Souza, S. Isotani, and E. F. Barbosa. Teaching novice programmers using ProgTest. International Journal of Knowledge and Learning, 10(1):60--77, 2015. Google ScholarGoogle ScholarCross RefCross Ref
  9. S. H. Edwards. Rethinking computer science education from a test-first perspective. In 18th Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 148--155, New York, NY, USA, 2003. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. H. Edwards. Using software testing to move students from trial-and-error to reflection-in-action. In 35th Technical Symposium on Computer Science Education, pages 26--30, New York, NY,USA, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. H. Edwards and Z. Shams. Do student programmers all tend to write the same software tests? In 19th Conference on Innovation and Technology in Computer Science Education, pages 171--176, New York, NY,USA, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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, Apr. 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. B. George and L. Williams. A structured experiment of test-driven development. Information and Software Technology, 46(5):337--342, Apr. 2004. Google ScholarGoogle ScholarCross RefCross Ref
  14. M. Hilton and D. S. Janzen. On teaching arrays with test-driven learning in WebIDE. In 17th Conference on Innovation and Technology in Computer Science Education, pages 93--98, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. R. Hoffmann et al. EclEmma - Java code coverage for Eclipse. Software, Aug. 2006.Google ScholarGoogle Scholar
  16. V. Isomöttönen and V. Lappalainen. CSI with games and an emphasis on TDD and unit testing: piling a trend upon a trend. Inroads, 3(3):62--68, Sept. 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. D. Janzen and H. Saiedian. Test-driven learning in early programming courses. In 39th Technical Symposium on Computer Science Education, pages 532--536, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. S. Janzen and H. Saiedian. Test-driven learning: intrinsic integration of testing into the CS/SE curriculum. In 37th Technical Symposium on Computer Science Education, pages 254--258, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. C. Martin. The Bowling Game Kata. Site: http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata, 2005.Google ScholarGoogle Scholar
  20. H. Munir, M. Moayyed, and K. Petersen. Considering rigor and relevance when evaluating test driven development: A systematic review. Information and Software Technology, 56(4):375--394, Apr. 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. G. J. Myers. The Art of Software Testing. John Wiley & Sons, New York, NY,USA, 2 edition, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. S. L. Pfleeger. Design and analysis in software engineering: the language of case studies and formal experiments. Software Engineering Notes, 19(4):16--20, Oct. 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. S. Schaub. Teaching CS1 with web applications and test-driven development. Inroads, 41(2):113--117, June 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. W. Shelton, N. Li, P. Ammann, and J. Offutt. Adding criteria-based tests to test driven development. In 5th International Conference on Software Testing, Verification and Validation, pages 878--886, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. D. M. d. Souza, J. C. Maldonado, and E. F. Barbosa. ProgTest: An environment for the submission and evaluation of programming assignments based on testing activities. In 24th Conference on Software Engineering Education and Training, pages 1--10, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. J. Spacco, D. Hovemeyer, W. Pugh, F. Emad, J. K. Hollingsworth, and N. Padua-Perez. Experiences with Marmoset: designing and using an advanced submission and testing system for programming courses. In 11th Conference on Innovation and Technology in Computer Science Education, pages 13--17, New York, NY,USA, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. M. Thornton, S. H. Edwards, R. P. Tan, and M. A. Pérez-Quiñones. Supporting student-written tests of GUI programs. In 39th Technical Symposium on Computer Science Education, pages 537--541, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A Strategy to Combine Test-Driven Development and Test Criteria to Improve Learning of Programming Skills

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        SIGCSE '16: Proceedings of the 47th ACM Technical Symposium on Computing Science Education
        February 2016
        768 pages
        ISBN:9781450336857
        DOI:10.1145/2839509

        Copyright © 2016 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 17 February 2016

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        SIGCSE '16 Paper Acceptance Rate105of297submissions,35%Overall Acceptance Rate1,595of4,542submissions,35%

        Upcoming Conference

        SIGCSE Virtual 2024

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader