Generalized algorithmic debugging and testing

Peter Fritzson, T. Gyimóthy, Mariam Kamkar, Nahid Shahmehri

Research output: Chapter in Book/Report/Conference proceedingConference contribution

1 Citation (Scopus)

Abstract

This paper presents a version of generalized algorithmic debugging integrated with the category partition method for functional testing. In this way the efficiency of the algorithmic debugging method for semi-automatic 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 non-trivial 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 [Shapiro-83], is however limited to small Prolog programs without side-effects. 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 match these against test cases in the test database. In addition, 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. A prototype generalized algorithmic debugger for Pascal, and a test case generator for real size application programs in Pascal, C, dBase and LOTUS have been implemented.

Original languageEnglish
Title of host publicationProceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
PublisherAssociation for Computing Machinery
Pages317-326
Number of pages10
VolumePart F129844
ISBN (Print)0897914287
Publication statusPublished - May 1 1991
Event1991 ACM SIGPLAN 1991 Conference on Programming Language Design and Implementation, PLDI 1991 - Ottawa, Canada
Duration: Jun 24 1991Jun 28 1991

Other

Other1991 ACM SIGPLAN 1991 Conference on Programming Language Design and Implementation, PLDI 1991
CountryCanada
CityOttawa
Period6/24/916/28/91

Fingerprint

Testing
Data flow analysis
Application programs
Specifications

ASJC Scopus subject areas

  • Software

Cite this

Fritzson, P., Gyimóthy, T., Kamkar, M., & Shahmehri, N. (1991). Generalized algorithmic debugging and testing. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) (Vol. Part F129844, pp. 317-326). Association for Computing Machinery.

Generalized algorithmic debugging and testing. / Fritzson, Peter; Gyimóthy, T.; Kamkar, Mariam; Shahmehri, Nahid.

Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). Vol. Part F129844 Association for Computing Machinery, 1991. p. 317-326.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Fritzson, P, Gyimóthy, T, Kamkar, M & Shahmehri, N 1991, Generalized algorithmic debugging and testing. in Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). vol. Part F129844, Association for Computing Machinery, pp. 317-326, 1991 ACM SIGPLAN 1991 Conference on Programming Language Design and Implementation, PLDI 1991, Ottawa, Canada, 6/24/91.
Fritzson P, Gyimóthy T, Kamkar M, Shahmehri N. Generalized algorithmic debugging and testing. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). Vol. Part F129844. Association for Computing Machinery. 1991. p. 317-326
Fritzson, Peter ; Gyimóthy, T. ; Kamkar, Mariam ; Shahmehri, Nahid. / Generalized algorithmic debugging and testing. Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). Vol. Part F129844 Association for Computing Machinery, 1991. pp. 317-326
@inproceedings{532f5346b1f44cf1841c9d2cf5cfe486,
title = "Generalized algorithmic debugging and testing",
abstract = "This paper presents a version of generalized algorithmic debugging integrated with the category partition method for functional testing. In this way the efficiency of the algorithmic debugging method for semi-automatic 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 non-trivial 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 [Shapiro-83], is however limited to small Prolog programs without side-effects. 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 match these against test cases in the test database. In addition, 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. A prototype generalized algorithmic debugger for Pascal, and a test case generator for real size application programs in Pascal, C, dBase and LOTUS have been implemented.",
author = "Peter Fritzson and T. Gyim{\'o}thy and Mariam Kamkar and Nahid Shahmehri",
year = "1991",
month = "5",
day = "1",
language = "English",
isbn = "0897914287",
volume = "Part F129844",
pages = "317--326",
booktitle = "Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)",
publisher = "Association for Computing Machinery",

}

TY - GEN

T1 - Generalized algorithmic debugging and testing

AU - Fritzson, Peter

AU - Gyimóthy, T.

AU - Kamkar, Mariam

AU - Shahmehri, Nahid

PY - 1991/5/1

Y1 - 1991/5/1

N2 - This paper presents a version of generalized algorithmic debugging integrated with the category partition method for functional testing. In this way the efficiency of the algorithmic debugging method for semi-automatic 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 non-trivial 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 [Shapiro-83], is however limited to small Prolog programs without side-effects. 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 match these against test cases in the test database. In addition, 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. A prototype generalized algorithmic debugger for Pascal, and a test case generator for real size application programs in Pascal, C, dBase and LOTUS have been implemented.

AB - This paper presents a version of generalized algorithmic debugging integrated with the category partition method for functional testing. In this way the efficiency of the algorithmic debugging method for semi-automatic 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 non-trivial 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 [Shapiro-83], is however limited to small Prolog programs without side-effects. 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 match these against test cases in the test database. In addition, 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. A prototype generalized algorithmic debugger for Pascal, and a test case generator for real size application programs in Pascal, C, dBase and LOTUS have been implemented.

UR - http://www.scopus.com/inward/record.url?scp=79960494426&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=79960494426&partnerID=8YFLogxK

M3 - Conference contribution

SN - 0897914287

VL - Part F129844

SP - 317

EP - 326

BT - Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)

PB - Association for Computing Machinery

ER -