SlideShare a Scribd company logo
Predicting Defects for Eclipse for Eclipse ,[object Object],[object Object]
Summary Project   Eclipse (eclipse.org) Content Defect counts Complexity metrics Releases 2.0, 2.1, and 3.0 Level Packages and files URL www.st.cs.uni-sb.de/softevo/ More data Eclipse source code
Data Source Bugs Changes
Identifying Fixes ,[object Object],[object Object],[object Object],[object Object],Bugs Changes
Mapping Bugs ,[object Object],[object Object],[object Object],Bugs Changes
Eclipse Bugs
Obtaining Data
 
[object Object],[object Object],[object Object],[object Object],[object Object]
Predictions at Work
Eclipse Bug Data <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <!-- comments --> <defects project=&quot;eclipse&quot; release=&quot;2.0&quot; dataversion=&quot;1.0&quot;> <plug-in name=&quot;platform-launcher&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <package name=&quot;org.eclipse&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <package name=&quot;org.eclipse.core&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <package name=&quot;org.eclipse.core.launcher&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <compilationunit dir=&quot;/platform-launcher/library/&quot; base=&quot;Main.java&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot;/> </counts> </compilationunit> </package> </package> </package> </plug-in>
Eclipse Bug Data ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <!-- comments --> <defects project=&quot;eclipse&quot; release=&quot;2.0&quot; dataversion=&quot;1.0&quot;> <plug-in name=&quot;platform-launcher&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <package name=&quot;org.eclipse&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <package name=&quot;org.eclipse.core&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <package name=&quot;org.eclipse.core.launcher&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <compilationunit dir=&quot;/platform-launcher/library/&quot; base=&quot;Main.java&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot;/> </counts> </compilationunit> </package> </package> </package> </plug-in>
Eclipse Bugs
Where do bugs come from?
Is it the Developers? Does experience matter? Bug density correlates with experience!
How about Testing? Does  code coverage  predict bug density? Yes –  the more tests,  the more bugs!
History? I found lots of bugs here.  Will there be more? Yes!
How about Metrics? Do  code metrics  predict bug density? Yes! (but only with history)
Syntactic Tokens? Which  tokens predict bug density? imports • extends • implements
Eclipse Imports import org.eclipse.jdt.internal.compiler.lookup.*; import org.eclipse.jdt.internal.compiler.*; import org.eclipse.jdt.internal.compiler.ast.*; import org.eclipse.jdt.internal.compiler.util.*; ... import org.eclipse.pde.core.*; import org.eclipse.jface.wizard.*; import org.eclipse.ui.*; 14% of all components importing  ui show a post-release defect 71% of all components importing  compiler show a post-release defect Joint work with Adrian Schröter • Tom Zimmermann
Eclipse Imports Correlation with failure Correlation with success import org.eclipse.jdt.internal.compiler.lookup.*; import org.eclipse.jdt.internal.compiler.*; import org.eclipse.jdt.internal.compiler.ast.*; import org.eclipse.jdt.internal.compiler.util.*; ... import org.eclipse.pde.core.*; import org.eclipse.jface.wizard.*; import org.eclipse.ui.*;
What makes code buggy in the first place?
Eclipse Bug Data ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <!-- comments --> <defects project=&quot;eclipse&quot; release=&quot;2.0&quot; dataversion=&quot;1.0&quot;> <plug-in name=&quot;platform-launcher&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <package name=&quot;org.eclipse&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <package name=&quot;org.eclipse.core&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <package name=&quot;org.eclipse.core.launcher&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <compilationunit dir=&quot;/platform-launcher/library/&quot; base=&quot;Main.java&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot;/> </counts> </compilationunit> </package> </package> </package> </plug-in>

More Related Content

What's hot

Python in Test automation
Python in Test automationPython in Test automation
Python in Test automation
Krishnana Sreeraman
 
OCP Java SE 8 Exam - Sample Questions - Java Streams API
OCP Java SE 8 Exam - Sample Questions - Java Streams APIOCP Java SE 8 Exam - Sample Questions - Java Streams API
OCP Java SE 8 Exam - Sample Questions - Java Streams API
Ganesh Samarthyam
 
Lucene application
Lucene applicationLucene application
Lucene application
jagruti_bhudiya
 
Android Meetup Slovenia #5 - Don't go crashing my heart by Zeljko Plesac, Inf...
Android Meetup Slovenia #5 - Don't go crashing my heart by Zeljko Plesac, Inf...Android Meetup Slovenia #5 - Don't go crashing my heart by Zeljko Plesac, Inf...
Android Meetup Slovenia #5 - Don't go crashing my heart by Zeljko Plesac, Inf...
Infinum
 
Con-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With JavassistCon-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With Javassist
Anton Arhipov
 
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
Marcel Bruch
 
Intro to front-end testing
Intro to front-end testingIntro to front-end testing
Intro to front-end testing
Juriy Zaytsev
 
Basic buffer overflow part1
Basic buffer overflow part1Basic buffer overflow part1
Basic buffer overflow part1
Payampardaz
 
Test driven Infrastructure development with Ansible and Molecule
Test driven Infrastructure development with Ansible and MoleculeTest driven Infrastructure development with Ansible and Molecule
Test driven Infrastructure development with Ansible and Molecule
Serena Lorenzini
 
Async await...oh wait!
Async await...oh wait!Async await...oh wait!
Async await...oh wait!
Thomas Pierrain
 
Modern Python Testing
Modern Python TestingModern Python Testing
Modern Python Testing
Alexander Loechel
 
JDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go Wrong
JDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go WrongJDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go Wrong
JDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go Wrong
PROIDEA
 
Static Code Analysis: Keeping the Cost of Bug Fixing Down
Static Code Analysis:  Keeping the Cost of Bug Fixing DownStatic Code Analysis:  Keeping the Cost of Bug Fixing Down
Static Code Analysis: Keeping the Cost of Bug Fixing Down
Andrey Karpov
 
Writing simple buffer_overflow_exploits
Writing simple buffer_overflow_exploitsWriting simple buffer_overflow_exploits
Writing simple buffer_overflow_exploits
D4rk357 a
 
Tools and Virtualization to Manage our Operations at Puppet Labs - PuppetConf...
Tools and Virtualization to Manage our Operations at Puppet Labs - PuppetConf...Tools and Virtualization to Manage our Operations at Puppet Labs - PuppetConf...
Tools and Virtualization to Manage our Operations at Puppet Labs - PuppetConf...
Puppet
 
JUnit 5 - The Next Generation
JUnit 5 - The Next GenerationJUnit 5 - The Next Generation
JUnit 5 - The Next Generation
Kostadin Golev
 
Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...
Marcel Bruch
 
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
Marco Balduzzi
 
The journey of asyncio adoption in instagram
The journey of asyncio adoption in instagramThe journey of asyncio adoption in instagram
The journey of asyncio adoption in instagram
Jimmy Lai
 
React Testing
React TestingReact Testing
React Testing
KavithaVikas
 

What's hot (20)

Python in Test automation
Python in Test automationPython in Test automation
Python in Test automation
 
OCP Java SE 8 Exam - Sample Questions - Java Streams API
OCP Java SE 8 Exam - Sample Questions - Java Streams APIOCP Java SE 8 Exam - Sample Questions - Java Streams API
OCP Java SE 8 Exam - Sample Questions - Java Streams API
 
Lucene application
Lucene applicationLucene application
Lucene application
 
Android Meetup Slovenia #5 - Don't go crashing my heart by Zeljko Plesac, Inf...
Android Meetup Slovenia #5 - Don't go crashing my heart by Zeljko Plesac, Inf...Android Meetup Slovenia #5 - Don't go crashing my heart by Zeljko Plesac, Inf...
Android Meetup Slovenia #5 - Don't go crashing my heart by Zeljko Plesac, Inf...
 
Con-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With JavassistCon-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With Javassist
 
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
 
Intro to front-end testing
Intro to front-end testingIntro to front-end testing
Intro to front-end testing
 
Basic buffer overflow part1
Basic buffer overflow part1Basic buffer overflow part1
Basic buffer overflow part1
 
Test driven Infrastructure development with Ansible and Molecule
Test driven Infrastructure development with Ansible and MoleculeTest driven Infrastructure development with Ansible and Molecule
Test driven Infrastructure development with Ansible and Molecule
 
Async await...oh wait!
Async await...oh wait!Async await...oh wait!
Async await...oh wait!
 
Modern Python Testing
Modern Python TestingModern Python Testing
Modern Python Testing
 
JDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go Wrong
JDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go WrongJDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go Wrong
JDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go Wrong
 
Static Code Analysis: Keeping the Cost of Bug Fixing Down
Static Code Analysis:  Keeping the Cost of Bug Fixing DownStatic Code Analysis:  Keeping the Cost of Bug Fixing Down
Static Code Analysis: Keeping the Cost of Bug Fixing Down
 
Writing simple buffer_overflow_exploits
Writing simple buffer_overflow_exploitsWriting simple buffer_overflow_exploits
Writing simple buffer_overflow_exploits
 
Tools and Virtualization to Manage our Operations at Puppet Labs - PuppetConf...
Tools and Virtualization to Manage our Operations at Puppet Labs - PuppetConf...Tools and Virtualization to Manage our Operations at Puppet Labs - PuppetConf...
Tools and Virtualization to Manage our Operations at Puppet Labs - PuppetConf...
 
JUnit 5 - The Next Generation
JUnit 5 - The Next GenerationJUnit 5 - The Next Generation
JUnit 5 - The Next Generation
 
Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...
 
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
 
The journey of asyncio adoption in instagram
The journey of asyncio adoption in instagramThe journey of asyncio adoption in instagram
The journey of asyncio adoption in instagram
 
React Testing
React TestingReact Testing
React Testing
 

Viewers also liked

Crisantemo
CrisantemoCrisantemo
Crisantemoguest8acff7
 
soirée étudiantes 2
soirée étudiantes 2soirée étudiantes 2
soirée étudiantes 2guestfe9508
 
Airbags B M W
Airbags B M WAirbags B M W
Airbags B M Wguestdfa9d4
 
P2S J.Perrin Bilan2008
P2S J.Perrin Bilan2008P2S J.Perrin Bilan2008
P2S J.Perrin Bilan2008DFIE Lyon
 
Meilleuresphotosgags2
Meilleuresphotosgags2Meilleuresphotosgags2
Meilleuresphotosgags2
lavachefaitmeuh
 
B2II
B2IIB2II
PiraterĂ­a del software cracker hacker
PiraterĂ­a del software cracker   hacker PiraterĂ­a del software cracker   hacker
PiraterĂ­a del software cracker hacker
maria291289
 
Lori Rhodes' Resume
Lori Rhodes' ResumeLori Rhodes' Resume
Lori Rhodes' ResumeLori Rhodes
 
La vie d Unhomme 1
La vie d Unhomme 1La vie d Unhomme 1
La vie d Unhomme 1lavachefaitmeuh
 
Sapeur teste
Sapeur testeSapeur teste
Sapeur teste
RevistaPPGA
 
DanutZbarcea-article-Vision no 67
DanutZbarcea-article-Vision no 67DanutZbarcea-article-Vision no 67
DanutZbarcea-article-Vision no 67Danut Zbarcea
 
HĂ´tel Les quatre fleurs
HĂ´tel Les quatre fleurs HĂ´tel Les quatre fleurs
HĂ´tel Les quatre fleurs
Griselda Sassola
 
rapport cours projet - overview
rapport cours projet - overviewrapport cours projet - overview
rapport cours projet - overviewJeanne Helluy
 
Site Histoire de L'Ecole Centrale de Lyon Présentation, Bilan et évolution
Site Histoire de L'Ecole Centrale de Lyon  Présentation,  Bilan et évolutionSite Histoire de L'Ecole Centrale de Lyon  Présentation,  Bilan et évolution
Site Histoire de L'Ecole Centrale de Lyon Présentation, Bilan et évolution
Alain Marois
 
Leshomme
LeshommeLeshomme
Leshomme
lavachefaitmeuh
 
Troisgars
TroisgarsTroisgars
Troisgarscracodan
 
Coccinelledan
CoccinelledanCoccinelledan
Coccinelledanzet
 
HĂ´tel Concorde
HĂ´tel Concorde HĂ´tel Concorde
HĂ´tel Concorde
Griselda Sassola
 
Josemogollon conflictos ambientales
Josemogollon conflictos ambientalesJosemogollon conflictos ambientales
Josemogollon conflictos ambientales
josemogollonuft
 

Viewers also liked (20)

Crisantemo
CrisantemoCrisantemo
Crisantemo
 
soirée étudiantes 2
soirée étudiantes 2soirée étudiantes 2
soirée étudiantes 2
 
Airbags B M W
Airbags B M WAirbags B M W
Airbags B M W
 
P2S J.Perrin Bilan2008
P2S J.Perrin Bilan2008P2S J.Perrin Bilan2008
P2S J.Perrin Bilan2008
 
Meilleuresphotosgags2
Meilleuresphotosgags2Meilleuresphotosgags2
Meilleuresphotosgags2
 
B2II
B2IIB2II
B2II
 
Natures
NaturesNatures
Natures
 
PiraterĂ­a del software cracker hacker
PiraterĂ­a del software cracker   hacker PiraterĂ­a del software cracker   hacker
PiraterĂ­a del software cracker hacker
 
Lori Rhodes' Resume
Lori Rhodes' ResumeLori Rhodes' Resume
Lori Rhodes' Resume
 
La vie d Unhomme 1
La vie d Unhomme 1La vie d Unhomme 1
La vie d Unhomme 1
 
Sapeur teste
Sapeur testeSapeur teste
Sapeur teste
 
DanutZbarcea-article-Vision no 67
DanutZbarcea-article-Vision no 67DanutZbarcea-article-Vision no 67
DanutZbarcea-article-Vision no 67
 
HĂ´tel Les quatre fleurs
HĂ´tel Les quatre fleurs HĂ´tel Les quatre fleurs
HĂ´tel Les quatre fleurs
 
rapport cours projet - overview
rapport cours projet - overviewrapport cours projet - overview
rapport cours projet - overview
 
Site Histoire de L'Ecole Centrale de Lyon Présentation, Bilan et évolution
Site Histoire de L'Ecole Centrale de Lyon  Présentation,  Bilan et évolutionSite Histoire de L'Ecole Centrale de Lyon  Présentation,  Bilan et évolution
Site Histoire de L'Ecole Centrale de Lyon Présentation, Bilan et évolution
 
Leshomme
LeshommeLeshomme
Leshomme
 
Troisgars
TroisgarsTroisgars
Troisgars
 
Coccinelledan
CoccinelledanCoccinelledan
Coccinelledan
 
HĂ´tel Concorde
HĂ´tel Concorde HĂ´tel Concorde
HĂ´tel Concorde
 
Josemogollon conflictos ambientales
Josemogollon conflictos ambientalesJosemogollon conflictos ambientales
Josemogollon conflictos ambientales
 

Similar to Predicting Defects for Eclipse

Develop At The Speed Of Thought
Develop At The Speed Of ThoughtDevelop At The Speed Of Thought
Develop At The Speed Of Thought
Roy Ganor
 
An Introduction to Solr
An Introduction to SolrAn Introduction to Solr
An Introduction to Solr
tomhill
 
Migration testing framework
Migration testing frameworkMigration testing framework
Migration testing framework
IndicThreads
 
Presentation log4 j
Presentation log4 jPresentation log4 j
Presentation log4 j
Sylvain Bouchard
 
Presentation log4 j
Presentation log4 jPresentation log4 j
Presentation log4 j
Sylvain Bouchard
 
Demystifying Maven
Demystifying MavenDemystifying Maven
Demystifying Maven
Mike Desjardins
 
Introduction To Eclipse RCP
Introduction To Eclipse RCPIntroduction To Eclipse RCP
Introduction To Eclipse RCP
whbath
 
Dan Holevoet, Google
Dan Holevoet, GoogleDan Holevoet, Google
Dan Holevoet, Google
500 Startups
 
Windows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best PracticesWindows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best Practices
Sriram Krishnan
 
Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)
Michiel Rook
 
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google InfrastructureLiving in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Pamela Fox
 
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google InfrastructureLiving in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
guest517f2f
 
Krazykoder struts2 plugins
Krazykoder struts2 pluginsKrazykoder struts2 plugins
Krazykoder struts2 pluginsKrazy Koder
 
Continuous integration with Git & CI Joe
Continuous integration with Git & CI JoeContinuous integration with Git & CI Joe
Continuous integration with Git & CI JoeShawn Price
 
Hackin' Devices with Ruby
Hackin' Devices with RubyHackin' Devices with Ruby
Hackin' Devices with Ruby
Kit Plummer
 
Webtests Reloaded - Webtest with Selenium, TestNG, Groovy and Maven
Webtests Reloaded - Webtest with Selenium, TestNG, Groovy and MavenWebtests Reloaded - Webtest with Selenium, TestNG, Groovy and Maven
Webtests Reloaded - Webtest with Selenium, TestNG, Groovy and Maven
Thorsten Kamann
 
Integration Testing in Python
Integration Testing in PythonIntegration Testing in Python
Integration Testing in Python
Panoptic Development, Inc.
 
JSUG - Spring by Christoph Pickl
JSUG - Spring by Christoph PicklJSUG - Spring by Christoph Pickl
JSUG - Spring by Christoph Pickl
Christoph Pickl
 
J Unit
J UnitJ Unit
J Unit
guest333f37c3
 

Similar to Predicting Defects for Eclipse (20)

Develop At The Speed Of Thought
Develop At The Speed Of ThoughtDevelop At The Speed Of Thought
Develop At The Speed Of Thought
 
An Introduction to Solr
An Introduction to SolrAn Introduction to Solr
An Introduction to Solr
 
Migration testing framework
Migration testing frameworkMigration testing framework
Migration testing framework
 
ANT
ANTANT
ANT
 
Presentation log4 j
Presentation log4 jPresentation log4 j
Presentation log4 j
 
Presentation log4 j
Presentation log4 jPresentation log4 j
Presentation log4 j
 
Demystifying Maven
Demystifying MavenDemystifying Maven
Demystifying Maven
 
Introduction To Eclipse RCP
Introduction To Eclipse RCPIntroduction To Eclipse RCP
Introduction To Eclipse RCP
 
Dan Holevoet, Google
Dan Holevoet, GoogleDan Holevoet, Google
Dan Holevoet, Google
 
Windows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best PracticesWindows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best Practices
 
Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)
 
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google InfrastructureLiving in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
 
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google InfrastructureLiving in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
 
Krazykoder struts2 plugins
Krazykoder struts2 pluginsKrazykoder struts2 plugins
Krazykoder struts2 plugins
 
Continuous integration with Git & CI Joe
Continuous integration with Git & CI JoeContinuous integration with Git & CI Joe
Continuous integration with Git & CI Joe
 
Hackin' Devices with Ruby
Hackin' Devices with RubyHackin' Devices with Ruby
Hackin' Devices with Ruby
 
Webtests Reloaded - Webtest with Selenium, TestNG, Groovy and Maven
Webtests Reloaded - Webtest with Selenium, TestNG, Groovy and MavenWebtests Reloaded - Webtest with Selenium, TestNG, Groovy and Maven
Webtests Reloaded - Webtest with Selenium, TestNG, Groovy and Maven
 
Integration Testing in Python
Integration Testing in PythonIntegration Testing in Python
Integration Testing in Python
 
JSUG - Spring by Christoph Pickl
JSUG - Spring by Christoph PicklJSUG - Spring by Christoph Pickl
JSUG - Spring by Christoph Pickl
 
J Unit
J UnitJ Unit
J Unit
 

More from Tim Menzies

Modeling the Effect of Size of Defect Proneness for Open-Source Software
Modeling the Effect of Size of Defect Proneness for Open-Source SoftwareModeling the Effect of Size of Defect Proneness for Open-Source Software
Modeling the Effect of Size of Defect Proneness for Open-Source Software
Tim Menzies
 
Assessing the Reliability of a Human Estimator
Assessing the Reliability of a Human EstimatorAssessing the Reliability of a Human Estimator
Assessing the Reliability of a Human Estimator
Tim Menzies
 
Experiments on Design Pattern Discovery
Experiments on Design Pattern DiscoveryExperiments on Design Pattern Discovery
Experiments on Design Pattern Discovery
Tim Menzies
 
Using Developer Information as a Prediction Factor
Using Developer Information as a Prediction FactorUsing Developer Information as a Prediction Factor
Using Developer Information as a Prediction Factor
Tim Menzies
 
Project Data Incorporating Qualitative Factors for Improved Software Defect P...
Project Data Incorporating Qualitative Factors for Improved Software Defect P...Project Data Incorporating Qualitative Factors for Improved Software Defect P...
Project Data Incorporating Qualitative Factors for Improved Software Defect P...
Tim Menzies
 
Make the Most of Your Time: How Should the Analyst Work with Automated Tracea...
Make the Most of Your Time: How Should the Analyst Work with Automated Tracea...Make the Most of Your Time: How Should the Analyst Work with Automated Tracea...
Make the Most of Your Time: How Should the Analyst Work with Automated Tracea...
Tim Menzies
 
Promise Keynote
Promise KeynotePromise Keynote
Promise Keynote
Tim Menzies
 
Adequate and Precise Evaluation of Predictive Models in Software Engineering ...
Adequate and Precise Evaluation of Predictive Models in Software Engineering ...Adequate and Precise Evaluation of Predictive Models in Software Engineering ...
Adequate and Precise Evaluation of Predictive Models in Software Engineering ...
Tim Menzies
 
Complexity Measures for Secure Service-Orieted Software Architectures
Complexity Measures for Secure Service-Orieted Software ArchitecturesComplexity Measures for Secure Service-Orieted Software Architectures
Complexity Measures for Secure Service-Orieted Software Architectures
Tim Menzies
 
Decision Support Analyss for Software Effort Estimation by Analogy
Decision Support Analyss for Software Effort Estimation by AnalogyDecision Support Analyss for Software Effort Estimation by Analogy
Decision Support Analyss for Software Effort Estimation by Analogy
Tim Menzies
 

More from Tim Menzies (10)

Modeling the Effect of Size of Defect Proneness for Open-Source Software
Modeling the Effect of Size of Defect Proneness for Open-Source SoftwareModeling the Effect of Size of Defect Proneness for Open-Source Software
Modeling the Effect of Size of Defect Proneness for Open-Source Software
 
Assessing the Reliability of a Human Estimator
Assessing the Reliability of a Human EstimatorAssessing the Reliability of a Human Estimator
Assessing the Reliability of a Human Estimator
 
Experiments on Design Pattern Discovery
Experiments on Design Pattern DiscoveryExperiments on Design Pattern Discovery
Experiments on Design Pattern Discovery
 
Using Developer Information as a Prediction Factor
Using Developer Information as a Prediction FactorUsing Developer Information as a Prediction Factor
Using Developer Information as a Prediction Factor
 
Project Data Incorporating Qualitative Factors for Improved Software Defect P...
Project Data Incorporating Qualitative Factors for Improved Software Defect P...Project Data Incorporating Qualitative Factors for Improved Software Defect P...
Project Data Incorporating Qualitative Factors for Improved Software Defect P...
 
Make the Most of Your Time: How Should the Analyst Work with Automated Tracea...
Make the Most of Your Time: How Should the Analyst Work with Automated Tracea...Make the Most of Your Time: How Should the Analyst Work with Automated Tracea...
Make the Most of Your Time: How Should the Analyst Work with Automated Tracea...
 
Promise Keynote
Promise KeynotePromise Keynote
Promise Keynote
 
Adequate and Precise Evaluation of Predictive Models in Software Engineering ...
Adequate and Precise Evaluation of Predictive Models in Software Engineering ...Adequate and Precise Evaluation of Predictive Models in Software Engineering ...
Adequate and Precise Evaluation of Predictive Models in Software Engineering ...
 
Complexity Measures for Secure Service-Orieted Software Architectures
Complexity Measures for Secure Service-Orieted Software ArchitecturesComplexity Measures for Secure Service-Orieted Software Architectures
Complexity Measures for Secure Service-Orieted Software Architectures
 
Decision Support Analyss for Software Effort Estimation by Analogy
Decision Support Analyss for Software Effort Estimation by AnalogyDecision Support Analyss for Software Effort Estimation by Analogy
Decision Support Analyss for Software Effort Estimation by Analogy
 

Recently uploaded

Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 

Recently uploaded (20)

Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 

Predicting Defects for Eclipse

  • 1.
  • 2. Summary Project  Eclipse (eclipse.org) Content Defect counts Complexity metrics Releases 2.0, 2.1, and 3.0 Level Packages and files URL www.st.cs.uni-sb.de/softevo/ More data Eclipse source code
  • 4.
  • 5.
  • 9.
  • 11. Eclipse Bug Data <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <!-- comments --> <defects project=&quot;eclipse&quot; release=&quot;2.0&quot; dataversion=&quot;1.0&quot;> <plug-in name=&quot;platform-launcher&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <package name=&quot;org.eclipse&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <package name=&quot;org.eclipse.core&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <package name=&quot;org.eclipse.core.launcher&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot; avg=&quot;0.0&quot; compilationunits=&quot;1&quot; max=&quot;0&quot;/> </counts> <compilationunit dir=&quot;/platform-launcher/library/&quot; base=&quot;Main.java&quot;> <counts> <count id=&quot;pre&quot; value=&quot;0&quot;/> <count id=&quot;post&quot; value=&quot;0&quot;/> </counts> </compilationunit> </package> </package> </package> </plug-in>
  • 12.
  • 14. Where do bugs come from?
  • 15. Is it the Developers? Does experience matter? Bug density correlates with experience!
  • 16. How about Testing? Does code coverage predict bug density? Yes – the more tests, the more bugs!
  • 17. History? I found lots of bugs here. Will there be more? Yes!
  • 18. How about Metrics? Do code metrics predict bug density? Yes! (but only with history)
  • 19. Syntactic Tokens? Which tokens predict bug density? imports • extends • implements
  • 20. Eclipse Imports import org.eclipse.jdt.internal.compiler.lookup.*; import org.eclipse.jdt.internal.compiler.*; import org.eclipse.jdt.internal.compiler.ast.*; import org.eclipse.jdt.internal.compiler.util.*; ... import org.eclipse.pde.core.*; import org.eclipse.jface.wizard.*; import org.eclipse.ui.*; 14% of all components importing ui show a post-release defect 71% of all components importing compiler show a post-release defect Joint work with Adrian Schröter • Tom Zimmermann
  • 21. Eclipse Imports Correlation with failure Correlation with success import org.eclipse.jdt.internal.compiler.lookup.*; import org.eclipse.jdt.internal.compiler.*; import org.eclipse.jdt.internal.compiler.ast.*; import org.eclipse.jdt.internal.compiler.util.*; ... import org.eclipse.pde.core.*; import org.eclipse.jface.wizard.*; import org.eclipse.ui.*;
  • 22. What makes code buggy in the first place?
  • 23.