Wcre2012 patterns slides (1)

31
An Empirical Study of the Effect of File Editing Patterns on Software Quality Feng Zhang, Foutse Khomh, Ying Zou and Ahmed E. Hassan

Transcript of Wcre2012 patterns slides (1)

Page 1: Wcre2012 patterns slides (1)

An Empirical Study of the

Effect of File Editing Patterns

on Software Quality

Feng Zhang, Foutse Khomh, Ying Zou

and Ahmed E. Hassan

Page 2: Wcre2012 patterns slides (1)

2

Do developers follow some file editing patterns?

Concurrent?

Extended?

Interrupted?

File Editing

Page 3: Wcre2012 patterns slides (1)

3

Concurrent?

Extended?

Interrupted?

?

?

?

What’s the impact on software quality?

File Editing

Page 4: Wcre2012 patterns slides (1)

4

Examples

Page 5: Wcre2012 patterns slides (1)

5

1. Example on concurrent editing

BugzillaTaskEditorPage.java

Frank Steffen Pingel David Green

Page 6: Wcre2012 patterns slides (1)

6

1. Concurrent Editing

Several developers edit the same file concurrently.

Page 7: Wcre2012 patterns slides (1)

7

2. Example on parallel editing

AbstractTaskEditorPage.java

Frank

TasksUiPlugin.java PlanningPerspectiveFactory.java

Page 8: Wcre2012 patterns slides (1)

8

2. Parallel Editing

Multiple files are edited in parallel by the same developer.

Page 9: Wcre2012 patterns slides (1)

9

3. Example on extended editing

DiscoveryViewer.java

4.5 hours

Mylyn Project

1.25 hours

3.6 times

Page 10: Wcre2012 patterns slides (1)

10

3. Extended Editing

Developers spend longer time editing a file. (threshold: third quantile)

Page 11: Wcre2012 patterns slides (1)

11

4. Example on interrupted editing

TaskCompareDialog.java

338 hours

Mylyn Project

2 hours

164 times

Page 12: Wcre2012 patterns slides (1)

12

4. Interrupted Editing

There is a longer idle period during the editing of a file.

(threshold: third quantile)

Page 13: Wcre2012 patterns slides (1)

13

File Editing Patterns Summary

1. Concurrent Editing

2. Parallel Editing

3. Extended Editing

4. Interrupted Editing

Page 14: Wcre2012 patterns slides (1)

14

How to evaluate the effect of

file editing patterns?

Time

Split Date Density of Future Bug

File Editing Patterns

Page 15: Wcre2012 patterns slides (1)

15

Subject Systems

3,883 logs

2,722 bugs

606 bugs

524 bugs

793 logs

638 logs

Mylyn

Eclipse Platform

PDE

Page 16: Wcre2012 patterns slides (1)

16

Description of Data

Split Date: 2011-01-01

119 developers

98 bugs

2,140 files

5,070 CVS logs

Page 17: Wcre2012 patterns slides (1)

17

1. Recovering File Edit History

Data Processing

2. Recovering File Change History

3. Identifying File Editing Patterns

bug Id

density of bug

Page 18: Wcre2012 patterns slides (1)

18

Research Questions

RQ1: Are there different file editing patterns?

RQ2: Do file editing patterns lead to more bugs?

RQ3: Do interactions among file editing patterns lead to more bugs?

Page 19: Wcre2012 patterns slides (1)

19

RQ1: Are there different file editing patterns?

Occurrences of file editing patterns and their interactions

0

500

1000

1500

2000

2500

1. Concurrent

2. Parallel

3. Extended

4. Interrupted

File editing patterns do exist

Combinations of patterns

Single Pattern

No

Patt

ern

Page 20: Wcre2012 patterns slides (1)

20

RQ2: Do concurrent editing pattern lead to more bugs?

Odds Ratio of two groups:

NC: no concurrent editing

C: concurrent editing

2.1 times more likely to experience a future bug if concurrent editing pattern happens

Page 21: Wcre2012 patterns slides (1)

21

RQ2: Level of involvement in concurrent editing pattern

Definition of Level average number of developers involved in a concurrent editing of a file.

0

1

2

3

No Pattern ≤3rd quantile > 3rd quantile

2.4* 1.6 Statistically significant

Not statistically significant

Page 22: Wcre2012 patterns slides (1)

22

RQ2: Do parallel editing patterns lead to more bugs?

Odds Ratio of two groups:

NP: no parallel editing

P: parallel editing

1.9 times more likely to experience a future bug if parallel editing pattern happens

Page 23: Wcre2012 patterns slides (1)

23

RQ2: Level of involvement in parallel editing pattern

Definition of Level average number of files edited in parallel with a file.

0

1

2

3

4

5

No Pattern ≤3rd quantile > 3rd quantile

1.3

3.8* Statistically significant

Not statistically significant

Page 24: Wcre2012 patterns slides (1)

24

RQ2: Do extended editing patterns lead to more bugs?

1.9 times more likely to experience a future bug if extended editing pattern happens

Odds Ratio of two groups:

NE: no extended editing

E: extended editing

Page 25: Wcre2012 patterns slides (1)

25

RQ2: Level of involvement in extended pattern

Definition of Level average editing time of a file.

0

0.5

1

1.5

2

No Pattern ≤3rd quantile > 3rd quantile

1.0

1.9* Statistically significant

Not statistically significant

Page 26: Wcre2012 patterns slides (1)

26

RQ2: Do interrupted editing patterns lead to more bugs?

1.6 times more likely to experience a future bug if interrupted editing pattern happens

Odds Ratio of two groups:

NI: no interrupted editing

I: interrupted editing

Page 27: Wcre2012 patterns slides (1)

27

RQ2: Level of involvement in interrupted pattern

Definition of Level average interruption time of a file.

0

0.5

1

1.5

2

No Pattern ≤3rd quantile > 3rd quantile

1.2 1.8*

Statistically significant

Not statistically significant

Page 28: Wcre2012 patterns slides (1)

28

RQ3: Do interactions among file editing patterns lead to more bugs?

Odds ratio of 16 groups.

0

1

2

3

4

5

6

1. Concurrent

2. Parallel

3. Extended

4. Interrupted

Combinations of patterns are more risky than single pattern

Combinations of patterns

Single Pattern

No

Patt

ern

Page 29: Wcre2012 patterns slides (1)

29

Conclusion

Page 30: Wcre2012 patterns slides (1)

30

Concurrent Parallel

Extended Interrupted

2.1 Odds Ratio 1.9 Odds

Ratio

1.9 Odds Ratio 1.6 Odds

Ratio

Page 31: Wcre2012 patterns slides (1)

31

Average Bug Density:

as high as 1.7 times

Single v.s. Interactions