Skip to main content

Hierarchy in testing distributed programs

  • Testing and Debugging of Concurrent and Distributed Systems
  • Conference paper
  • First Online:
Automated and Algorithmic Debugging (AADEBUG 1993)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 749))

Included in the following conference series:

Abstract

Testing distributed programs, a problem of theoretical and practical significance and closely related to debugging, is more involved than testing sequential programs because of the presence of multiple points of control, the asynchronous communication medium, and the inherent concurrency. This paper develops a hierarchical approach, consisting of three levels, to dynamic testing of distributed programs. Several problems arising in these levels are computationally hard. In certain restricted cases, the second and the third levels are easier to handle. Several important issues are considered and distributed algorithms are presented. Some of the techniques presented in level 2 and level 3 are useful for debugging distributed programs also.

This research was supported in part by NSF under Grant No. CCR-9110177, by the Texas Advanced Technology Program under Grant No. 9741-036, and by a grant from Alcatel Network Systems.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ahuja, M., Kshemkalyani, A., and Carlson, T. A basic unit of computation in distributed systems. In Proceedings of the Tenth International Conference on Distributed Computing Systems (1990), IEEE, pp. 12–19.

    Google Scholar 

  2. Alagar, S., and Venkatesan, S. Hierarchy in testing distributed programs. Computer Science Technical Report UTDCS-8-92, The University of Texas at Dallas, September 1992.

    Google Scholar 

  3. Bates, P., and Wiledon, J. High-level debugging of distributed systems: The behavioral abstraction approach. Journal of Systems and Software 3, 4 (1983), 255–264.

    Google Scholar 

  4. Carver, R., and Tai, K. Static analysis of concurrent software for deriving synchronization constraints. In Proceedings of the Eleventh International Conference on Distributed Computing Systems (1991), IEEE, pp. 544–551.

    Google Scholar 

  5. Chandy, K., and Lamport, L. Distributed snapshots: Determining global states of distributed systems. ACM Trans. Comput. Syst. 3, 1 (1985), 63–75.

    Google Scholar 

  6. Cooper, R., and Marzullo, K. Consistent detection of global predicates. Sigplan Notices (1991), 167–174.

    Google Scholar 

  7. Fagerstrom, J. Design and test of distributed applications. In Proceedings of the Tenth International Conference of Software Engineering (1988), pp. 88–92.

    Google Scholar 

  8. Fidge, J. Timestamps in message passing systems that preserve the partial ordering. In Proceedings of the 11th Australian Computer Science Conference (1988), pp. 55–66.

    Google Scholar 

  9. Garg, V., and Waldecker, B. Detection of unstable predicates in distributed programs. In Proceedings of the International Conference on Foundations of Software Technology and Theoretical Computer Science (1992), Springer Verlag.

    Google Scholar 

  10. Goldberg, A., Gopal, A., Lowry, A., and Strom, R. Restoring consistent global computation of distributed computations. Sigplan Notices (1991), 144–154.

    Google Scholar 

  11. Howden, W. E. A survey of dynamic analysis methods. In Tutorial: Software Testing and Validation Techniques, E. Miller and W. Howden, Eds., second ed. IEEE Computer Society Press, 1981, pp. 209–231.

    Google Scholar 

  12. Lamport, L. Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21, 7 (1978), 558–565.

    Google Scholar 

  13. Leblanc, T., and Mellor-Crummy, J. Debugging parallel programs with instant replay. IEEE Transactions on Computers C-36, 4 (1987), 471–482.

    Google Scholar 

  14. Lloyd, W., and Kearns, P. Using tracing to direct our reasoning about distributed programs. In The 11th IEEE International Conference on Distributed Computing Systems (1991), pp. 552–559.

    Google Scholar 

  15. Manabe, Y., and Imase, M. Global conditions in debugging distributed programs. Journal of Parallel and Distributed Computing (1992), 62–69.

    Google Scholar 

  16. Marzullo, K., and Neiger, G. Detection of global state predicates. In Distributed Algorithms Proceedings of 3rd International Workshop. Springer-Verlag, 1991, pp. 254–272.

    Google Scholar 

  17. Mattern, F. Virtual time and global states of distributed systems. In Parallel and Distributed Algorithms: Proceedings of the International Workshop on Parallel and Distributed Algorithms, M. Cosnard et. al., Ed. Elsevier Science Publishers B. V., 1989, pp. 215–226.

    Google Scholar 

  18. Miller, B., and Choi, J.-D. Breakpoints and halting in distributed programs. In The 8th IEEE International Conference on Distributed Computing Systems (1988), pp. 316–323.

    Google Scholar 

  19. Muhlhauser, M. Software engineering for distributed applications: The design project. In Proceedings of the Tenth International Conference on Software Engineering (1988), pp. 93–101.

    Google Scholar 

  20. Netzer, R. H. B., and Miller, B. P. Optimal tracing and replay for debugging message-passing parallel programs. In Supercomputing (1992), pp. 502–511.

    Google Scholar 

  21. Ramarao, K., and Venkatesan, S. Distributed problem solving in spite of process failures. In Proceedings of the 11th Symposium on Reliable Distributed systems (1992), pp. 164–171.

    Google Scholar 

  22. Spezialetti, M.A generalized approach to monitoring distributed computations for event occurrences. PhD thesis, University of Pittsburgh, Pittsburgh, Pennsylvania, 1989.

    Google Scholar 

  23. Spezialetti, M., and Kearns, P. Simultaneous regions: A framework for the consistent monitoring of distributed computations. In Proceedings of the Ninth International Conference on Distributed Computing Systems (1989), IEEE, pp. 61–68.

    Google Scholar 

  24. Taylor, R., Levine, D., and Kelly, C. Structural testing of concurrent programs. IEEE Trans. Softw. Eng. 18, 3 (1992), 206–215.

    Google Scholar 

  25. Venkatesan, S. Reproducible execution of distributed programs. Computer Science Technical Report UTDCS-8-91, The University of Texas at Dallas, 1991.

    Google Scholar 

  26. Venkatesan, S., and Dathan, B. Testing and debugging distributed programs distributively. In Proceedings of Thirtieth Annual Allerton Conference on Communication, Control and Computing (1992).

    Google Scholar 

  27. West, C. General technique for communications protocol validation. IBM Journal of Research and Development 22, 4 (1978), 393–404.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Peter A. Fritzson

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Alagar, S., Venkatesan, S. (1993). Hierarchy in testing distributed programs. In: Fritzson, P.A. (eds) Automated and Algorithmic Debugging. AADEBUG 1993. Lecture Notes in Computer Science, vol 749. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0019404

Download citation

  • DOI: https://doi.org/10.1007/BFb0019404

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57417-0

  • Online ISBN: 978-3-540-48141-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics