predicting bugs using antipatterns

Post on 28-May-2015

591 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Ehsan Salamati Taba, Foutse Khomh, Ying Zou, Meiyappan Nagappan,

Ahmed E. Hassan

1

2

Predict Bugs

Model

3

Past Defects, History of Churn (Zimmermann, Hassan et al.)

Topic Modeling (Chen et al.)

4

not technically incorrect and don't prevent a system from functioning

weaknesses in design

5

Indicate a deeper

problem in the system

6

Antipatterns indicate weaknesses in the design that may increase the risk for bugs in the future. (Fowler 1999)

7

CVS Repository Mining Source Code

Repositories

Detecting Antipatterns

Mining Bug Repositories Bugzilla

Calculating Metrics Analyzing

RQ1

RQ2

RQ3

9

10

Systems Release(#) Churn LOCs

Eclipse 2.0 - 3.3.1(12) 148,454 26,209,669

ArgoUML 0.12 - 0.26.2(9) 21,427 2,025,730

Studied Systems Studied Systems

12

13 different antipatterns

DECOR (Moha et al.)

# of Antipatterns

# Files

Systems #Antipatterns

Eclipse 273,766

ArgoUML 15,100

RQ1: Do antipatterns affect the density of bugs in files?

RQ2: Do the proposed antipattern based metrics

provide additional explanatory power over traditional metrics?

RQ3: Can we improve traditional bug prediction

models with antipatterns information?

14

Density of bugs in the files with antipatterns

and the other files without antipatterns is the same.

15

16

Systems Releases(#) DA – DNA> 0 p-value<0.05

Eclipse 12 8 8

ArgoUML 9 6 6

Files with Antipatterns

Density of Bugs

Files without Antipatterns

Density of Bugs

RQ1: Do antipatterns affect the density of bugs in files?

RQ2: Do the proposed antipattern based metrics

provide additional explanatory power over traditional metrics?

RQ3: Can we improve traditional bug prediction

models with antipatterns information?

17

Average Number of Antipatterns (ANA)

Antipattern Cumulative Pairwise Differences (ACPD)

18

Antipattern Recurrence Length(ARL)

Antipattern Complexity Metric (ACM)

19

1.0 2.0 3.0 4.0 5.0 6.0

a.java

b.java

c.java

3 4 0 2 1 3

4 5 1 0 0 3

0 6 5 4 5 4

ANA(a.java) =2.16, ARL(a.java) = 18.76, ACPD(a.java) = 0

20

21

Provide additional explanatory power over traditional metrics

ARL shows the biggest improvement

RQ1: Do antipatterns affect the density of bugs in files?

RQ2: Do the proposed antipattern based metrics

provide additional explanatory power over traditional metrics?

RQ3: Can we improve traditional bug prediction

models with antipatterns information?

22

Step-wise analysis 1) Removing Independent

Variables 2) Collinearity Analysis

23

Metric name Description

LOC Source lines of codes

MLOC Executable lines of codes

PAR Number of parameters

NOF Number of attributes

NOM Number of methods

NOC Number of children

VG Cyclomatic complexity

DIT Depth of inheritance tree

LCOM Lack of cohesion of methods

NOT Number of classes

WMC Number of weighted methods per class

PRE Number of pre-released bugs

Churn Number of lines of code added modified or deleted

0

2

4

6

8

Churn PRE LOC MLOC NOT NOF NOM ACM ACPD ARL

ArgoUML

24

02468

1012

Churn PRE LOC MLOC NOT NOF NOM ACM ACPD ARL

Eclipse

ARL remained statistically significant and had a low collinearity with other metrics

# Ve

rsio

ns

# Ve

rsio

ns

F-m

easu

re

25

ARL can improve cross-system bug prediction on the two studied systems

top related