Cues for Better Scent in Debugging

48
Cues for Better Scent in Debugging Rui Abreu Dept. of Informatics Engineering University of Porto Portugal

Transcript of Cues for Better Scent in Debugging

Page 1: Cues for Better Scent in Debugging

Cues for Better Scent in Debugging

Rui AbreuDept. of Informatics Engineering

University of PortoPortugal

Page 2: Cues for Better Scent in Debugging

History:The birth of debugging

Your guess?

Page 3: Cues for Better Scent in Debugging
Page 4: Cues for Better Scent in Debugging
Page 5: Cues for Better Scent in Debugging
Page 6: Cues for Better Scent in Debugging
Page 7: Cues for Better Scent in Debugging
Page 8: Cues for Better Scent in Debugging
Page 9: Cues for Better Scent in Debugging
Page 10: Cues for Better Scent in Debugging
Page 11: Cues for Better Scent in Debugging
Page 12: Cues for Better Scent in Debugging
Page 13: Cues for Better Scent in Debugging
Page 14: Cues for Better Scent in Debugging
Page 15: Cues for Better Scent in Debugging
Page 16: Cues for Better Scent in Debugging
Page 17: Cues for Better Scent in Debugging

Thanks to Alex Thanks to Alex OrsoOrso

Page 18: Cues for Better Scent in Debugging

Can we do this Can we do this automatically?automatically?

Thanks to Alex Thanks to Alex OrsoOrso

Page 19: Cues for Better Scent in Debugging
Page 20: Cues for Better Scent in Debugging
Page 21: Cues for Better Scent in Debugging
Page 22: Cues for Better Scent in Debugging
Page 23: Cues for Better Scent in Debugging
Page 24: Cues for Better Scent in Debugging
Page 25: Cues for Better Scent in Debugging
Page 26: Cues for Better Scent in Debugging
Page 27: Cues for Better Scent in Debugging
Page 28: Cues for Better Scent in Debugging
Page 29: Cues for Better Scent in Debugging
Page 30: Cues for Better Scent in Debugging
Page 31: Cues for Better Scent in Debugging
Page 32: Cues for Better Scent in Debugging
Page 33: Cues for Better Scent in Debugging
Page 34: Cues for Better Scent in Debugging
Page 35: Cues for Better Scent in Debugging
Page 36: Cues for Better Scent in Debugging
Page 37: Cues for Better Scent in Debugging

Diagnostic Performance

Page 38: Cues for Better Scent in Debugging
Page 39: Cues for Better Scent in Debugging

39

Are we done?•Best performing techniques still

require the tester to inspect 10% of the code...•100 LOC 10 LOC•10,000 LOC 1,000 LOC•1000,000 LOC 10,000 LOC

Page 40: Cues for Better Scent in Debugging

40

Metrics•Are we measuring the right thing?•rank-based

•PDG-based

Page 41: Cues for Better Scent in Debugging

41

Case Studies (NXP/PSC)

Page 42: Cues for Better Scent in Debugging

42

Human studies•A. Orso et al observed that there is a

lack of:

Page 43: Cues for Better Scent in Debugging

43

Why do we need human studies?

•Do developers follow the ranking?

•Does perfect bug understanding exist?•How can we quantify isolation

efforts?

Page 44: Cues for Better Scent in Debugging

44

Ecosystem in need•Wide adoption will only be possible

if there is a framework which provides•testing functionalities•debugging capabilities•integrated in an IDE

Better Cues for Debugging – a Better Cues for Debugging – a frameworkframework

Check it out at www.gzoltar.orgCheck it out at www.gzoltar.org

Page 45: Cues for Better Scent in Debugging

45

Interested?•Do you wanna try it out?•We are always interested in

receiving feedback•Email José Carlos Campos to

participate•[email protected]

•Thanks!

Page 46: Cues for Better Scent in Debugging

46

Conclusions•History of debugging

•Spectrum-based reasoning

•Human studies

Page 47: Cues for Better Scent in Debugging

47

Open Research Questions• Can we automatically decide if a test fails?

• Using program invariants• Sort of replace asserts in JUnit tests

• Can we automatically suggest fixes?• Other intuitive visualisations?• How to reduce the overall overhead?• Can we apply this principles to Web/Mobile

envs?• Self-healing: Architecture-based Run-time

fault localization (NSF project with CMU)

Page 48: Cues for Better Scent in Debugging

Show time