SlideShare une entreprise Scribd logo
1  sur  31
Statistical Debugging of Programs written in Dynamic Programming Language - RUBY Master Thesis  Software Engineering  Thesis no: MSE-2010-33  December 2010  AdeelAkhter Hassan Azhar
Agenda ,[object Object]
 Research Questions
 Research Design
 Results
 Contribution
 Future Work,[object Object]
Introduction Cont… ,[object Object]
The Statistical debugging technique sketch out the program’s source code to gather data flow, program flows, program state trace information and then perform the statistical analysis on collected information to figure out the bug traces.
Instrumentation is a process of predicates insertion with in the source code.
Analysis of instrumented code will provide the visualization of  buggy areas with in the source code.,[object Object]
Goal of Statistical Debugging
Identify distinct bugs in source code.
Ranking the predicate that best predicts the bug.,[object Object]
Adapting  existing statistical debugging techniques adaptable for Dynamic Programming Languages.
Evaluating  statistical debugging algorithm SOBER and Cause Isolation Scheme for programs coded in RUBY language.
Literature lacks in providing the evaluation process of statistical debugging and fault localization for programs coded in RUBY language.
No empirically validated process for utilizing both testing approaches in combination,[object Object]
Introduction cont... ,[object Object]
Identify and evaluate the existing statistical debugging algorithms for dynamic programming languages.
To implement the most mature statistical debugging algorithm and adapt them to the Ruby language.
Evaluation and analysis of SOBER and Cause Isolation Scheme algorithms in RUBY language programs.
Comparative validation of SOBER and Cause Isolation Scheme debugging algorithm on programs developed in RUBY language.,[object Object]
Research Design Literature Review Qualitativestudy of DebuggingAlgorithms Phase 1 Observations from previous studies Design statisticaldebugging process for programs developed in RUBY language Phase 2 Implementation of debugging process in RUBY programs Resultsanalysisusing SOBER and Cause Isolation SchemeAlgorithms Process validation Phase 3 QuantitativeAnalysis Phase 4 Analysis, results and conclusion
Objectives & Research Methodology Objective 1 Literaturereview Proposed process of statisticaldebugging for programs in RUBY Objective 2 Objective 3 Implementation, Analysis & validation of proposed process Observations & conclusion Objective 4 Resultsanalysisusing SOBER and Cause Isolation SchemeAlgorithms
System Requirements Software Requirements Analysis Verification Design Testing during execution Coding Static Testing Testing Production / Deployment Debugging Software debugging, testing and verification
Existing Techniques of Statistical Debugging
 Process design Programs will be implemented with standard structures e.g. Loops, conditional statements, method calls and object oriented structures. Programs are then instrumented at the critical areas of source code where bugs or failures are most likely to occur Sampling process is next to instrumentation activity. It involves the implementation of predicates in the form of specialized checks at the specified instrumented sites. Next to sampling, ranking of predicates will be performed by using Tarantula fault localization technique. Predicate ranking will be performed by looking at the successful completion of iteration with in specified range. The output generated from the sampled program will be analyzed by using SOBER and Cause Isolation Scheme algorithms.  Predicates results will be normalized to visualize the high and low critical bugs within the inspected source code.
Experiment Execution ,[object Object],We have selected the source codes related to different scenarios including the implementations of control structures, string manipulation, iteration structures, file streaming process, object initialization, exception processing. ,[object Object]
Identification of bug localities
Impact of bugs on normal execution of source code.

Contenu connexe

Tendances

Revisiting Code Ownership and Its Relationship with Software Quality in the S...
Revisiting Code Ownership and Its Relationship with Software Quality in the S...Revisiting Code Ownership and Its Relationship with Software Quality in the S...
Revisiting Code Ownership and Its Relationship with Software Quality in the S...
The University of Adelaide
 
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyModel-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Dharmalingam Ganesan
 
Using HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review AnalyticsUsing HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review Analytics
The University of Adelaide
 

Tendances (20)

Cser13.ppt
Cser13.pptCser13.ppt
Cser13.ppt
 
Improving Code Review Effectiveness Through Reviewer Recommendations
Improving Code Review Effectiveness Through Reviewer RecommendationsImproving Code Review Effectiveness Through Reviewer Recommendations
Improving Code Review Effectiveness Through Reviewer Recommendations
 
Ph.D. Thesis Defense: Studying Reviewer Selection and Involvement in Modern ...
Ph.D. Thesis Defense:  Studying Reviewer Selection and Involvement in Modern ...Ph.D. Thesis Defense:  Studying Reviewer Selection and Involvement in Modern ...
Ph.D. Thesis Defense: Studying Reviewer Selection and Involvement in Modern ...
 
A Survey Of Agile Development Methodologies
A Survey Of Agile Development MethodologiesA Survey Of Agile Development Methodologies
A Survey Of Agile Development Methodologies
 
Icsm20.ppt
Icsm20.pptIcsm20.ppt
Icsm20.ppt
 
Survey on Software Defect Prediction
Survey on Software Defect PredictionSurvey on Software Defect Prediction
Survey on Software Defect Prediction
 
Detection of vulnerabilities in programs with the help of code analyzers
Detection of vulnerabilities in programs with the help of code analyzersDetection of vulnerabilities in programs with the help of code analyzers
Detection of vulnerabilities in programs with the help of code analyzers
 
Automated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from ModelsAutomated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from Models
 
Python - code quality and production monitoring
Python - code quality and production monitoringPython - code quality and production monitoring
Python - code quality and production monitoring
 
Revisiting Code Ownership and Its Relationship with Software Quality in the S...
Revisiting Code Ownership and Its Relationship with Software Quality in the S...Revisiting Code Ownership and Its Relationship with Software Quality in the S...
Revisiting Code Ownership and Its Relationship with Software Quality in the S...
 
Unit 3 Control Flow Testing
Unit 3   Control Flow TestingUnit 3   Control Flow Testing
Unit 3 Control Flow Testing
 
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyModel-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
 
Control Flow Testing
Control Flow TestingControl Flow Testing
Control Flow Testing
 
White box & Black box testing
White box & Black box testingWhite box & Black box testing
White box & Black box testing
 
Using HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review AnalyticsUsing HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review Analytics
 
Ide and datatypes vb-net-u-ii-p2
Ide and datatypes  vb-net-u-ii-p2Ide and datatypes  vb-net-u-ii-p2
Ide and datatypes vb-net-u-ii-p2
 
Who Should Review My Code?
Who Should Review My Code?  Who Should Review My Code?
Who Should Review My Code?
 
Review Participation in Modern Code Review: An Empirical Study of the Android...
Review Participation in Modern Code Review: An Empirical Study of the Android...Review Participation in Modern Code Review: An Empirical Study of the Android...
Review Participation in Modern Code Review: An Empirical Study of the Android...
 
Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...
Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...
Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...
 
A Mono- and Multi-objective Approach for Recommending Software Refactoring
A Mono- and Multi-objective Approach for Recommending Software RefactoringA Mono- and Multi-objective Approach for Recommending Software Refactoring
A Mono- and Multi-objective Approach for Recommending Software Refactoring
 

Similaire à Statistical debuging for programs written in dynamic programming language ruby

OpenOffice++: Improving the Quality of Open Source Software
OpenOffice++: Improving the Quality of Open Source SoftwareOpenOffice++: Improving the Quality of Open Source Software
OpenOffice++: Improving the Quality of Open Source Software
Alexandro Colorado
 
Software Testing - Day One
Software Testing - Day OneSoftware Testing - Day One
Software Testing - Day One
Govardhan Reddy
 
Software Engineering Fundamentals Svetlin Nakov
Software Engineering Fundamentals Svetlin NakovSoftware Engineering Fundamentals Svetlin Nakov
Software Engineering Fundamentals Svetlin Nakov
nazeer pasha
 
Software Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSoftware Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin Nakov
Svetlin Nakov
 
Software development slides
Software development slidesSoftware development slides
Software development slides
iarthur
 

Similaire à Statistical debuging for programs written in dynamic programming language ruby (20)

OpenOffice++: Improving the Quality of Open Source Software
OpenOffice++: Improving the Quality of Open Source SoftwareOpenOffice++: Improving the Quality of Open Source Software
OpenOffice++: Improving the Quality of Open Source Software
 
Coding and testing in Software Engineering
Coding and testing in Software EngineeringCoding and testing in Software Engineering
Coding and testing in Software Engineering
 
Software Testing - Day One
Software Testing - Day OneSoftware Testing - Day One
Software Testing - Day One
 
Multi step automated refactoring for code smell
Multi step automated refactoring for code smellMulti step automated refactoring for code smell
Multi step automated refactoring for code smell
 
Multi step automated refactoring for code smell
Multi step automated refactoring for code smellMulti step automated refactoring for code smell
Multi step automated refactoring for code smell
 
Coding - SDLC Model
Coding - SDLC ModelCoding - SDLC Model
Coding - SDLC Model
 
Software Engineering Fundamentals Svetlin Nakov
Software Engineering Fundamentals Svetlin NakovSoftware Engineering Fundamentals Svetlin Nakov
Software Engineering Fundamentals Svetlin Nakov
 
Software Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSoftware Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin Nakov
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Exploring the Efficiency of the Program using OOAD Metrics
Exploring the Efficiency of the Program using OOAD MetricsExploring the Efficiency of the Program using OOAD Metrics
Exploring the Efficiency of the Program using OOAD Metrics
 
Software development slides
Software development slidesSoftware development slides
Software development slides
 
KUMARI SWATI
KUMARI SWATIKUMARI SWATI
KUMARI SWATI
 
Debug me
Debug meDebug me
Debug me
 
SOFTWARE TESTING.pptx
SOFTWARE TESTING.pptxSOFTWARE TESTING.pptx
SOFTWARE TESTING.pptx
 
Java Code Quality Tools
Java Code Quality ToolsJava Code Quality Tools
Java Code Quality Tools
 
CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5
 
Mohammed Kharma - A flexible framework for quality assurance and testing of s...
Mohammed Kharma - A flexible framework for quality assurance and testing of s...Mohammed Kharma - A flexible framework for quality assurance and testing of s...
Mohammed Kharma - A flexible framework for quality assurance and testing of s...
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
Qualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDzQualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDz
 
Traps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit WindowsTraps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit Windows
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Dernier (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 

Statistical debuging for programs written in dynamic programming language ruby

  • 1. Statistical Debugging of Programs written in Dynamic Programming Language - RUBY Master Thesis Software Engineering Thesis no: MSE-2010-33 December 2010 AdeelAkhter Hassan Azhar
  • 2.
  • 7.
  • 8.
  • 9. The Statistical debugging technique sketch out the program’s source code to gather data flow, program flows, program state trace information and then perform the statistical analysis on collected information to figure out the bug traces.
  • 10. Instrumentation is a process of predicates insertion with in the source code.
  • 11.
  • 13. Identify distinct bugs in source code.
  • 14.
  • 15. Adapting existing statistical debugging techniques adaptable for Dynamic Programming Languages.
  • 16. Evaluating statistical debugging algorithm SOBER and Cause Isolation Scheme for programs coded in RUBY language.
  • 17. Literature lacks in providing the evaluation process of statistical debugging and fault localization for programs coded in RUBY language.
  • 18.
  • 19.
  • 20. Identify and evaluate the existing statistical debugging algorithms for dynamic programming languages.
  • 21. To implement the most mature statistical debugging algorithm and adapt them to the Ruby language.
  • 22. Evaluation and analysis of SOBER and Cause Isolation Scheme algorithms in RUBY language programs.
  • 23.
  • 24. Research Design Literature Review Qualitativestudy of DebuggingAlgorithms Phase 1 Observations from previous studies Design statisticaldebugging process for programs developed in RUBY language Phase 2 Implementation of debugging process in RUBY programs Resultsanalysisusing SOBER and Cause Isolation SchemeAlgorithms Process validation Phase 3 QuantitativeAnalysis Phase 4 Analysis, results and conclusion
  • 25. Objectives & Research Methodology Objective 1 Literaturereview Proposed process of statisticaldebugging for programs in RUBY Objective 2 Objective 3 Implementation, Analysis & validation of proposed process Observations & conclusion Objective 4 Resultsanalysisusing SOBER and Cause Isolation SchemeAlgorithms
  • 26. System Requirements Software Requirements Analysis Verification Design Testing during execution Coding Static Testing Testing Production / Deployment Debugging Software debugging, testing and verification
  • 27. Existing Techniques of Statistical Debugging
  • 28. Process design Programs will be implemented with standard structures e.g. Loops, conditional statements, method calls and object oriented structures. Programs are then instrumented at the critical areas of source code where bugs or failures are most likely to occur Sampling process is next to instrumentation activity. It involves the implementation of predicates in the form of specialized checks at the specified instrumented sites. Next to sampling, ranking of predicates will be performed by using Tarantula fault localization technique. Predicate ranking will be performed by looking at the successful completion of iteration with in specified range. The output generated from the sampled program will be analyzed by using SOBER and Cause Isolation Scheme algorithms. Predicates results will be normalized to visualize the high and low critical bugs within the inspected source code.
  • 29.
  • 31. Impact of bugs on normal execution of source code.
  • 32. Code coverage related to identified bugs.
  • 33.
  • 34. Results Result analysis was performed based on observation of following attributes for instrumented predicates:
  • 36. Results Single - Bug Version Cont… Mean Median
  • 37. Results Single - Bug Version Cont… Triangle
  • 38. Results Single - Bug Version Cont… Create_file
  • 39. Results Single - Bug Version Cont… Generate_Product_Table
  • 40. Results Multi - Bug Version Evaluate_Polynomial
  • 41. Results Multi - Bug Version Cont… Evaluate_Polynomial
  • 42. Comparative validation of SOBER & Cause Isolation Scheme
  • 43. Comparative validation Cont... Located Bugs w.r.t Examined code SOBBER - Cause Isolation Scheme debugging of Evaluate_Polynomial.rb
  • 44. Comparative validation Cont… Located Bugs w.r.t Examined code SOBER - LIBLIT debugging of JRuby_Calculator .rb
  • 45. Comparative validation Cont… Located Bugs w.r.t Examined code SOBER - LIBLIT debugging of JRuby_Calculator .rb
  • 46.
  • 47. Commencement of statistical debugging algorithms for program developed in Ruby programming language.
  • 48.
  • 49.