Dormant bug v2

24
An Empirical Study of Dormant Bugs Tse-Hsun(Peter) Chen Meiyappan Nagappan Emad Shihab Ahmed E. Hassan 1

Transcript of Dormant bug v2

Page 1: Dormant bug v2

1

An Empirical Study of Dormant Bugs

Tse-Hsun(Peter) Chen Meiyappan Nagappan Emad Shihab Ahmed E. Hassan

Page 2: Dormant bug v2

2

Most studies focus on post-release bugs

Version A Version B

File A

Bug 1 Bug 2Bugs Discovered!Assign Bugs to File A

Page 3: Dormant bug v2

3

Some bugs may remain dormant for a long time

Version A Version CVersion B

File A

Bug is waken up, but is counted as post-release bug for Version B

Zzz… Zzz…

Page 4: Dormant bug v2

4

What are dormant bugs?

Version BVersion A Version C Today

File A

Bug 1

File B

Bug 2 Bug 3

Bugs introduced in Version A

Not a dormant bug

Bug 2

Dormant bug (discovered one version after it was introduced )

Dormant bug (discovered many versions after it was introduced )

Bug 1

Zzz..Zzz..

Bug 3

Page 5: Dormant bug v2

5

Dormant bugs affect perceived software quality

VersionA Version B

Version A has 5 bugs Version B has 10 bugs

Page 6: Dormant bug v2

6

Dormant bugs affect perceived software quality

VersionA Version B

Version A has 5 bugs Version B has 10 bugs

Version B has 8 dormant bugs!

These dormant bugs were introduced in version A

Page 7: Dormant bug v2

Case study on 20 systems

7

Studied 20 open-source systems in the Apache FoundationAnalyzed all versions

System LOCs: 61K ~ 1.5M

# dormant bugs29%

# non-dormant

bugs71%

Page 8: Dormant bug v2

8

Many bugs are actually dormant bugs

VersionA Version C

Bug introduced in Version A

33% of bugs become dormant bugs!

VersionABugs reported in Version A

Many post-release bugs are actually introduced in MUCH EARLIER versions!

20% of bugs are dormant bugs from prior versions

Page 9: Dormant bug v2

RQ1: How quickly are dormant bugs fixed?

Research questions

9

RQ2: What is the size of a dormant bug fix?

RQ3: Who fixes dormant bugs?

RQ4: What are the root causes of dormant bug fixes?

Page 10: Dormant bug v2

RQ1: How quickly are dormant bugs fixed?

Research questions

10

RQ2: What is the size of a dormant bug fix?

RQ3: Who fixes dormant bugs?

RQ4: What are the root causes of dormant bug fixes?

Page 11: Dormant bug v2

Dormant bugs are fixed faster and the fixes are larger

11

Dormant Non-dormant

Take 5 days to fix (median)

Takes 60% more time to fix

Dormant Non-dormant

Fix size is 19 LOC (median)

Fix size is 50% smaller

Page 12: Dormant bug v2

RQ1: How quickly are dormant bugs fixed?

Research questions

12

RQ2: What is the size of a dormant bug fix?

RQ3: Who fixes dormant bugs?

RQ4: What are the root causes of dormant bug fixes?

Page 13: Dormant bug v2

RQ1: How quickly are dormant bugs fixed?

Research questions

13

RQ2: What is the size of a dormant bug fix?

RQ3: Who fixes dormant bugs?

RQ4: What are the root causes of dormant bug fixes?

Page 14: Dormant bug v2

Dormant fixers are more experienced

14

Dormant Non-dormant

# of

prio

r com

mits

of b

ug fi

xers

Page 15: Dormant bug v2

RQ1: How quickly are dormant bugs fixed?

Research questions

15

RQ2: What is the size of a dormant bug fix?

RQ3: Who fixes dormant bugs?

RQ4: What are the root causes of dormant bug fixes?

Page 16: Dormant bug v2

RQ1: How quickly are dormant bugs fixed?

Research questions

16

RQ2: What is the size of a dormant bug fix?

RQ3: Who fixes dormant bugs?

RQ4: What are the root causes of dormant bug fixes?

Page 17: Dormant bug v2

Manual study of the root causes

17

All bugs

Randomly sampled 357 dormant bugs and 357 non-dormant bugs

Manually classify the bugs

Page 18: Dormant bug v2

Manually-derived root causes

18% o

f bug

s be

long

to e

ach

man

ually

-der

ived

root

cau

se

Cornercases

Control flow

MissingFeatures

Process-ing

Implemen-tation

Stacked barplot of:

Page 19: Dormant bug v2

Dormant bugs are different from non-dormant bugs

19

We should consider dormant bugs in future studies to avoid bias

They are different!

Page 20: Dormant bug v2

20

Page 21: Dormant bug v2

21

Page 22: Dormant bug v2

22

Page 23: Dormant bug v2

23

Page 24: Dormant bug v2

24