Skip to main content
Log in

Experimental Evaluation of Program Slicing for Fault Localization

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

Abstract

Debugging large and complex software systems requires significant effort since it is very difficult to localize and identify faults. Program slicing has been proposed to efficiently localize faults in the program. Despite the fact that a number of debug systems using program slicing, have been developed, the usefulness of this method to fault localization has not been sufficiently evaluated. This paper aims to experimentally evaluate the usefulness of the program slicing method to fault localization. In order to conduct the experiment, we first developed a debug tool based on program slicing, after which two experimental projects were conducted, in which subjects (debuggers) were divided into two groups. A program that includes several faults is given to each subject of the group. Each subject in Group 1 localizes the faults by using the slicing-based method, whereas in Group 2 each subject localizes the faults by using the conventional debugger-based method. Finally, the effectiveness of program slicing is analyzed by comparing the data collected from both groups. As the results of these experiments, we confirm that the program slicing method is indeed useful to localize program faults.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Agrawal, H., and Horgan J. R, 1990. Dynamic Program Slicing, Proceedings of ACM SIGPLAN'90 Conference on Programming Language Design and Implementation. New York: ACM Press. 246–256.

    Google Scholar 

  • Agrawal H., Demillo, R. A., and Spafford, E. H. 1993. Debugging with Dynamic Slicing and Backtracking. Software: Practice and Experience 23(6): 589–616.

    Google Scholar 

  • Ashida, Y., Ohata, F., and Inoue, K. 1999. SlicingMethod s Using Static and Dynamic Information. Proceedings of the sixth Asia Pacific Software Engineering Conference 344–350.

  • Basili, V. R., 1997. Evolving and Packaging Reading Technologies. Journal of Systems and Software 38(1): 3–12.

    Google Scholar 

  • Basili, V. R., Caldiera, G., and Rombach, H. D. 1994. Goal Question Metric Paradigm. In: John J. Marciniak (ed): Encyclopedia of Software Engineering. vol. 1, John Wiley & Sons. 528–532.

  • Collofello J. S., and Woodfield, S. N. 1989. Evaluatingthe Effectiveness of Reliability-Assurance Techniques. Journal of Systems and Software 9(3): 191–195.

    Google Scholar 

  • Frakes, W. B., Fox, C. J., and Nejmeh, B. A. 1991. Software Engineering in the UNIX/C Environment. Englewood Cliffs, New Jersey, USA: Prentice-Hall.

    Google Scholar 

  • Fritzson, P., Gyimothy, T., Kamkar, M., and Shahmehri, N. 1991. Generalized Algorithmic Debugging and Testing. Proceedings of ACM SIGPLAN'91 Conference on Programming Language Design and Implementation. 317–326.

  • Humphrey, W. S. 1989. Managing the Software Process. Software Engineering Institute, Addison-Wesley, Reading, MA.

    Google Scholar 

  • IEEE Standard Glossary of Software Engineering Terminology. 1990. IEEE, ANSI/IEEE Std 610.12-1990.

  • Inoue, K., Ohata F., and Ashida, Y. 2000. Lightweight Semi-dynamic Methods for Efficient and Effective Program Slicing. Technical Report of Osaka University, Department of Information and Computer Sciences, IIP Lab, IIP-06-05-00.

  • Korel, B., 1988. PELAS-Program Error-Locating Assistant System. IEEE Transactions on Software Engineering, 14(9): 1253–1260.

    Google Scholar 

  • Korel, B., and Laski, J. 1990. Dynamic Slicingof Computer Programs. Journal of Systems and Software 13: 187–195.

    Google Scholar 

  • Lian, L., Kusumoto, S., Kikuno, T., Matsumoto, K., and Torii, K. 1997. A New Fault LocalizingMethod for Program Debugging Process. Information and Software Technology 39: 271–284.

    Google Scholar 

  • Lyle, J. R., and Weiser, M. 1987. Automatic Program Bug Location by Program Slicing. Proceedings of second International Conference on Computers and Applications, 877–882.

  • Myers, G. J., 1979. The Art of Software Testing. Wiley-Interscience.

  • Nishimatsu, A., Kusumoto, S., and Inoue, K. 1998a An Experimental Evaluation of Program Slicing on Fault Localization Process. Technical Report of IEICE, SS98-3, pp. 17–24 (in Japanese).

  • Nishimatsu, A., Kusumoto, S., and Inoue, K. 1988b An Experimental Evaluation of Program Slicing on Software Maintenance Process. Technical Report of IEICE SS97-87, pp. 79–86 (in Japanese).

  • Ottenstein, K. J., and Ottenstein, L. M. 1984. The Program Dependence Graph in a Software Development Environment. In: Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, ACM SIGPLAN Notices 19(5): 177–184.

    Google Scholar 

  • Sato, S., Iida, H., and Inoue, K. 1996. Software DebugSupportingTool Based on Program Dependence Analysis. Transactions. on IPSJ 37(4): 536–545 (in Japanese).

    Google Scholar 

  • Shiba, Y., Watanabe, H., and Ishizuka, T. 1984. Statistical Dictionary. Shinyousha (in Japanese).

  • Shimomura, T. 1993. Critical Slice-Based Fault Localization for Any Type of Error. IEICE Transactions on Information and Systems E76-D(6): 656–667.

    Google Scholar 

  • Takaya, N. 1994. Program Simplification Method Based on I/O Restriction. Master dissertation, Osaka University.

  • Tichy, W. F., Harbermann, N., and Prechelt, 1993. Future Directions in Software Engineering. ACM SIGSOFT, Software Engineering Notes 18(1): 35–48.

    Google Scholar 

  • Ueda, R., Lian, L., Inoue, K., and Torii, K. 1993. Dependence Analysis and Program Slicing of Recursive Programs. Technical Report of IEICE, SS93-24, pp. 33–40.

  • Venkatesh, G. A. 1995. Experimental Results from Dynamic Slicingof C Programs. ACM Transactions on Programming Languages and Systems 17(2): 197–216.

    Google Scholar 

  • Weiser, M. 1982. Programmers Use Slices When Debugging. Communications of the ACM 25(7): 446–452.

    Google Scholar 

  • Weiser M. 1984. Program Slicing. IEEE Transactions on Software Engineering 10(4): 352–357.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Kusumoto, S., Nishimatsu, A., Nishie, K. et al. Experimental Evaluation of Program Slicing for Fault Localization. Empirical Software Engineering 7, 49–76 (2002). https://doi.org/10.1023/A:1014823126938

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1014823126938

Navigation