Show simple item record

dc.contributor.authorBuffardi, Kevin Johnen_US
dc.date.accessioned2014-07-24T08:00:12Z
dc.date.available2014-07-24T08:00:12Z
dc.date.issued2014-07-23en_US
dc.identifier.othervt_gsexam:3398en_US
dc.identifier.urihttp://hdl.handle.net/10919/49668
dc.description.abstractEffective software testing identifies potential bugs and helps correct them, producing more reliable and maintainable software. As software development processes have evolved, incremental testing techniques have grown in popularity, particularly with introduction of test-driven development (TDD). However, many programmers struggle to adopt TDD's "test a little, code a little" approach and conventional computer science classrooms neglect evaluating software development as a process. In response, we explore influences on students' testing behaviors, effects of incremental testing strategies, and describe approaches to help computer science students adopt good testing practices. First, to understand students' perspectives and adoption of testing strategies, we investigated their attitudes toward different aspects of TDD. In addition, we observed trends in when and how thoroughly students tested their code and how these choices impacted the quality of their assignments. However, with insight into why students struggle to adopt incremental testing, we identified a need to assess their behaviors during the software development process as a departure from traditional product-oriented evaluation. By building upon an existing automated grading system, we developed an adaptive feedback system to provide customized incentives to reinforce incremental testing behaviors while students solved programming assignments. We investigated how students react to concrete testing goals and hint reward mechanisms and found approaches for identifying testing behaviors and influencing short-term behavioral change. Moreover, we discovered how students incorporate automated feedback systems into their software development strategies. Finally, we compared testing strategies students exhibited through analyzing five years and thousands of snapshots of students' code during development. Even when accounting for factors such as procrastinating on assignments, we found that testing early and consistently maintaining testing throughout development helps produce better quality code and tests. By applying our findings of student software development behaviors to effective testing strategies and teaching techniques, we developed a framework for adaptively scaffolding feedback to empower students to critically reflect over their code and adopt incremental testing approaches.en_US
dc.format.mediumETDen_US
dc.publisherVirginia Techen_US
dc.rightsThis Item is protected by copyright and/or related rights. Some uses of this Item may be deemed fair and permitted by law even without permission from the rights holder(s), or the rights holder(s) may have licensed the work for use under certain conditions. For other uses you need to obtain permission from the rights holder(s).en_US
dc.subjectComputer Science Educationen_US
dc.subjectSoftware Testingen_US
dc.subjectTest-driven developmenten_US
dc.subjecteLearningen_US
dc.subjectAdaptive Feedbacken_US
dc.titleModeling Student Software Testing Processes: Attitudes, Behaviors, Interventions, and Their Effectsen_US
dc.typeDissertationen_US
dc.contributor.departmentComputer Scienceen_US
dc.description.degreePh. D.en_US
thesis.degree.namePh. D.en_US
thesis.degree.leveldoctoralen_US
thesis.degree.grantorVirginia Polytechnic Institute and State Universityen_US
thesis.degree.disciplineComputer Science and Applicationsen_US
dc.contributor.committeechairEdwards, Stephen H.en_US
dc.contributor.committeememberTilevich, Elien_US
dc.contributor.committeememberFowler, Shelli B.en_US
dc.contributor.committeememberShaffer, Clifford A.en_US
dc.contributor.committeememberPerez-Quinonez, Manuel A.en_US


Files in this item

Thumbnail
Thumbnail

This item appears in the following Collection(s)

Show simple item record