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