Usability criteria for automated debugging systems

  • Nahid Shahmehri
  • Mariam Kamkar
  • Peter Fritzson
Surveys and Tutorials
Part of the Lecture Notes in Computer Science book series (LNCS, volume 749)


Much of the current discussion around automated debugging systems is centered around various technical issues. In contrast, this paper focuses on user oriented usability criteria for automated debugging systems, and reviews several systems according to these criteria. We introduce four usability criteria: generality, cognitive plausibility, degree of automation and appreciation of the user's expertise. A debugging system which is general is able to understand a program without restrictive assumptions about the class of algorithms, the implementation, etc. A cognitively plausible debugging system supports debugging according to the user's mental model, e.g. by supporting several levels of abstraction and directions of bug localization. A high degree of automation means that fewer interactions with the user are required to find a bug. A debugging system that appreciates the user's expertise is suitable for both expert and novice programmers, and has the ability to take advantage of the additional knowledge of an expert programmer to speed up and improve the debugging process. Existing automated debugging systems fulfill these user-oriented requirements to a varying degree. However, many improvements are still needed to make automated debugging systems attractive to a broad range of users.


Logic Program Dependency Graph Execution Trace Intended Behavior Prolog Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AL80]
    Anne Adam and Jean-Pierre Laurent. Laura, A System to Debug Student Programs. Artificial Intelligence, 15(1):75–122, November 1980.Google Scholar
  2. [DE88]
    Mireille Ducassé and Anna-Maria Emde. A Review of Automated Debugging Systems: Knowledge, Strategies, and Techniques. In Proc. of the 10:th International Conference on Software Engineering, 1988. IEEE Press.Google Scholar
  3. [Duc91]
    Mireille Ducassé. Abstract views of Prolog executions in Opium. In Proc. of the International Logic Programming Symposium, San Diego, Oct. 1991, pp 18–32. ed V. Saraswat and K. Ueda, MIT Press.Google Scholar
  4. [Duc93]
    Mireille Ducassé. A Pragmatic Survey of Automated Debugging. In Proc. of AADEBUG'93 — 1:st International Workshop on Automated and Algorithmic Debugging, Linköping University, Linköping, Sweden, May 1993.Google Scholar
  5. [DNTM88]
    Wlodek Drabent, Simin Nadjm-Tehrani, and Jan Maluszynski. The Use of Assertions in Algorithmic Debugging. In Proceedings of the FGCS Conference, pages 573–581, Tokyo, Japan, 1988.Google Scholar
  6. [FGKS91]
    Peter Fritzson, Tibor Gyimothy, Mariam Kamkar, and Nahid Shahmehri. Generalized Algorithmic Debugging and Testing. In Proceedings of the ACM SIGPLAN'91, pages 317–326, Toronto, Ontario, Canada, June 1991. Also accepted to LOPLAS, and as report LiTH-IDA-R-90-42.Google Scholar
  7. [Fri83b]
    Peter Fritzson. Symbolic Debugging Through Incremental Compilation in an Integrated Environment. The Journal of Systems and Software, 3:285–294, 1983.Google Scholar
  8. [FAS92]
    Peter Fritzson, Mikhail Auguston, Nahid Shahmehri: Using Assertions in Declarative and Operational Models for Automated Debugging, Accepted (1992) for publication in the Journal of Systems and Software.Google Scholar
  9. [How82]
    William E. Howden. Weak Mutation Testing and Completeness of Test Sets. IEEE Transactions on Software Engineering, SE-8(4):371–379, 1982.Google Scholar
  10. [JS85]
    W. Lewis Johnsson and Elliot Soloway. Proust Knowledge-Based Program Understanding. IEEE Transactions on Software Engineering, 11(3):267–275, March 1985. Also reprinted in C. Rich and R. C. Waters editors, Readings in Artificial Intelligence and Software Engineering, Morgan Kaufman, 1986.Google Scholar
  11. [Kam93]
    Mariam Kamkar. Interprocedural Dynamic Slicing with Applicationsto Debugging and Testing. Ph.D. Thesis No. 297, Department of Computer Science, Linköping University, April 1993.Google Scholar
  12. [Kor86]
    Bogdan Korel. Dependence-Based Modelling in the Automation of Error Localization in Computer Programs. PhD thesis, Oakland University, 1986.Google Scholar
  13. [Kor88]
    Bogdan Korel. Pelas-Program Error-Locating Assistant System. IEEE Transactions on Software Engineering, 14(9):1253–1260, 1988.Google Scholar
  14. [KSF90]
    Mariam Kamkar, Nahid Shahmehri, and Peter Fritzson. Bug Localization by Algorithmic Debugging and Program Slicing. In Proceedings of the International Conference on Programming Language Implementation and Logic Programming, PLILP'90, pp. 60–74, Linköping, Sweden, Aug. 1990. LNCS 456, Springer-Verlag.Google Scholar
  15. [KSF92.
    Mariam Kamkar, Nahid Shahmehri and Peter Fritzson. Interprocedural Dynamic Slicing. In Proc. of PLILP'92, pp 370–384, Leuven, Belgium Aug 1992. LNCS 631. Earlier version as Tech. Report LiTH-IDA-R-91-20, June 1991.Google Scholar
  16. [Kup89]
    Ron I. Kuper. Dependency-Directed Localization of Software Bugs. Technical report, Artificial Intelligence Laboratory, May 1989. AI-TR 1053.Google Scholar
  17. [Luk80]
    F. J. Lukey. Understanding and Debugging Programs. International Journal on Man-Machine Studies, 12(2):189–202, February 1980.Google Scholar
  18. [LW87]
    James R. Lyle and Mark Weiser. Automatic Program Bug Location by Program Slicing. In The 2:nd IEEE Symposium on Computers and Applications, pages 877–883, Beijing(Peking), China, June 1987.Google Scholar
  19. [Lyl84]
    James R. Lyle. Evaluating Variations on Program Slicing for Debugging. PhD thesis, University of Maryland, December 1984.Google Scholar
  20. [PC89]
    Luis Moniz Pereira and Miguel Calejo. Algorithmic Debugging of Prolog Side-Effects. In Fourth Portuguese Conference on Artificial Intelligence. Springer-Verlag, 1989.Google Scholar
  21. [Per86]
    Luis Moniz Pereira. Rational Debugging in Logic Programming. In Third Logic Programming Conference, pages 203–210, London, England, July 1986.Google Scholar
  22. [Rut76]
    G. R. Ruth. Intelligent Program Analysis. Artificial Intelligence, 1(7), 1976.Google Scholar
  23. [Sev87]
    Rudolph E. Seviora. Knowledge-Based Program Debugging Systems. IEEE Software, 4(3):20–32, May 1987.Google Scholar
  24. [Sha82]
    E. Y. Shapiro. Algorithmic Program Debugging. MIT Press, May 1982.Google Scholar
  25. [Sha91]
    Nahid Shahmehri: Generalized Algorithmic Debugging. Ph.D. thesis, Linköping University, Dec 1991.Google Scholar
  26. [Wei82]
    Mark Weiser. Programmers use Slices when Debugging. Communications of the ACM, 25(7):446–452, July 1982.Google Scholar
  27. [Wei84]
    Mark Weiser. Program Slicing. IEEE Transactions on Software Engineering Se-10(4):352–357, July 1984.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Nahid Shahmehri
    • 1
  • Mariam Kamkar
    • 1
  • Peter Fritzson
    • 1
  1. 1.Department of Computer and Information ScienceLinköping UniversityLinköpingSweden

Personalised recommendations