predicting bugs using antipatterns
TRANSCRIPT
![Page 1: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/1.jpg)
Ehsan Salamati Taba, Foutse Khomh, Ying Zou, Meiyappan Nagappan,
Ahmed E. Hassan
1
![Page 2: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/2.jpg)
2
![Page 3: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/3.jpg)
Predict Bugs
Model
3
Past Defects, History of Churn (Zimmermann, Hassan et al.)
Topic Modeling (Chen et al.)
![Page 4: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/4.jpg)
4
![Page 5: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/5.jpg)
not technically incorrect and don't prevent a system from functioning
weaknesses in design
5
![Page 6: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/6.jpg)
Indicate a deeper
problem in the system
6
![Page 7: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/7.jpg)
Antipatterns indicate weaknesses in the design that may increase the risk for bugs in the future. (Fowler 1999)
7
![Page 8: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/8.jpg)
CVS Repository Mining Source Code
Repositories
Detecting Antipatterns
Mining Bug Repositories Bugzilla
Calculating Metrics Analyzing
RQ1
RQ2
RQ3
9
![Page 9: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/9.jpg)
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
![Page 10: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/10.jpg)
12
13 different antipatterns
DECOR (Moha et al.)
# of Antipatterns
# Files
Systems #Antipatterns
Eclipse 273,766
ArgoUML 15,100
![Page 11: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/11.jpg)
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
![Page 12: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/12.jpg)
Density of bugs in the files with antipatterns
and the other files without antipatterns is the same.
15
![Page 13: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/13.jpg)
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
![Page 14: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/14.jpg)
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
![Page 15: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/15.jpg)
Average Number of Antipatterns (ANA)
Antipattern Cumulative Pairwise Differences (ACPD)
18
Antipattern Recurrence Length(ARL)
Antipattern Complexity Metric (ACM)
![Page 16: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/16.jpg)
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
![Page 17: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/17.jpg)
20
![Page 18: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/18.jpg)
21
Provide additional explanatory power over traditional metrics
ARL shows the biggest improvement
![Page 19: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/19.jpg)
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
![Page 20: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/20.jpg)
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
![Page 21: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/21.jpg)
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
![Page 22: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/22.jpg)
F-m
easu
re
25
ARL can improve cross-system bug prediction on the two studied systems
![Page 23: Predicting bugs using antipatterns](https://reader033.vdocuments.mx/reader033/viewer/2022042714/556624a4d8b42a61238b4e47/html5/thumbnails/23.jpg)