Debugging is
Hard
2
[ICSE ‘13 Nguyen]
•Sig. amt. of time
•Root cause found, fixing difficult
[ESEC/FSE ’09 Ashok]
•Sig. amt. of time
•Similar bugs debugged
What’s wrong
with my code?
But….. they are
underusedThey are known for..
1.producing many warnings …. AND
2.Many of them are false positives…. AND
3.Ways In which warnings are presented
(counterintuitive, confusion)
4
[ICSE ‘13 Johnson]
Oh my god….. This piece of
code looks so similar to
mine..
7
So, what does it means by many
recurring questions?
Many developers are facing many similar issues…
Challenges for developers?
• Needs frequent visit
• Rapid growth of crowd knowledge
• May not even know you have problem
17
Title & Element
Filters
Title & Element
Filters
Non-Essential Code
Filters
Non-Essential Code
Filters
Similarities FiltersSimilarities Filters
Stack Overflow Question Title
Target Clone
18
Title & Element
Filters
Title & Element
Filters
Non-Essential Code
Filters
Non-Essential Code
Filters
Similarities FiltersSimilarities Filters
Target Clone
Stack Overflow Answer Code Fragment
• [ICSE ‘11 Kawrykow]
• Non-essential code-changes
• Can cause inaccurate representation of software development effort
19
Title & Element
Filters
Title & Element
Filters
Non-Essential Code
Filters
Non-Essential Code
Filters
Similarities FiltersSimilarities Filters
• SO Clone < 4
• Overridden methods
• Single Statement Block
20
Title & Element
Filters
Title & Element
Filters
Non-Essential Code
Filters
Non-Essential Code
Filters
Similarities FiltersSimilarities Filters
21
Similarity Filter #1
•SO Clone/Answer Ratio > 0.8
Similarity Filter #2
•SO Clone/Answer Ratio > 0.37
•Target Clone/Answer Ratio > 0.25
Title & Element
Filters
Title & Element
Filters
Non-Essential Code
Filters
Non-Essential Code
Filters
Similarities FiltersSimilarities Filters
RQ1: (Detectability) How many warnings
can be
detected using our technique?
24
RQ2: (Confirmed Bugs) How many warnings from
our technique are confirmed as bugs by developers?
RQ3: (Comparison)
1) How many confirmed bugs can also be detected in FindBugs,
JLint and PMD, &
2) How many bugs are missing which can be found in FindBugs,
JLint and PMD??
29
JFreeChart
JStudyPlanner
Thanks for the feedback. I agree with your suggestion and will fix these cases…
- David Gilbert (Project Leader)
Thank you very much for your message. This is very valuable to me… Once again your
research is very helpful. I’ll do all the checks in service objects to handle
NullPointerExceptions.
- Oleg Lukin (Project Owner)
LIMITATIONS AND THREATS TO
VALIDITY
• Data Type Insensitive
• Code Terms outside Code Blocks
• Evaluation of warnings from other Static Analysis tools
32
• New way to debug your code
• Find bugs within well maintained open source code
• Locates and explains the bug
• Provide the crowd’s solution with explanation.
33
Key Takeaways