How Programmers Debug, Revisited: An Information Foraging Theory Perspective Joseph Lawrance, Christopher Bogart, Margaret Burnett, Senior Member, IEEE,

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Lecture 8: Testing, Verification and Validation
1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
Research Methods in Crime and Justice Chapter 4 Classifying Research.
Dissertation - August 2003 Enhanced Benefit Finding in Women with Early Stage Breast Cancer: The Mediational Role of Skill Building and Social Functioning.
Prospective and Retrospective Perception of Time Ashis Pati Diwakar Agarwal.
12/04/2006 Understanding & Predicting E-commerce Adoption: An Extension of the Theory of Planned Behavior (MIS Quarterly March 2006) Presented by: Yasmine.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
1 Software Construction Software Construction Chapter 1.
Software Reliability SEG3202 N. El Kadri.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology.
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
1 Asking and Answering Questions during a Programming Change Task, By Jonathan Sillito, Member, IEEE, Gail C. Murphy, Member, IEEE, and Kris De Volder.
Nursing research Is a systematic inquiry into a subject that uses various approach quantitative and qualitative methods) to answer questions and solve.
Scientific Debugging. Errors in Software Errors are unexpected behaviors or outputs in programs As long as software is developed by humans, it will contain.
Introduction The design, development and maintenance of concurrent software are difficult tasks. Truly effective support methodologies have yet to be developed.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
The Whats and Hows of Programmers’ Foraging Diets David Piorkowski 1, Scott Fleming 2, Irwin Kwan 1 Margaret Burnett 1, Chris Scaffidi 1, Rachel Bellamy.
To Fix or to Learn? How Production Bias Affects Developers’ Information Foraging during Debugging 1 David Piorkowski 1 Scott D. Fleming 2 Christopher Scaffidi.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
CHAPTER ONE EDUCATIONAL RESEARCH. THINKING THROUGH REASONING (INDUCTIVELY) Inductive Reasoning : developing generalizations based on observation of a.
© 2009 Pearson Prentice Hall, Salkind. Chapter 10 Nonexperimental Research: Qualitative Methods.
Reactive Information Foraging An Empirical Investigation of Theory-Based Recommender Systems for Programmers David Piorkowski  Scott D. Fleming  Christopher.
Example trial sequences for visual perspective-taking task
Presenters: Wei-Chih Hsu Professor: Ming-Puu Chen Date: 12/18/2007
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
CHAPTER 5: PERCEPTION AND INDIVIDUAL DECISION MAKING
Modeling Programmer Navigation
Software Quality Assurance
Carmel Proctor, Roger Tweed, Daniel Morris
AS level Psychology The Core Studies The developmental approach
Exploratory Factor Analysis Participants, Procedures, & Measures
Chapter 18 Maintaining Information Systems
Software Testing An Introduction.
Software Reliability PPT BY:Dr. R. Mall 7/5/2018.
Verification & Validation
Introduction Results Hypotheses Discussion Method
A Wiki to Help National Instruments to Design Development Tools: Putting Information Foraging Theory into Practice Prof. Christopher Scaffidi, Oregon.
Justin D. Hackett, Benjamin J. Marcus, and Allen M. Omoto
Pre-Activity: 1. Recap? 2. Research Says?
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Program comprehension during Software maintenance and evolution Armeliese von Mayrhauser , A. Marie Vans Colorado State University Summary By- Fardina.
Chapter 1 - Introducing Psychology
Introduction to Software Engineering
Software Reliability: 2 Alternate Definitions
Chapter Three Research Design.
Goal, Question, and Metrics
Peer Reviewed Journal Articles in the Community College Classroom
Reliability and Validity of Measurement
Measuring inflation using Laspeyres index
Lecture 09:Software Testing
Introduction to Systems Analysis and Design
The Management Process Today
Prediction, Prevention & Change
Introduction to Project Management
Introduction to Psychology Chapter 1
Chapter 7 Attitudes and Attitude Change
Goals of Psychology!.
Research Inquiry Submitted by: Donna Lee Ettel, Ph.D.
Birds of a Feather: Amplification Effects of Teen Best Friendships on Psychological Functioning Meghan Costello, Joseph P. Allen, & Rachel Narr University.
Why Arriving Late to Meetings May Harm Workplace Relationships
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Introduction Previous work Test Suite Minimization
A logical approach to problem solving.
General Social Competence (18)
Seminar on empirical paper: “Eliciting Design Requirements for Maintenance-Oriented IDEs: A Detailed Study of Corrective and Perfective Maintenance Tasks”
Testing, Inspection, Walkthrough
The Research Process & Surveys, Samples, and Populations
List of your team members Member 1 Member 2 Member 3
Presentation transcript:

How Programmers Debug, Revisited: An Information Foraging Theory Perspective Joseph Lawrance, Christopher Bogart, Margaret Burnett, Senior Member, IEEE, Rachel Bellamy, Member, IEEE, Kyle Rector, and Scott D. Fleming, Member, IEEE

Introduction This paper presents a theory of programmer navigation when debugging. Information foraging theory is based on optimal foraging theory, a theory of how predators and prey behave in the wild. Older theories of program debugging do not explicitly consider navigation. Instead, they rely primarily on in-the-head constructs, such as mental models and hypotheses.

Terms and Definitions Predator: The programmer who is debugging. Prey: What the programmer seeks to know to reveal the changes that must be made to fix the bug. Information patches: Localities in the source code, related documents, and displays that may contain prey. Proximal cues: Words, objects, and perceptible runtime behaviors in the programming environment that suggest scent relative to the distal prey. Cues act as signposts to prey. Information scent: The perceived likelihood of a cue leading to prey, either directly or indirectly. Scent is a measure, and scent from one cue can be compared to the scent of other cues. Unlike cues, scent exists only in the programmer’s head. Topology: The collection of paths through the source code, related documents, and displays through which the programmer can navigate.

Existing Theories Brooks Theory – Top-down approach which has an hierarchy of hypothesis. Letovsky’s Theory – Top-down and Bottom-Up approach. Bottom-up for what and why questions. Top-down for how questions. Katz and Anderson’s study revealed four distinct debugging subtasks: comprehension, testing, locating the component containing the error, and repairing the component. Ko et al proposed a model for program comprehension during maintenance. The model consists of three stages: seeking, relating, and collecting information

Study Conducted The subject program for our study, was RSSOwl, an open-source news-feed reader that is one of the most actively maintained and downloaded projects As tasks for our participants, two bug reports from RSSOwl’s bug- tracking database were selected. Two bugs to fix: One code level defect and one specification level defect. Recruited 12 professional programmers from IBM to participate in the study. All participants had at least two years of experience programming in Java

Objective RQ1: Is there reason to expect a scent-based model of debugging navigation will succeed if it does not explicitly handle programmers’ hypothesis processing? RQ2: When do developers engage in scent and hypothesis processing with respect to debugging activities? RQ3: Where do programmers navigate during debugging with respect to programming artifacts, and in which artifacts do programmers exhibit scent seeking and hypothesis processing? RQ4: Is the PFIS approach to predicting programmer navigation significantly more accurate than an approach based on programmers’ stated information needs and hypotheses?

Analysis There was a relationship between hypotheses and scent, it often reflected a bottom-up hypothesis modification that was based on a scent gained in the code, or sometimes reflected a hypothesis that led top down to a new scent to look for. Six Major Activities during debugging: Mapping, Drill down mapping, observer the failure, locate the fault, fix the fault, verify code. These results suggest that, although non-code artifacts did affect participants’ navigation behavior to some extent, it is reasonable for a model or tool to rely solely on the analysis of source code relative to the bug report to obtain predictions.

Results RQ1: The way participants worked with scent was consistent with information foraging theory. The participants verbalized activities related to scent about four times as often as (non-scent) hypotheses. The relationships between scent and some types of hypotheses may have contributed to the effectiveness of scent as a predictor. RQ2: In the six debugging modes in our participants’ data, scent following was pervasive in all six of them, whereas (non-scent) hypotheses were mostly concentrated in just one of them, the predominant “fix” phase. This finding also helps to explain why scent was so effective at predicting programmer navigation. RQ3: The biggest “trigger” for scent following was the source code itself. These findings suggest, first, that operationalization of the scent construct using static analysis of source code alone can produce reasonably accurate predictions and, second, that even greater accuracy may be possible if a model includes additional data sources. RQ4: The PFIS model, which operationalizes our theory, was more accurate at predicting programmer navigation behavior than comparable models that do not consider information scent.