• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Statistical debuging for programs written in dynamic programming language   ruby
 

Statistical debuging for programs written in dynamic programming language ruby

on

  • 777 views

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 ...

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.

The aim of this study is to investigate existing statistical debugging techniques for programs coded in modern dynamic programming languages like Ruby.

Statistics

Views

Total Views
777
Views on SlideShare
777
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Statistical debuging for programs written in dynamic programming language   ruby Statistical debuging for programs written in dynamic programming language ruby Presentation Transcript

    • 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
      • Introduction
      • Research Questions
      • Research Design
      • Results
      • Contribution
      • Future Work
    • Introduction
      • Software Debugging
      “Debugging is the activity of identification of actions and events that causes for failure of mid level crash down of normal execution of program before ending to final stage [1]”
      • Debugging Process consist of
      Detecting failure
      Localizing fault
      Correcting fault
    • Introduction Cont…
      • Statistical Debugging
      • 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.
    • Introduction Cont…
      • Statistical Debugging
      • Goal of Statistical Debugging
      • Identify distinct bugs in source code.
      • Ranking the predicate that best predicts the bug.
    • Introduction Cont...
      • Problem Description
      • 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
    • Introduction cont...
      • Aim
      The aim of this study is to investigate existing statistical debugging techniques for programs coded in modern dynamic programming languages like Ruby.
    • Introduction cont...
      • Objectives
      • 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.
    • Research Questions
      RQ1: What are the existing statistical debugging techniques adaptable for Dynamic programming languages?
      RQ2 How many existing techniques for statistical debugging
      are adapted to work in the context of various dynami
      programming languages?
      RQ3How to adapt statistical debugging algorithm SOBER
      and Cause Isolation Scheme in RUBY?
      RQ4 How will SOBER and Cause Isolation Scheme perform
      when these will be applied on sample programs
      developed in RUBY?
    • 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
      • Subject selection
      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 Studied
      • Identification of bug localities
      • Impact of bugs on normal execution of source code.
      • Code coverage related to identified bugs.
      • Predicates results observation template
    • Experiment Execution Cont...
      Test Candidate Programs
    • Results
      Result analysis was performed based on observation of following attributes for instrumented predicates:
    • Results Single-Bug version
    • Results Single - Bug Version Cont…
      Mean Median
    • Results Single - Bug Version Cont…
      Triangle
    • Results Single - Bug Version Cont…
      Create_file
    • Results Single - Bug Version Cont…
      Generate_Product_Table
    • Results Multi - Bug Version
      Evaluate_Polynomial
    • Results Multi - Bug Version Cont…
      Evaluate_Polynomial
    • Comparative validation of SOBER & Cause Isolation Scheme
    • Comparative validation Cont...
      Located Bugs w.r.t Examined code
      SOBBER - Cause Isolation Scheme debugging of Evaluate_Polynomial.rb
    • Comparative validation Cont…
      Located Bugs w.r.t Examined code
      SOBER - LIBLIT debugging of JRuby_Calculator .rb
    • Comparative validation Cont…
      Located Bugs w.r.t Examined code
      SOBER - LIBLIT debugging of JRuby_Calculator .rb
    • Contribution
      • Identification of most mature existing statistical debugging techniques
      • Commencement of statistical debugging algorithms for program developed in Ruby programming language.
      • Introducing a dynamic predicate evaluation process for programs coded in RUBY programming Language.
    • Future Work
      • Validation of proposed process for complex application developed in RUBY & RUBY ON RAILS.
      • Development of statistical debugging tool that can highlight the bug localities and also perform the statistical analysis of dynamically generated predicates.
    • Questions???