Modeling Student Software Testing Processes: Attitudes, Behaviors, Interventions, and Their Effects

dc.contributor.authorBuffardi, Kevin Johnen
dc.contributor.committeechairEdwards, Stephen H.en
dc.contributor.committeememberTilevich, Elien
dc.contributor.committeememberFowler, Shelli B.en
dc.contributor.committeememberShaffer, Clifford A.en
dc.contributor.committeememberPerez-Quinonez, Manuel A.en
dc.contributor.departmentComputer Scienceen
dc.date.accessioned2014-07-24T08:00:12Zen
dc.date.available2014-07-24T08:00:12Zen
dc.date.issued2014-07-23en
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
dc.description.degreePh. D.en
dc.format.mediumETDen
dc.identifier.othervt_gsexam:3398en
dc.identifier.urihttp://hdl.handle.net/10919/49668en
dc.publisherVirginia Techen
dc.rightsIn Copyrighten
dc.rights.urihttp://rightsstatements.org/vocab/InC/1.0/en
dc.subjectComputer Science Educationen
dc.subjectSoftware Testingen
dc.subjectTest-driven developmenten
dc.subjecteLearningen
dc.subjectAdaptive Feedbacken
dc.titleModeling Student Software Testing Processes: Attitudes, Behaviors, Interventions, and Their Effectsen
dc.typeDissertationen
thesis.degree.disciplineComputer Science and Applicationsen
thesis.degree.grantorVirginia Polytechnic Institute and State Universityen
thesis.degree.leveldoctoralen
thesis.degree.namePh. D.en

Files

Original bundle
Now showing 1 - 2 of 2
Loading...
Thumbnail Image
Name:
Buffardi_KJ_D_2014.pdf
Size:
1.76 MB
Format:
Adobe Portable Document Format
Loading...
Thumbnail Image
Name:
Buffardi_KJ_D_2014_support_1.pdf
Size:
234.32 KB
Format:
Adobe Portable Document Format
Description:
Supporting documents