Software engineering: a practitioner's approach (2nd ed.)
Software engineering: a practitioner's approach (2nd ed.)
PELAS-Program Error-Locating Assistant System
IEEE Transactions on Software Engineering
Bibliography on debugging and backtracking
ACM SIGSOFT Software Engineering Notes
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Dynamic slicing in the presence of unconstrained pointers
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Data flow coverage and the C language
TAV4 Proceedings of the symposium on Testing, analysis, and verification
An experimental comparison of the effectiveness of the all-uses and all-edges adequacy criteria
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Towards automatic debugging of computer programs
Towards automatic debugging of computer programs
Compiler-integrated software testing
Compiler-integrated software testing
Debugging with dynamic slicing and backtracking
Software—Practice & Experience
Software debugging with dynamic instrumentation and test-based knowledge
Software debugging with dynamic instrumentation and test-based knowledge
Remark on algorithm 408: a sparse matrix package (part 1) [F4]
ACM Transactions on Mathematical Software (TOMS)
Programmers use slices when debugging
Communications of the ACM
Test data as an aid in proving program correctness
Communications of the ACM
Algorithm 408: a sparse matrix package (part I) [F4]
Communications of the ACM
Algorithm and bound for the greatest common divisor of n integers
Communications of the ACM
Communications of the ACM
Software Engineering Economics
Software Engineering Economics
Art of Software Testing
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SELECT—a formal system for testing and debugging programs by symbolic execution
Proceedings of the international conference on Reliable software
A Survey of Program Slicing Techniques.
A Survey of Program Slicing Techniques.
Mutation analysis of program test data
Mutation analysis of program test data
Simplifying failure-inducing input
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
A Flexible Framework for Dynamic and Static Slicing of Logic Programs
PADL '99 Proceedings of the First International Workshop on Practical Aspects of Declarative Languages
Proceedings of the 5th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
PSE: explaining program failures via postmortem static analysis
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
The Efficiency of Critical Slicing in Fault Localization
Software Quality Control
An empirical study of fault localization for end-user programmers
Proceedings of the 27th international conference on Software engineering
Six challenges in supporting end-user debugging
WEUSE I Proceedings of the first workshop on End-user software engineering
Finding failure-inducing changes in java programs using change classification
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Identifying Failure Causes in Java Programs: An Application of Change Impact Analysis
IEEE Transactions on Software Engineering
Crisp--A Fault Localization Tool for Java Programs
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Heuristic ranking of java program edits for fault localization
Proceedings of the 2007 international symposium on Software testing and analysis
Identifying bug signatures using discriminative graph mining
Proceedings of the eighteenth international symposium on Software testing and analysis
Rapid: Identifying Bug Signatures to Support Debugging Activities
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
SherLog: error diagnosis by connecting clues from run-time logs
Proceedings of the fifteenth edition of ASPLOS on Architectural support for programming languages and operating systems
Debugging model-transformation failures using dynamic tainting
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
CAEPIA'09 Proceedings of the Current topics in artificial intelligence, and 13th conference on Spanish association for artificial intelligence
Proceedings of the 33rd International Conference on Software Engineering
Are automated debugging techniques actually helping programmers?
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Mitigating the confounding effects of program dependences for effective fault localization
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
ADMA'05 Proceedings of the First international conference on Advanced Data Mining and Applications
Improving the effectiveness of spectra-based fault localization using specifications
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Is text search an effective approach for fault localization: a practitioners perspective
Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanity
Hi-index | 0.00 |
Developing effective debugging strategies to guarantee the reliability of software is important. By analyzing the debugging process used by experienced programmers, we have found that four distinct tasks are consistently performed: (1) determining statements involved in program failures, (2) selecting suspicious statements that might contain faults, (3) making hypotheses about suspicious faults (variables and locations), and (4) restoring program state to a specific statement for verification. This research focuses support for the second task, reducing the search domain for faults, which we refer to as fault localization.We explored a new approach to enhancing the process of fault localization based on dynamic program slicing and mutation-based testing. In this new approach, we have developed the technique of Critical Slicing to enable debuggers to highlight suspicious statements and thus to confine the search domain to a small region. The Critical Slicing technique is partly based on "statement deletion" mutant operator of the mutation-based testing methodology. We have explored properties of Critical Slicing, such as the relationship among Critical Slicing, Dynamic Program Slicing, and Executable Static Program Slicing; the cost to construct critical slices; and the effectiveness of Critical Slicing. Results of experiments support our conjecture as to the effectiveness and feasibility of using Critical Slicing for fault localization.This paper explains our technique and summarizes some of our findings. From these, we conclude that a debugger equipped with our proposed fault localization method can reduce human interaction time significantly and aid in the debugging of complex software.