Are Automated Debugging Techniques Actually Helping Programmers

42
Are Automated Debugging Techniques Actually Helping Programmers? Chris Parnin Georgia Tech @chrisparnin (twitter) Alessandro (Alex) Orso Georgia Tech @alexorso (twitter)

description

 

Transcript of Are Automated Debugging Techniques Actually Helping Programmers

Page 1: Are Automated Debugging Techniques Actually Helping Programmers

Are Automated Debugging Techniques Actually Helping

Programmers?Chris Parnin Georgia Tech

@chrisparnin (twitter)

Alessandro (Alex) OrsoGeorgia Tech

@alexorso (twitter)

Page 2: Are Automated Debugging Techniques Actually Helping Programmers

Finding bugs can be hard…

Page 3: Are Automated Debugging Techniques Actually Helping Programmers

Automated debugging to the rescue!

I’ll help you find location

of bug!

Page 4: Are Automated Debugging Techniques Actually Helping Programmers

How it works (Ranking-Based)I have calculated most likely location of bug!

Give me a failing program.

Calculating…

Here is your ranked list of statements.

Page 5: Are Automated Debugging Techniques Actually Helping Programmers

How it works (Ranking-Based)

Here is your rankedlist of statements.

I have calculated most likely location of bug!

Give me input.

Calculating…

But how does a programmer usea ranked list of statements?

Page 6: Are Automated Debugging Techniques Actually Helping Programmers

Conceptual Model

Here is a list of places to check out

1)

2)

3)

4)

Ok, I will check out your suggestions

one by one.

Page 7: Are Automated Debugging Techniques Actually Helping Programmers

Conceptual Model

1)

2)

3)

4)

Found the bug!

Page 8: Are Automated Debugging Techniques Actually Helping Programmers

Does the conceptual model make sense?

Have we evaluated it?

A Skeptic

Page 9: Are Automated Debugging Techniques Actually Helping Programmers

Let’s see…Over 50 years of researchon automated debugging.

1999. Delta Debugging

1962. Symbolic Debugging (UNIVAC FLIT)

1981. Weiser. Program Slicing

2001. Statistical Debugging

Page 10: Are Automated Debugging Techniques Actually Helping Programmers

Did you see anything?

Page 11: Are Automated Debugging Techniques Actually Helping Programmers

Only 5 papers have evaluated automated debugging techniques

with actual programmers.

• Most find no benefit• Most done on programs < 100 LOC

Page 12: Are Automated Debugging Techniques Actually Helping Programmers

More generally, two points

Techniques rely on two strong assumptions

Page 13: Are Automated Debugging Techniques Actually Helping Programmers

Do you see a bug?

Assumption #1: Perfect bug understanding must also exist when using automated tool.

Page 14: Are Automated Debugging Techniques Actually Helping Programmers

Assumption #2Programmer inspects statements linearly

and exhaustively until finding bug.

Is this realistic?

Page 15: Are Automated Debugging Techniques Actually Helping Programmers

Conceptual model: What if gave a developer a list of statements to inspect?

How would they use the list?

Would they be able to see the bug after visiting it?

Is ranking important?

Page 16: Are Automated Debugging Techniques Actually Helping Programmers

Benefit: What if we evaluate programmers with and without automated debuggers?

> ?

We also could observe what works and what

doesn’t.

Page 17: Are Automated Debugging Techniques Actually Helping Programmers

Study Setup

34 Developers

2 Debugging Tasks

Automated debugging tool

Page 18: Are Automated Debugging Techniques Actually Helping Programmers

Study SetupParticipants:

34 developersMS/Phd StudentsDifferent levels of expertise (low,medium,high)

Page 19: Are Automated Debugging Techniques Actually Helping Programmers

Study Setup

Software subjects:Tetris (2.5 kloc)NanoXML (4.5 kloc)

Page 20: Are Automated Debugging Techniques Actually Helping Programmers

21

Study Setup

Tools:Traditional debugger

Eclipse ranking plugin(logged activity)

Page 21: Are Automated Debugging Techniques Actually Helping Programmers

Study Setup

Tasks:Debugging fault30 minutes per taskQuestionnaire at end

Page 22: Are Automated Debugging Techniques Actually Helping Programmers

Bugs

Bug #1: Pressing rotate key causes square figure to move up!

Page 23: Are Automated Debugging Techniques Actually Helping Programmers

Bugs

When running the NanoXML program (main is in class Parser1_vw_v1), the following exception is thrown:Exception in thread "main" net.n3.nanoxml.XMLParseException: XML Not Well-Formed at Line 19: Closing tag does not match opening tag: `ns:Bar' != `:Bar'at net.n3.nanoxml.XMLUtil.errorWrongClosingTag(XMLUtil.java:497)at net.n3.nanoxml.StdXMLParser.processElement(StdXMLParser.java:438)

at net.n3.nanoxml.StdXMLParser.scanSomeTag(StdXMLParser.java:202)at net.n3.nanoxml.StdXMLParser.processElement(StdXMLParser.java:453)at net.n3.nanoxml.StdXMLParser.scanSomeTag(StdXMLParser.java:202)at net.n3.nanoxml.StdXMLParser.scanData(StdXMLParser.java:159)at net.n3.nanoxml.StdXMLParser.parse(StdXMLParser.java:133)at net.n3.nanoxml.Parser1_vw_v1.main(Parser1_vw_v1.java:50)

The input, testvm_22.xml, contains the following input xml document:<Foo a=”test”> <ns:Bar> <Blah x=”1” ns:x=”2”/> </ns:Bar></Foo>

Bug #2: Exception on input xml document.

Page 24: Are Automated Debugging Techniques Actually Helping Programmers

Study Setup: Groups

Page 25: Are Automated Debugging Techniques Actually Helping Programmers

26

Study Setup: GroupsA B

Page 26: Are Automated Debugging Techniques Actually Helping Programmers

Study Setup: GroupsRank

Rank

C D

Page 27: Are Automated Debugging Techniques Actually Helping Programmers

Results

Page 28: Are Automated Debugging Techniques Actually Helping Programmers

How do developers use a ranked list?

37% of visits jumped avg. 10.Navigation pattern zig-zagged

(avg. 10 zigzags)

Low performers did follow list.

Survey says searched through

statements.

Page 29: Are Automated Debugging Techniques Actually Helping Programmers

Is perfect bug understanding realistic?

Only 1 out of 10 programmers who clicked on bug stopped investigation.

The others spent on average ten minutes continuing investigation.

Page 30: Are Automated Debugging Techniques Actually Helping Programmers

Are automated toolsspeeding up debugging?

=Automated group Traditional

No✘

Page 31: Are Automated Debugging Techniques Actually Helping Programmers

Are automated toolsspeeding up debugging?

=Automated group Traditional

No✘

=Automated group Traditional

No✘

Rank

Page 32: Are Automated Debugging Techniques Actually Helping Programmers

Are automated toolsspeeding up debugging?

=Automated group Traditional

No✘

Page 33: Are Automated Debugging Techniques Actually Helping Programmers

But… Stratifying Participants

Low Performers

✘ ✘

Medium Performers

✘✔

High Performers

✔ ✔

Page 34: Are Automated Debugging Techniques Actually Helping Programmers

Significant difference for “experts”

High Performers

✔ ✔On average, 5 minutes faster

Page 35: Are Automated Debugging Techniques Actually Helping Programmers

Are automated toolsspeeding up debugging?

=

ExpertsExperts>

Automated group Traditional

No✘

Yes!✔

Automated group Traditional

Page 36: Are Automated Debugging Techniques Actually Helping Programmers

Observations

Developers searched through statements.

Developers without tool fixed symptoms (not problem).

Developers wanted explanations rather than recommendations.

Page 37: Are Automated Debugging Techniques Actually Helping Programmers

Future directions

Page 38: Are Automated Debugging Techniques Actually Helping Programmers

39

Moving beyond fault space reduction

We can keep building

better tools.

But we can’t keep abstracting away

the human.

Page 39: Are Automated Debugging Techniques Actually Helping Programmers

40

Performing further studies

Does different granularity work better for inspection? Documents? Methods?

How does different interfaces or visualizations impact technique?

Do other automated debugging techniques fare any better?

Page 40: Are Automated Debugging Techniques Actually Helping Programmers

How do developers use a ranked list?

Is perfect bug understanding realistic?

Are Automated Debugging Tools Helpful?

Human studies, human studies, human studies!

Page 41: Are Automated Debugging Techniques Actually Helping Programmers

42

64,000,000 miles800,000 miles

1969 2004

35 years of Scientific Progress

Page 42: Are Automated Debugging Techniques Actually Helping Programmers

43

352 LOC(median 8 programs)

63.5 LOC(median 4 programs)

1981 2011

30 years of Scientific Progress

30 years