Statistical Debugging of Programs written in Dynamic Programming Language - RUBY<br />Master Thesis <br />Software Enginee...
Agenda<br /><ul><li>Introduction
 Research Questions
 Research Design
 Results
 Contribution
 Future Work</li></li></ul><li>Introduction<br /><ul><li>Software Debugging</li></ul>“Debugging is the activity of identif...
Introduction Cont…<br /><ul><li>Statistical Debugging
The Statistical debugging technique sketch out the program’s source code to gather data flow, program flows, program state...
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.</li></li></ul><li>In...
Goal of Statistical Debugging
Identify distinct bugs in source code.
Ranking the predicate that best predicts the bug.</li></li></ul><li>Introduction Cont...<br /><ul><li>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...
No empirically validated process for utilizing both testing approaches in combination</li></li></ul><li>Introduction cont....
Introduction cont...<br /><ul><li>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.</li...
Research Design<br />Literature Review<br />Qualitativestudy of DebuggingAlgorithms<br />Phase 1<br />Observations from pr...
Objectives & Research Methodology<br />Objective 1<br />Literaturereview<br />Proposed process of statisticaldebugging for...
System Requirements<br />Software Requirements<br />Analysis<br />Verification<br />Design<br />Testing during execution<b...
Existing Techniques of Statistical Debugging<br />
 Process design<br />Programs will be implemented with standard structures e.g. Loops, conditional statements, method call...
Experiment Execution<br /><ul><li>Subject selection</li></ul>We have selected the source codes related to different scenar...
Identification of bug localities
Impact of bugs on normal execution of source code.
Upcoming SlideShare
Loading in …5
×

Statistical debuging for programs written in dynamic programming language ruby

834 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
834
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Statistical debuging for programs written in dynamic programming language ruby

  1. 1. Statistical Debugging of Programs written in Dynamic Programming Language - RUBY<br />Master Thesis <br />Software Engineering <br />Thesis no: MSE-2010-33 <br />December 2010 <br />AdeelAkhter<br />Hassan Azhar<br />
  2. 2. Agenda<br /><ul><li>Introduction
  3. 3. Research Questions
  4. 4. Research Design
  5. 5. Results
  6. 6. Contribution
  7. 7. Future Work</li></li></ul><li>Introduction<br /><ul><li>Software Debugging</li></ul>“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]”<br /><ul><li>Debugging Process consist of </li></ul>Detecting failure <br />Localizing fault <br />Correcting fault <br />
  8. 8. Introduction Cont…<br /><ul><li>Statistical Debugging
  9. 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. 10. Instrumentation is a process of predicates insertion with in the source code.
  11. 11. Analysis of instrumented code will provide the visualization of buggy areas with in the source code.</li></li></ul><li>Introduction Cont…<br /><ul><li>Statistical Debugging
  12. 12. Goal of Statistical Debugging
  13. 13. Identify distinct bugs in source code.
  14. 14. Ranking the predicate that best predicts the bug.</li></li></ul><li>Introduction Cont...<br /><ul><li>Problem Description
  15. 15. Adapting existing statistical debugging techniques adaptable for Dynamic Programming Languages.
  16. 16. Evaluating statistical debugging algorithm SOBER and Cause Isolation Scheme for programs coded in RUBY language.
  17. 17. Literature lacks in providing the evaluation process of statistical debugging and fault localization for programs coded in RUBY language.
  18. 18. No empirically validated process for utilizing both testing approaches in combination</li></li></ul><li>Introduction cont...<br /><ul><li>Aim</li></ul>The aim of this study is to investigate existing statistical debugging techniques for programs coded in modern dynamic programming languages like Ruby.<br />
  19. 19. Introduction cont...<br /><ul><li>Objectives
  20. 20. Identify and evaluate the existing statistical debugging algorithms for dynamic programming languages.
  21. 21. To implement the most mature statistical debugging algorithm and adapt them to the Ruby language.
  22. 22. Evaluation and analysis of SOBER and Cause Isolation Scheme algorithms in RUBY language programs.
  23. 23. Comparative validation of SOBER and Cause Isolation Scheme debugging algorithm on programs developed in RUBY language.</li></li></ul><li>Research Questions<br /> RQ1: What are the existing statistical debugging techniques adaptable for Dynamic programming languages?<br /> RQ2 How many existing techniques for statistical debugging <br /> are adapted to work in the context of various dynami<br /> programming languages?<br /> RQ3How to adapt statistical debugging algorithm SOBER<br /> and Cause Isolation Scheme in RUBY?<br /> RQ4 How will SOBER and Cause Isolation Scheme perform<br /> when these will be applied on sample programs <br /> developed in RUBY?<br />
  24. 24. Research Design<br />Literature Review<br />Qualitativestudy of DebuggingAlgorithms<br />Phase 1<br />Observations from previous studies<br />Design statisticaldebugging process for programs developed in RUBY language<br />Phase 2<br />Implementation of debugging process in RUBY programs<br />Resultsanalysisusing SOBER and Cause Isolation SchemeAlgorithms<br />Process validation<br />Phase 3<br />QuantitativeAnalysis<br />Phase 4<br />Analysis, results and conclusion<br />
  25. 25. Objectives & Research Methodology<br />Objective 1<br />Literaturereview<br />Proposed process of statisticaldebugging for programs in RUBY<br />Objective 2<br />Objective 3<br />Implementation, Analysis & validation of proposed process<br />Observations & conclusion<br />Objective 4<br />Resultsanalysisusing SOBER and Cause Isolation SchemeAlgorithms<br />
  26. 26. System Requirements<br />Software Requirements<br />Analysis<br />Verification<br />Design<br />Testing during execution<br />Coding<br />Static Testing<br />Testing<br />Production / Deployment<br />Debugging<br />Software debugging, testing and verification<br />
  27. 27. Existing Techniques of Statistical Debugging<br />
  28. 28. Process design<br />Programs will be implemented with standard structures e.g. Loops, conditional statements, method calls and object oriented structures.<br />Programs are then instrumented at the critical areas of source code where bugs or failures are most likely to occur<br />Sampling process is next to instrumentation activity. It involves the implementation of predicates in the form of specialized checks at the specified instrumented sites.<br />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.<br />The output generated from the sampled program will be analyzed by using SOBER and Cause Isolation Scheme algorithms. <br />Predicates results will be normalized to visualize the high and low critical bugs within the inspected source code.<br />
  29. 29. Experiment Execution<br /><ul><li>Subject selection</li></ul>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.<br /><ul><li>Object Studied
  30. 30. Identification of bug localities
  31. 31. Impact of bugs on normal execution of source code.
  32. 32. Code coverage related to identified bugs.
  33. 33. Predicates results observation template</li></li></ul><li> Experiment Execution Cont...<br />Test Candidate Programs<br />
  34. 34. Results<br />Result analysis was performed based on observation of following attributes for instrumented predicates: <br />
  35. 35. Results Single-Bug version<br />
  36. 36. Results Single - Bug Version Cont…<br />Mean Median<br />
  37. 37. Results Single - Bug Version Cont…<br />Triangle<br />
  38. 38. Results Single - Bug Version Cont…<br />Create_file<br />
  39. 39. Results Single - Bug Version Cont…<br />Generate_Product_Table<br />
  40. 40. Results Multi - Bug Version<br />Evaluate_Polynomial<br />
  41. 41. Results Multi - Bug Version Cont…<br />Evaluate_Polynomial<br />
  42. 42. Comparative validation of SOBER & Cause Isolation Scheme<br />
  43. 43. Comparative validation Cont... <br />Located Bugs w.r.t Examined code <br />SOBBER - Cause Isolation Scheme debugging of Evaluate_Polynomial.rb<br />
  44. 44. Comparative validation Cont…<br />Located Bugs w.r.t Examined code<br />SOBER - LIBLIT debugging of JRuby_Calculator .rb<br />
  45. 45. Comparative validation Cont…<br />Located Bugs w.r.t Examined code<br />SOBER - LIBLIT debugging of JRuby_Calculator .rb<br />
  46. 46. Contribution<br /><ul><li>Identification of most mature existing statistical debugging techniques
  47. 47. Commencement of statistical debugging algorithms for program developed in Ruby programming language.
  48. 48. Introducing a dynamic predicate evaluation process for programs coded in RUBY programming Language.</li></li></ul><li>Future Work<br /><ul><li>Validation of proposed process for complex application developed in RUBY & RUBY ON RAILS.
  49. 49. Development of statistical debugging tool that can highlight the bug localities and also perform the statistical analysis of dynamically generated predicates.</li></li></ul><li>Questions???<br />

×