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

Effective 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). Ho...

Full description

Bibliographic Details
Main Author: Buffardi, Kevin John
Other Authors: Computer Science
Format: Others
Published: Virginia Tech 2014
Subjects:
Online Access:http://hdl.handle.net/10919/49668
id ndltd-VTETD-oai-vtechworks.lib.vt.edu-10919-49668
record_format oai_dc
spelling ndltd-VTETD-oai-vtechworks.lib.vt.edu-10919-496682020-09-29T05:32:44Z Modeling Student Software Testing Processes: Attitudes, Behaviors, Interventions, and Their Effects Buffardi, Kevin John Computer Science Edwards, Stephen H. Tilevich, Eli Fowler, Shelli B. Shaffer, Clifford A. Perez-Quinonez, Manuel A. Computer Science Education Software Testing Test-driven development eLearning Adaptive Feedback Effective 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. Ph. D. 2014-07-24T08:00:12Z 2014-07-24T08:00:12Z 2014-07-23 Dissertation vt_gsexam:3398 http://hdl.handle.net/10919/49668 In Copyright http://rightsstatements.org/vocab/InC/1.0/ ETD application/pdf application/pdf Virginia Tech
collection NDLTD
format Others
sources NDLTD
topic Computer Science Education
Software Testing
Test-driven development
eLearning
Adaptive Feedback
spellingShingle Computer Science Education
Software Testing
Test-driven development
eLearning
Adaptive Feedback
Buffardi, Kevin John
Modeling Student Software Testing Processes: Attitudes, Behaviors, Interventions, and Their Effects
description Effective 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. === Ph. D.
author2 Computer Science
author_facet Computer Science
Buffardi, Kevin John
author Buffardi, Kevin John
author_sort Buffardi, Kevin John
title Modeling Student Software Testing Processes: Attitudes, Behaviors, Interventions, and Their Effects
title_short Modeling Student Software Testing Processes: Attitudes, Behaviors, Interventions, and Their Effects
title_full Modeling Student Software Testing Processes: Attitudes, Behaviors, Interventions, and Their Effects
title_fullStr Modeling Student Software Testing Processes: Attitudes, Behaviors, Interventions, and Their Effects
title_full_unstemmed Modeling Student Software Testing Processes: Attitudes, Behaviors, Interventions, and Their Effects
title_sort modeling student software testing processes: attitudes, behaviors, interventions, and their effects
publisher Virginia Tech
publishDate 2014
url http://hdl.handle.net/10919/49668
work_keys_str_mv AT buffardikevinjohn modelingstudentsoftwaretestingprocessesattitudesbehaviorsinterventionsandtheireffects
_version_ 1719343379453575168