SlideShare une entreprise Scribd logo
1  sur  87
Adaptive Bug Prediction By Analyzing Project History Dissertation Defense, Aug 21, 2006 Sunghun Kim <hunkim@cs.ucsc.edu> University of California, Santa Cruz
 
 
 
 
Motivation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Motivation -  Finding bugs is difficult ,[object Object],[object Object],[object Object]
Motivation -  Finding bugs is difficult ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Motivation -  Finding bugs is difficult ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Motivation -  Project history is available ,[object Object],[object Object],[object Object]
Motivation –  Unique bug properties ,[object Object],[object Object],[object Object],if ( bar==null ) {  System.out.println(bar.foo); } JEditTextArea.java  at transaction 86  - setSelectedText(&quot;&quot;); + insertTab(); JEditTextArea.java at transaction 114 - setSelectedText(&quot;&quot;);   + insertTab(); A horizontal bug A vertical bug
“ Adaptive bug predictors by leveraging software history”  ,[object Object],[object Object]
Talk Overview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Terminology –  What is a bug (Zeller 2006)? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],if (bar==null) {   System.out.println(bar.foo); } if (bar!=null) {  System.out.println(bar.foo); } A bug A fix
Terminology ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Terminology ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Commits, Transactions & Configurations transactions configurations CVS file commits Added feature X Fixed null ptr bug Modified button text Added feature Y log message
Kenyon Processing SCM Repository Filesystem Extract Automated configuration extraction Save  Persist gathered metrics & facts Kenyon Repository (RDBMS/ Hibernate) Analyze  Query DB, add new facts Analysis Software (e.g., IVA) Compute Fact extraction (metrics, static analysis) Kenyon
Creating Corpus -  Retrieving bug fix changes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Creating Corpus –  Identifying bug-introducing changes Development history of foo.java SCM log message:  “Bug #567 fixed” “ bug-fix ” Bug #567 entered into issue tracking system (bug finally observed and recorded)
Creating Corpus –  Identifying bug-introducing changes Bug #567 entered into issue tracking system (bug finally observed and recorded) Software change that introduces the bug  “ buggy ” … . … . … . … . … . … . Bug-fix change
Creating Corpus –  Identifying bug-introducing changes buggy Foo rev 1 Foo rev 2 Foo rev 3 Foo rev 4 Foo rev 5 Foo rev 6
Creating Corpus –  Identifying bug-introducing changes buggy Foo rev 1 Foo rev 2 Foo rev 3 Foo rev 4 Foo rev 5 Foo rev 6 clean
Creating Corpus –  Analyzed projects SVN SCM C Subversion (SVN) SVN Bug tracker Java Scarab (SCA) CVS DBMS C/C++ PostgreSQL (POS) SVN Content management Python Plone (PLO) CVS Java Development/IDE Java Eclipse JDT (ECL) CVS Web browser C/C++/JS/XML Mozilla (MOZ) CVS Editor Java Jedit (JED) CVS Collaborative development PHP GForge (GFO) CVS Instance messenger C/C++ Gaim (GAI) CVS Mail client Java Columba (COL) CVS Bug tracker Perl Bugzilla (BUG) SVN HTTP server C Apache HTTP 1.3 (A1) SCM Software type Language Project
Bug Cache
Basic idea ,[object Object],[object Object],[object Object],4 5 6 7 8 9 1 2 3 Entire  software 1 9 consult Bug cache
Hypothesis ,[object Object],[object Object]
Goal: Reduce Costs, Improve Quality  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bug Localities ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bug Cache Operation/Evaluation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bug Cache Operation/Evaluation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cache Replacement Policies ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(1) check/miss (2) fetch Cache Operation/Evaluation 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 Bug cache (1) check/miss (2) fetch 1 (1) check/miss (2) fetch 9 Bug cache 1 9 (1) check/ hit! (1) check/miss (2) fetch 2 (1) check/ hit! 1 2 9 (1) check/ hit! (3) replace 3 1 2 3 Bug cache: Bug prone entity list Bug-introducing change
Results - File Level Predictive accuracy at file level, 10% cache size
Results - Function/Method Level Predictive accuracy at function/method level, 10% cache size
10  % cached entity LOC/total LOC  About 16~33% of LOC
Various Cache Size and Hit Rates (no pre-fetch)
Cache Replacement File level:  LRU or BUG Function/method level: mostly BUG
Summary and Future Work ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Future Work –  Example IDE integration
Change Classification
When we introduce bugs? Foo rev 1 Foo rev 2 Foo rev 3 Foo rev 4 ……
When we introduce bugs? Foo rev 1 Foo rev 2 Foo rev 3 Foo rev 4 ……
Basic Idea Foo rev 1 Foo rev 2 Foo rev 3 Foo rev 4 Foo rev n Foo rev n-1 …… ?
Hypothesis  ,[object Object],[object Object],[object Object],[object Object],[object Object]
Goal: Reduce Costs, Improve Quality  ,[object Object],[object Object],[object Object],[object Object],[object Object]
Change Classification ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Black-box View of Machine Learning ,[object Object],[object Object],[object Object],[object Object],[object Object],Train using  I={label,  F } Unknown  F Predict label
Male/Female Example M/F height weight male 6.5 160 female 5.6 120 female 5.8 130 male 6.0 170 label feature
Male/Female Example M/F height weight male 6.5 160 female 5.6 120 female 5.8 130 male 6.0 170 label feature 6.1 150 ?
Male/Female Example M/F height weight male 6.5 160 female 5.6 120 female 5.8 130 male 6.0 170 label feature 6.1 150 ? height female male weight
Male/Female Example M/F height weight male 6.5 160 female 5.6 120 female 5.8 130 male 6.0 170 label feature 6.1 150 ? height female male weight
Male/Female Example M/F height weight male 6.5 160 female 5.6 161 female 5.8 130 male 6.0 170 label feature 6.1 165 ? height female male weight ?
Extracting Features Author : hunkim Check-in time :  March 23, 2006 11:30 AM Log message :  Added foo function … . … . … . … . … . … . Rev 10 Rev 11 /src/jdt/core/ast/ASTParser.java
Extracting Features ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Projects Analyzed 150,940 33.2* 3,518 8,272 N/A N/A Total 14,856 13.0 288 1,925 01/2002-03/2002 500-1000 SVN 5,710 50.5 366 358 06/2001-08/2001 500-1000 SCA 23,247 24.2 273 853 11/1996-02/1997 500-1000 POS 6,127 19.6 112 457 07/2002-02/2003 500-1000 PLO 16,192 10.1 67 592 10/2001-11/2001 500-750 ECL 13,648 29.9 169 395 08/2003-08/2004 500-1000 MOZ 13,879 37.5 377 626 08/2002-03/2003 500-750 JED 8,996 49.6 334 339 01/2003-03/2004 500-1000 GFO 9,281 37.8 451 742 08/2000-03/2001 500-1000 GAI 17,411 29.4 530 1,270 05/2003-09/2003 500-1000 COL 10,148 73.7 417 149 03/2000-08/2001 500-1000 BUG 11,445 23.6 134 566 10/1996-01/1997 500-1000 A1 # of features % of buggy changes # of  buggy changes # of clean changes Period Revisions. Project
Extracting Features
Training Classifiers ,[object Object],[object Object],[object Object],[object Object],[object Object]
10-fold-cross validation  1 2 3 4 5 6 7 8 9 10 Corpus
10-fold-cross validation  1 2 3 4 5 6 7 8 9 10 T est set Training  set
10-fold-cross validation  1 2 3 4 5 6 7 8 9 10 T est set Training  set
10-fold-cross validation  1 2 3 4 5 6 7 8 9 10 T est set Training  set
10-fold-cross validation  1 2 3 4 5 6 7 8 9 10 T est set Training  set
Evaluation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],n b->b   +  n b->c  +   n c->c   +  n c->b n b->b   +   n c->c n b->b   +  n b->c n b->b n b->b   +  n c->b n b->b
Bug Predictive Accuracy ,[object Object],[object Object]
Eclipse/Mozilla Accuracy by Feature Combination A - Added delta D - Deleted delta F - Directory/file name L - Change log N - New source code M - Metadata C - Complexity metrics ~X - all but X
Average Accuracy by Feature Combination A - Added delta D - Deleted delta F - Directory/file name L - Change log N - New source code M - Metadata C - Complexity metrics ~X - all but X
Best Accuracy Feature Combination A - Added delta D - Deleted delta F - Directory/file name L - Change log N - New source code M - Metadata C - Complexity metrics ~X - all but X
Important Features for Some Projects
Important Features for Some Projects
Why ‘author’ is not a significant feature? One revision (author) can have buggy and clean changes at the same time
Summary ,[object Object],[object Object],[object Object],[object Object]
Summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Future Works ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Related Work ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Related Work –  Bug Prediction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Related Work –  Bug Prediction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Related Work –  Code classification and association ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Related Work –  Text classification ,[object Object],[object Object],[object Object],[object Object],[object Object]
Threats to Validity ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusion ,[object Object],[object Object],[object Object]
Contributions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
References ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
References ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
References ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Acknowledgements  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Adaptive Bug Prediction By Analyzing Project History Dissertation Defense, Aug 21, 2006 Sunghun Kim <hunkim@cs.ucsc.edu> University of California, Santa Cruz

Contenu connexe

Tendances

Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)Sung Kim
 
Survey on Software Defect Prediction
Survey on Software Defect PredictionSurvey on Software Defect Prediction
Survey on Software Defect PredictionSung Kim
 
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...Sung Kim
 
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)Sung Kim
 
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)Sung Kim
 
Cross-project defect prediction
Cross-project defect predictionCross-project defect prediction
Cross-project defect predictionThomas Zimmermann
 
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)Sung Kim
 
Personalized Defect Prediction
Personalized Defect PredictionPersonalized Defect Prediction
Personalized Defect PredictionSung Kim
 
Artificial Intelligence for Automated Software Testing
Artificial Intelligence for Automated Software TestingArtificial Intelligence for Automated Software Testing
Artificial Intelligence for Automated Software TestingLionel Briand
 
Crowd debugging (FSE 2015)
Crowd debugging (FSE 2015)Crowd debugging (FSE 2015)
Crowd debugging (FSE 2015)Sung Kim
 
Scalable Software Testing and Verification of Non-Functional Properties throu...
Scalable Software Testing and Verification of Non-Functional Properties throu...Scalable Software Testing and Verification of Non-Functional Properties throu...
Scalable Software Testing and Verification of Non-Functional Properties throu...Lionel Briand
 
Applications of Machine Learning and Metaheuristic Search to Security Testing
Applications of Machine Learning and Metaheuristic Search to Security TestingApplications of Machine Learning and Metaheuristic Search to Security Testing
Applications of Machine Learning and Metaheuristic Search to Security TestingLionel Briand
 
Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...
Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...
Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...Lionel Briand
 
Automated Program Repair Keynote talk
Automated Program Repair Keynote talkAutomated Program Repair Keynote talk
Automated Program Repair Keynote talkAbhik Roychoudhury
 
Leveraging HPC Resources to Improve the Experimental Design of Software Analy...
Leveraging HPC Resources to Improve the Experimental Design of Software Analy...Leveraging HPC Resources to Improve the Experimental Design of Software Analy...
Leveraging HPC Resources to Improve the Experimental Design of Software Analy...Chakkrit (Kla) Tantithamthavorn
 
A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...
A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...
A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...Lionel Briand
 
SSBSE 2020 keynote
SSBSE 2020 keynoteSSBSE 2020 keynote
SSBSE 2020 keynoteShiva Nejati
 
Testing Machine Learning-enabled Systems: A Personal Perspective
Testing Machine Learning-enabled Systems: A Personal PerspectiveTesting Machine Learning-enabled Systems: A Personal Perspective
Testing Machine Learning-enabled Systems: A Personal PerspectiveLionel Briand
 
Feature Selection Techniques for Software Fault Prediction (Summary)
Feature Selection Techniques for Software Fault Prediction (Summary)Feature Selection Techniques for Software Fault Prediction (Summary)
Feature Selection Techniques for Software Fault Prediction (Summary)SungdoGu
 
A survey of fault prediction using machine learning algorithms
A survey of fault prediction using machine learning algorithmsA survey of fault prediction using machine learning algorithms
A survey of fault prediction using machine learning algorithmsAhmed Magdy Ezzeldin, MSc.
 

Tendances (20)

Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)
 
Survey on Software Defect Prediction
Survey on Software Defect PredictionSurvey on Software Defect Prediction
Survey on Software Defect Prediction
 
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
 
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
 
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
 
Cross-project defect prediction
Cross-project defect predictionCross-project defect prediction
Cross-project defect prediction
 
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
 
Personalized Defect Prediction
Personalized Defect PredictionPersonalized Defect Prediction
Personalized Defect Prediction
 
Artificial Intelligence for Automated Software Testing
Artificial Intelligence for Automated Software TestingArtificial Intelligence for Automated Software Testing
Artificial Intelligence for Automated Software Testing
 
Crowd debugging (FSE 2015)
Crowd debugging (FSE 2015)Crowd debugging (FSE 2015)
Crowd debugging (FSE 2015)
 
Scalable Software Testing and Verification of Non-Functional Properties throu...
Scalable Software Testing and Verification of Non-Functional Properties throu...Scalable Software Testing and Verification of Non-Functional Properties throu...
Scalable Software Testing and Verification of Non-Functional Properties throu...
 
Applications of Machine Learning and Metaheuristic Search to Security Testing
Applications of Machine Learning and Metaheuristic Search to Security TestingApplications of Machine Learning and Metaheuristic Search to Security Testing
Applications of Machine Learning and Metaheuristic Search to Security Testing
 
Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...
Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...
Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...
 
Automated Program Repair Keynote talk
Automated Program Repair Keynote talkAutomated Program Repair Keynote talk
Automated Program Repair Keynote talk
 
Leveraging HPC Resources to Improve the Experimental Design of Software Analy...
Leveraging HPC Resources to Improve the Experimental Design of Software Analy...Leveraging HPC Resources to Improve the Experimental Design of Software Analy...
Leveraging HPC Resources to Improve the Experimental Design of Software Analy...
 
A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...
A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...
A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...
 
SSBSE 2020 keynote
SSBSE 2020 keynoteSSBSE 2020 keynote
SSBSE 2020 keynote
 
Testing Machine Learning-enabled Systems: A Personal Perspective
Testing Machine Learning-enabled Systems: A Personal PerspectiveTesting Machine Learning-enabled Systems: A Personal Perspective
Testing Machine Learning-enabled Systems: A Personal Perspective
 
Feature Selection Techniques for Software Fault Prediction (Summary)
Feature Selection Techniques for Software Fault Prediction (Summary)Feature Selection Techniques for Software Fault Prediction (Summary)
Feature Selection Techniques for Software Fault Prediction (Summary)
 
A survey of fault prediction using machine learning algorithms
A survey of fault prediction using machine learning algorithmsA survey of fault prediction using machine learning algorithms
A survey of fault prediction using machine learning algorithms
 

Similaire à Dissertation Defense

Learning from Human Repairs Through the Exploitation of Software Repositories
Learning from Human Repairs Through the Exploitation of Software Repositories Learning from Human Repairs Through the Exploitation of Software Repositories
Learning from Human Repairs Through the Exploitation of Software Repositories ijseajournal
 
Software Build processes and Git
Software Build processes and GitSoftware Build processes and Git
Software Build processes and GitAlec Clews
 
Creation of a Test Bed Environment for Core Java Applications using White Box...
Creation of a Test Bed Environment for Core Java Applications using White Box...Creation of a Test Bed Environment for Core Java Applications using White Box...
Creation of a Test Bed Environment for Core Java Applications using White Box...cscpconf
 
Memories of Bug Fixes
Memories of Bug FixesMemories of Bug Fixes
Memories of Bug FixesSung Kim
 
A tale of bug prediction in software development
A tale of bug prediction in software developmentA tale of bug prediction in software development
A tale of bug prediction in software developmentMartin Pinzger
 
Static and Adaptive Bug Fix Patterns
Static and Adaptive Bug Fix PatternsStatic and Adaptive Bug Fix Patterns
Static and Adaptive Bug Fix PatternsSung Kim
 
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 FactorTim Menzies
 
Automated bug localization
Automated bug localizationAutomated bug localization
Automated bug localizationXin Ye
 
A Brief Introduction to Software Configuration Management
A Brief Introduction to Software Configuration ManagementA Brief Introduction to Software Configuration Management
A Brief Introduction to Software Configuration ManagementMd Mamunur Rashid
 
Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...eSAT Journals
 
How to use CVS applied to SOLab
How to use CVS applied to SOLabHow to use CVS applied to SOLab
How to use CVS applied to SOLabPablo Arriazu
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Managementelliando dias
 
Programming Fundamentals lecture 3
Programming Fundamentals lecture 3Programming Fundamentals lecture 3
Programming Fundamentals lecture 3REHAN IJAZ
 
Software Configuration Management introduction
Software Configuration Management introductionSoftware Configuration Management introduction
Software Configuration Management introductionMani Deepak Choudhry
 
Resilience Engineering: A field of study, a community, and some perspective s...
Resilience Engineering: A field of study, a community, and some perspective s...Resilience Engineering: A field of study, a community, and some perspective s...
Resilience Engineering: A field of study, a community, and some perspective s...John Allspaw
 
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug Prediction
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug PredictionIt's Not a Bug, It's a Feature — How Misclassification Impacts Bug Prediction
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug Predictionsjust
 
Measuring Your Code
Measuring Your CodeMeasuring Your Code
Measuring Your CodeNate Abele
 
Measuring Your Code 2.0
Measuring Your Code 2.0Measuring Your Code 2.0
Measuring Your Code 2.0Nate Abele
 

Similaire à Dissertation Defense (20)

Learning from Human Repairs Through the Exploitation of Software Repositories
Learning from Human Repairs Through the Exploitation of Software Repositories Learning from Human Repairs Through the Exploitation of Software Repositories
Learning from Human Repairs Through the Exploitation of Software Repositories
 
Software Build processes and Git
Software Build processes and GitSoftware Build processes and Git
Software Build processes and Git
 
Creation of a Test Bed Environment for Core Java Applications using White Box...
Creation of a Test Bed Environment for Core Java Applications using White Box...Creation of a Test Bed Environment for Core Java Applications using White Box...
Creation of a Test Bed Environment for Core Java Applications using White Box...
 
Memories of Bug Fixes
Memories of Bug FixesMemories of Bug Fixes
Memories of Bug Fixes
 
A tale of bug prediction in software development
A tale of bug prediction in software developmentA tale of bug prediction in software development
A tale of bug prediction in software development
 
Static and Adaptive Bug Fix Patterns
Static and Adaptive Bug Fix PatternsStatic and Adaptive Bug Fix Patterns
Static and Adaptive Bug Fix Patterns
 
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
 
Automated bug localization
Automated bug localizationAutomated bug localization
Automated bug localization
 
A Brief Introduction to Software Configuration Management
A Brief Introduction to Software Configuration ManagementA Brief Introduction to Software Configuration Management
A Brief Introduction to Software Configuration Management
 
IJET-V2I6P28
IJET-V2I6P28IJET-V2I6P28
IJET-V2I6P28
 
Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...
 
How to use CVS applied to SOLab
How to use CVS applied to SOLabHow to use CVS applied to SOLab
How to use CVS applied to SOLab
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Programming Fundamentals lecture 3
Programming Fundamentals lecture 3Programming Fundamentals lecture 3
Programming Fundamentals lecture 3
 
lecture14.ppt
lecture14.pptlecture14.ppt
lecture14.ppt
 
Software Configuration Management introduction
Software Configuration Management introductionSoftware Configuration Management introduction
Software Configuration Management introduction
 
Resilience Engineering: A field of study, a community, and some perspective s...
Resilience Engineering: A field of study, a community, and some perspective s...Resilience Engineering: A field of study, a community, and some perspective s...
Resilience Engineering: A field of study, a community, and some perspective s...
 
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug Prediction
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug PredictionIt's Not a Bug, It's a Feature — How Misclassification Impacts Bug Prediction
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug Prediction
 
Measuring Your Code
Measuring Your CodeMeasuring Your Code
Measuring Your Code
 
Measuring Your Code 2.0
Measuring Your Code 2.0Measuring Your Code 2.0
Measuring Your Code 2.0
 

Plus de Sung Kim

Time series classification
Time series classificationTime series classification
Time series classificationSung Kim
 
Tensor board
Tensor boardTensor board
Tensor boardSung Kim
 
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...Sung Kim
 
Source code comprehension on evolving software
Source code comprehension on evolving softwareSource code comprehension on evolving software
Source code comprehension on evolving softwareSung Kim
 
A Survey on Dynamic Symbolic Execution for Automatic Test Generation
A Survey on  Dynamic Symbolic Execution  for Automatic Test GenerationA Survey on  Dynamic Symbolic Execution  for Automatic Test Generation
A Survey on Dynamic Symbolic Execution for Automatic Test GenerationSung Kim
 
MSR2014 opening
MSR2014 openingMSR2014 opening
MSR2014 openingSung Kim
 
Automatic patch generation learned from human written patches
Automatic patch generation learned from human written patchesAutomatic patch generation learned from human written patches
Automatic patch generation learned from human written patchesSung Kim
 
The Anatomy of Developer Social Networks
The Anatomy of Developer Social NetworksThe Anatomy of Developer Social Networks
The Anatomy of Developer Social NetworksSung Kim
 
A Survey on Automatic Test Generation and Crash Reproduction
A Survey on Automatic Test Generation and Crash ReproductionA Survey on Automatic Test Generation and Crash Reproduction
A Survey on Automatic Test Generation and Crash ReproductionSung Kim
 
How Do Software Engineers Understand Code Changes? FSE 2012
How Do Software Engineers Understand Code Changes? FSE 2012How Do Software Engineers Understand Code Changes? FSE 2012
How Do Software Engineers Understand Code Changes? FSE 2012Sung Kim
 
Defect, defect, defect: PROMISE 2012 Keynote
Defect, defect, defect: PROMISE 2012 Keynote Defect, defect, defect: PROMISE 2012 Keynote
Defect, defect, defect: PROMISE 2012 Keynote Sung Kim
 
Predicting Recurring Crash Stacks (ASE 2012)
Predicting Recurring Crash Stacks (ASE 2012)Predicting Recurring Crash Stacks (ASE 2012)
Predicting Recurring Crash Stacks (ASE 2012)Sung Kim
 
Puzzle-Based Automatic Testing: Bringing Humans Into the Loop by Solving Puzz...
Puzzle-Based Automatic Testing: Bringing Humans Into the Loop by Solving Puzz...Puzzle-Based Automatic Testing: Bringing Humans Into the Loop by Solving Puzz...
Puzzle-Based Automatic Testing: Bringing Humans Into the Loop by Solving Puzz...Sung Kim
 
Software Development Meets the Wisdom of Crowds
Software Development Meets the Wisdom of CrowdsSoftware Development Meets the Wisdom of Crowds
Software Development Meets the Wisdom of CrowdsSung Kim
 
BugTriage with Bug Tossing Graphs (ESEC/FSE 2009)
BugTriage with Bug Tossing Graphs (ESEC/FSE 2009)BugTriage with Bug Tossing Graphs (ESEC/FSE 2009)
BugTriage with Bug Tossing Graphs (ESEC/FSE 2009)Sung Kim
 
Self-defending software: Automatically patching errors in deployed software ...
Self-defending software: Automatically patching  errors in deployed software ...Self-defending software: Automatically patching  errors in deployed software ...
Self-defending software: Automatically patching errors in deployed software ...Sung Kim
 

Plus de Sung Kim (16)

Time series classification
Time series classificationTime series classification
Time series classification
 
Tensor board
Tensor boardTensor board
Tensor board
 
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
How We Get There: A Context-Guided Search Strategy in Concolic Testing (FSE 2...
 
Source code comprehension on evolving software
Source code comprehension on evolving softwareSource code comprehension on evolving software
Source code comprehension on evolving software
 
A Survey on Dynamic Symbolic Execution for Automatic Test Generation
A Survey on  Dynamic Symbolic Execution  for Automatic Test GenerationA Survey on  Dynamic Symbolic Execution  for Automatic Test Generation
A Survey on Dynamic Symbolic Execution for Automatic Test Generation
 
MSR2014 opening
MSR2014 openingMSR2014 opening
MSR2014 opening
 
Automatic patch generation learned from human written patches
Automatic patch generation learned from human written patchesAutomatic patch generation learned from human written patches
Automatic patch generation learned from human written patches
 
The Anatomy of Developer Social Networks
The Anatomy of Developer Social NetworksThe Anatomy of Developer Social Networks
The Anatomy of Developer Social Networks
 
A Survey on Automatic Test Generation and Crash Reproduction
A Survey on Automatic Test Generation and Crash ReproductionA Survey on Automatic Test Generation and Crash Reproduction
A Survey on Automatic Test Generation and Crash Reproduction
 
How Do Software Engineers Understand Code Changes? FSE 2012
How Do Software Engineers Understand Code Changes? FSE 2012How Do Software Engineers Understand Code Changes? FSE 2012
How Do Software Engineers Understand Code Changes? FSE 2012
 
Defect, defect, defect: PROMISE 2012 Keynote
Defect, defect, defect: PROMISE 2012 Keynote Defect, defect, defect: PROMISE 2012 Keynote
Defect, defect, defect: PROMISE 2012 Keynote
 
Predicting Recurring Crash Stacks (ASE 2012)
Predicting Recurring Crash Stacks (ASE 2012)Predicting Recurring Crash Stacks (ASE 2012)
Predicting Recurring Crash Stacks (ASE 2012)
 
Puzzle-Based Automatic Testing: Bringing Humans Into the Loop by Solving Puzz...
Puzzle-Based Automatic Testing: Bringing Humans Into the Loop by Solving Puzz...Puzzle-Based Automatic Testing: Bringing Humans Into the Loop by Solving Puzz...
Puzzle-Based Automatic Testing: Bringing Humans Into the Loop by Solving Puzz...
 
Software Development Meets the Wisdom of Crowds
Software Development Meets the Wisdom of CrowdsSoftware Development Meets the Wisdom of Crowds
Software Development Meets the Wisdom of Crowds
 
BugTriage with Bug Tossing Graphs (ESEC/FSE 2009)
BugTriage with Bug Tossing Graphs (ESEC/FSE 2009)BugTriage with Bug Tossing Graphs (ESEC/FSE 2009)
BugTriage with Bug Tossing Graphs (ESEC/FSE 2009)
 
Self-defending software: Automatically patching errors in deployed software ...
Self-defending software: Automatically patching  errors in deployed software ...Self-defending software: Automatically patching  errors in deployed software ...
Self-defending software: Automatically patching errors in deployed software ...
 

Dernier

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Dernier (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Dissertation Defense

  • 1. Adaptive Bug Prediction By Analyzing Project History Dissertation Defense, Aug 21, 2006 Sunghun Kim <hunkim@cs.ucsc.edu> University of California, Santa Cruz
  • 2.  
  • 3.  
  • 4.  
  • 5.  
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. Commits, Transactions & Configurations transactions configurations CVS file commits Added feature X Fixed null ptr bug Modified button text Added feature Y log message
  • 18. Kenyon Processing SCM Repository Filesystem Extract Automated configuration extraction Save Persist gathered metrics & facts Kenyon Repository (RDBMS/ Hibernate) Analyze Query DB, add new facts Analysis Software (e.g., IVA) Compute Fact extraction (metrics, static analysis) Kenyon
  • 19.
  • 20. Creating Corpus – Identifying bug-introducing changes Development history of foo.java SCM log message: “Bug #567 fixed” “ bug-fix ” Bug #567 entered into issue tracking system (bug finally observed and recorded)
  • 21. Creating Corpus – Identifying bug-introducing changes Bug #567 entered into issue tracking system (bug finally observed and recorded) Software change that introduces the bug “ buggy ” … . … . … . … . … . … . Bug-fix change
  • 22. Creating Corpus – Identifying bug-introducing changes buggy Foo rev 1 Foo rev 2 Foo rev 3 Foo rev 4 Foo rev 5 Foo rev 6
  • 23. Creating Corpus – Identifying bug-introducing changes buggy Foo rev 1 Foo rev 2 Foo rev 3 Foo rev 4 Foo rev 5 Foo rev 6 clean
  • 24. Creating Corpus – Analyzed projects SVN SCM C Subversion (SVN) SVN Bug tracker Java Scarab (SCA) CVS DBMS C/C++ PostgreSQL (POS) SVN Content management Python Plone (PLO) CVS Java Development/IDE Java Eclipse JDT (ECL) CVS Web browser C/C++/JS/XML Mozilla (MOZ) CVS Editor Java Jedit (JED) CVS Collaborative development PHP GForge (GFO) CVS Instance messenger C/C++ Gaim (GAI) CVS Mail client Java Columba (COL) CVS Bug tracker Perl Bugzilla (BUG) SVN HTTP server C Apache HTTP 1.3 (A1) SCM Software type Language Project
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. (1) check/miss (2) fetch Cache Operation/Evaluation 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 Bug cache (1) check/miss (2) fetch 1 (1) check/miss (2) fetch 9 Bug cache 1 9 (1) check/ hit! (1) check/miss (2) fetch 2 (1) check/ hit! 1 2 9 (1) check/ hit! (3) replace 3 1 2 3 Bug cache: Bug prone entity list Bug-introducing change
  • 34. Results - File Level Predictive accuracy at file level, 10% cache size
  • 35. Results - Function/Method Level Predictive accuracy at function/method level, 10% cache size
  • 36. 10 % cached entity LOC/total LOC About 16~33% of LOC
  • 37. Various Cache Size and Hit Rates (no pre-fetch)
  • 38. Cache Replacement File level: LRU or BUG Function/method level: mostly BUG
  • 39.
  • 40. Future Work – Example IDE integration
  • 42. When we introduce bugs? Foo rev 1 Foo rev 2 Foo rev 3 Foo rev 4 ……
  • 43. When we introduce bugs? Foo rev 1 Foo rev 2 Foo rev 3 Foo rev 4 ……
  • 44. Basic Idea Foo rev 1 Foo rev 2 Foo rev 3 Foo rev 4 Foo rev n Foo rev n-1 …… ?
  • 45.
  • 46.
  • 47.
  • 48.
  • 49. Male/Female Example M/F height weight male 6.5 160 female 5.6 120 female 5.8 130 male 6.0 170 label feature
  • 50. Male/Female Example M/F height weight male 6.5 160 female 5.6 120 female 5.8 130 male 6.0 170 label feature 6.1 150 ?
  • 51. Male/Female Example M/F height weight male 6.5 160 female 5.6 120 female 5.8 130 male 6.0 170 label feature 6.1 150 ? height female male weight
  • 52. Male/Female Example M/F height weight male 6.5 160 female 5.6 120 female 5.8 130 male 6.0 170 label feature 6.1 150 ? height female male weight
  • 53. Male/Female Example M/F height weight male 6.5 160 female 5.6 161 female 5.8 130 male 6.0 170 label feature 6.1 165 ? height female male weight ?
  • 54. Extracting Features Author : hunkim Check-in time : March 23, 2006 11:30 AM Log message : Added foo function … . … . … . … . … . … . Rev 10 Rev 11 /src/jdt/core/ast/ASTParser.java
  • 55.
  • 56. Projects Analyzed 150,940 33.2* 3,518 8,272 N/A N/A Total 14,856 13.0 288 1,925 01/2002-03/2002 500-1000 SVN 5,710 50.5 366 358 06/2001-08/2001 500-1000 SCA 23,247 24.2 273 853 11/1996-02/1997 500-1000 POS 6,127 19.6 112 457 07/2002-02/2003 500-1000 PLO 16,192 10.1 67 592 10/2001-11/2001 500-750 ECL 13,648 29.9 169 395 08/2003-08/2004 500-1000 MOZ 13,879 37.5 377 626 08/2002-03/2003 500-750 JED 8,996 49.6 334 339 01/2003-03/2004 500-1000 GFO 9,281 37.8 451 742 08/2000-03/2001 500-1000 GAI 17,411 29.4 530 1,270 05/2003-09/2003 500-1000 COL 10,148 73.7 417 149 03/2000-08/2001 500-1000 BUG 11,445 23.6 134 566 10/1996-01/1997 500-1000 A1 # of features % of buggy changes # of buggy changes # of clean changes Period Revisions. Project
  • 58.
  • 59. 10-fold-cross validation 1 2 3 4 5 6 7 8 9 10 Corpus
  • 60. 10-fold-cross validation 1 2 3 4 5 6 7 8 9 10 T est set Training set
  • 61. 10-fold-cross validation 1 2 3 4 5 6 7 8 9 10 T est set Training set
  • 62. 10-fold-cross validation 1 2 3 4 5 6 7 8 9 10 T est set Training set
  • 63. 10-fold-cross validation 1 2 3 4 5 6 7 8 9 10 T est set Training set
  • 64.
  • 65.
  • 66. Eclipse/Mozilla Accuracy by Feature Combination A - Added delta D - Deleted delta F - Directory/file name L - Change log N - New source code M - Metadata C - Complexity metrics ~X - all but X
  • 67. Average Accuracy by Feature Combination A - Added delta D - Deleted delta F - Directory/file name L - Change log N - New source code M - Metadata C - Complexity metrics ~X - all but X
  • 68. Best Accuracy Feature Combination A - Added delta D - Deleted delta F - Directory/file name L - Change log N - New source code M - Metadata C - Complexity metrics ~X - all but X
  • 69. Important Features for Some Projects
  • 70. Important Features for Some Projects
  • 71. Why ‘author’ is not a significant feature? One revision (author) can have buggy and clean changes at the same time
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87. Adaptive Bug Prediction By Analyzing Project History Dissertation Defense, Aug 21, 2006 Sunghun Kim <hunkim@cs.ucsc.edu> University of California, Santa Cruz