Hierarchy in testing distributed programs

  • Sridhar Alagar
  • S. Venkatesan
Testing and Debugging of Concurrent and Distributed Systems
Part of the Lecture Notes in Computer Science book series (LNCS, volume 749)


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.


Distributed Algorithm Global States Input space Distributed test cases Predicate-based testing Message Complexity 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [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. [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. [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. [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. [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. [6]
    Cooper, R., and Marzullo, K. Consistent detection of global predicates. Sigplan Notices (1991), 167–174.Google Scholar
  7. [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. [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. [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. [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. [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. [12]
    Lamport, L. Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21, 7 (1978), 558–565.Google Scholar
  13. [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. [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. [15]
    Manabe, Y., and Imase, M. Global conditions in debugging distributed programs. Journal of Parallel and Distributed Computing (1992), 62–69.Google Scholar
  16. [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. [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. [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. [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. [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. [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. [22]
    Spezialetti, M.A generalized approach to monitoring distributed computations for event occurrences. PhD thesis, University of Pittsburgh, Pittsburgh, Pennsylvania, 1989.Google Scholar
  23. [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. [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. [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. [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. [27]
    West, C. General technique for communications protocol validation. IBM Journal of Research and Development 22, 4 (1978), 393–404.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Sridhar Alagar
    • 1
  • S. Venkatesan
    • 1
  1. 1.Computer Science Program, EC 31University of Texas at DallasRichardson

Personalised recommendations