the design of bug fixes

26
The Design of Bug Fixes Emerson Murphy-Hill North Carolina State University Thomas Zimmermann, Christian Bird, and Nachiappan Nagappan Microsoft Research , USA ICSE 2013

Upload: astra

Post on 16-Feb-2016

37 views

Category:

Documents


0 download

DESCRIPTION

The Design of Bug Fixes. Emerson Murphy-Hill North Carolina State University Thomas Zimmermann, Christian Bird, and Nachiappan Nagappan Microsoft Research , USA ICSE 2013. About the paper. Empirical study performed in Microsoft Investigated two research questions: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: The Design of Bug Fixes

The Design of Bug Fixes Emerson Murphy-Hill

North Carolina State University

Thomas Zimmermann, Christian Bird, and Nachiappan Nagappan

Microsoft Research , USA

ICSE 2013

Page 2: The Design of Bug Fixes

About the paper Empirical study performed in Microsoft Investigated two research questions:

What are the different ways that bugs can be fixed? (Design space)

What factors influence which fix an engineer chooses? (Decisions / Navigating design space)

Contribution The first systematic characterization of the

design of bug fixes

Page 3: The Design of Bug Fixes

Overview

Page 4: The Design of Bug Fixes

Methodology 1. Opportunistic Interviews

Randomly went to 4 product groups Asked 8 engineers per group about his last fixed

bug for 10-15 min

Page 5: The Design of Bug Fixes

Methodology 2. Firehouse Interviews

Observe a just-completed fix in a bug tracker “Rush to the scene” 8 engineers from a different product group

Page 6: The Design of Bug Fixes

Methodology (cont.) 3. Triage Meetings

6 meetings Little data could be gathered: Lack of context

4. Survey Multiple-choice, estimated 15-20 minutes 324 out of 2000 responsed (16%)

Page 7: The Design of Bug Fixes

Results: Design Space

Page 8: The Design of Bug Fixes

Results: Design Space Data propagation

Layered infrastructure with four layers, top most being the UI

Top: expecting megabytes Bottom: only accept kilobytes

Page 9: The Design of Bug Fixes

Results: Design Space (cont.)

Error Surfacing A crash when a user is deleting file Engineer: catch exception and handle it Whether or not to notify the user

Page 10: The Design of Bug Fixes

Results: Design Space (cont.)

Behavioral Alternatives In a kind of mobile device When first load, back botton can not work

simultaneously with other features Choose a certain behavior

Page 11: The Design of Bug Fixes

Results: Design Space (cont.)

Functionality Removal Rather than fixing, just remove the whole

feature 75% of respondents said they had removed

features from their software to fix bugs in the past

Page 12: The Design of Bug Fixes

Results: Design Space (cont.)

Refactoring

Page 13: The Design of Bug Fixes

Results: Design Space (cont.)

Internal vs External A testing framework Changing the framework (internal) Changing other team’s code (external)

Page 14: The Design of Bug Fixes

Results: Design Space (cont.)

Accuracy A web browser is not printing well Accurate: print driver retrieve the fonts Less accurate: use a heuristic to produce a

better but not optimal printing

Page 15: The Design of Bug Fixes

Results: Design Space (cont.)

Hardcoding Receive database queries, with some queries

malformed Hardcoded, using a fixed set of queries

Page 16: The Design of Bug Fixes

Results: Navigating the Design Space

Page 17: The Design of Bug Fixes

Results: Navigating the Design Space (cont.)

Risk Management by Development Phase

Page 18: The Design of Bug Fixes

Results: Navigating the Design Space (cont.)

Risk Management by Development Phase

Page 19: The Design of Bug Fixes

Results: Navigating the Design Space (cont.)

Interface Breakage

Page 20: The Design of Bug Fixes

Results: Navigating the Design Space (cont.)

Consistency

Page 21: The Design of Bug Fixes

Results: Navigating the Design Space (cont.)

User Behavior

Page 22: The Design of Bug Fixes

Results: Navigating the Design Space (cont.)

User Behavior

Page 23: The Design of Bug Fixes

Results: Navigating the Design Space (cont.)

Cause Understanding 18% indicated that they have not had “time to

figure out why the bug occurred”

Page 24: The Design of Bug Fixes

Results: Navigating the Design Space (cont.)

Social Factors

Page 25: The Design of Bug Fixes

Implications Additional Factors in Bug Prediction and

Localization Limits of Bug Prediction and Localization Refactoring while Fixing Bugs Usage Analytics Fix Reconsideration

Page 26: The Design of Bug Fixes

Limitations Generalizability beyond the population Expectancy bias Memory bias Unable to collect contextual information Misunderstanding