Rational debugging in logic programming
Proceedings on Third international conference on logic programming
A review of automated debugging systems: knowledge, strategies and techniques
ICSE '88 Proceedings of the 10th international conference on Software engineering
Information Processing Letters
Algorithm debugging of GHC programs and its implementation in GHC
Concurrent Prolog: collected papers
The category-partition method for specifying and generating fuctional tests
Communications of the ACM
Concurrent algorithmic debugging
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
SYS/3—a software development tool
CC '90 Proceedings of the third international workshop on Compiler compilers
Generalized algorithmic debugging and testing
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Techniques for debugging parallel programs with flowback analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Using assertions in declarative and operational models for automated debugging
Journal of Systems and Software
Programmers use slices when debugging
Communications of the ACM
Algorithmic Program DeBugging
An efficient way to find the side effects of procedure calls and the aliases of variables
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Bug Localization by Algorithmic Debugging and Program Slicing
PLILP '90 Proceedings of the 2nd International Workshop on Programming Language Implementation and Logic Programming
Interprocedural Dynamic Slicing
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
Algorithmic Debugging for Lazy Functional Languages
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
Single-Assignment Semantics for Imperative Programs
PARLE '89 Proceedings of the Parallel Architectures and Languages Europe, Volume II: Parallel Languages
A method for determining the side effects of procedure calls.
A method for determining the side effects of procedure calls.
An efficient relevant slicing method for debugging
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Compositional explanation of types and algorithmic debugging of type errors
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
A Debugging Scheme for Declarative Equation Based Modeling Languages
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
Divide-and-query and subterm dependency tracking in the mercury declarative debugger
Proceedings of the sixth international symposium on Automated analysis-driven debugging
Combining algorithmic debugging and program slicing
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Enhancing Theorem Prover Interfaces with Program Slice Information
Electronic Notes in Theoretical Computer Science (ENTCS)
Algorithmic Debugging of Java Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
State of the Practice in Algorithmic Debugging
Electronic Notes in Theoretical Computer Science (ENTCS)
Interactive fault localization using test information
Journal of Computer Science and Technology - Special section on trust and reputation management in future computing systmes and applications
The efficient debugging system for locating logical errors in java programs
ICCSA'03 Proceedings of the 2003 international conference on Computational science and its applications: PartI
Automated debugging in java programs Using HDM
ICCS'03 Proceedings of the 2003 international conference on Computational science
A comparative study of algorithmic debugging strategies
LOPSTR'06 Proceedings of the 16th international conference on Logic-based program synthesis and transformation
A survey on algorithmic debugging strategies
Advances in Engineering Software
EPIA'11 Proceedings of the 15th Portugese conference on Progress in artificial intelligence
Optimal algorithmic debugging and reduced coverage using search in structured domains
HVC'05 Proceedings of the First Haifa international conference on Hardware and Software Verification and Testing
Forensic debugging of model transformations
MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
Hi-index | 0.00 |
This paper presents a method for semi-automatic bug localization, generalized algorithmic debugging, which has been integrated with the category partition method for functional testing. In this way the efficiency of the algorithmic debugging method for bug localization can be improved by using test specifications and test results. The long-range goal of this work is a semi-automatic debugging and testing system which can be used during large-scale program development of nontrivial programs.The method is generally applicable to procedural languages and is not dependent on any ad hoc assumptions regarding the subject program. The original form of algorithmic debugging, introduced by Shapiro, was however limited to small Prolog programs without side-effects, but has later been generalized to concurrent logic programming languages. Another drawback of the original method is the large number of interactions with the user during bug localization.To our knowledge, this is the first method which uses category partition testing to improve the bug localization properties of algorithmic debugging. The method can avoid irrelevant questions to the programmer by categorizing input parameters and then match these against test cases in the test database. Additionally, we use program slicing, a data flow analysis technique, to dynamically compute which parts of the program are relevant for the search, thus further improving bug localization.We believe that this is the first generalization of algorithmic debugging for programs with side-effects written in imperative languages such as Pascal. These improvements together makes it more feasible to debug larger programs. However, additional improvements are needed to make it handle pointer-related side-effects and concurrent Pascal programs.A prototype generalized algorithmic debugger for a Pascal subset without pointer side-effects and a test case generator for application programs in Pascal, C, dBase, and LOTUS have been implemented.