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.
Preview
Unable to display preview. Download preview PDF.
References
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.
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.
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.
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.
Chandy, K., and Lamport, L. Distributed snapshots: Determining global states of distributed systems. ACM Trans. Comput. Syst. 3, 1 (1985), 63–75.
Cooper, R., and Marzullo, K. Consistent detection of global predicates. Sigplan Notices (1991), 167–174.
Fagerstrom, J. Design and test of distributed applications. In Proceedings of the Tenth International Conference of Software Engineering (1988), pp. 88–92.
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.
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.
Goldberg, A., Gopal, A., Lowry, A., and Strom, R. Restoring consistent global computation of distributed computations. Sigplan Notices (1991), 144–154.
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.
Lamport, L. Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21, 7 (1978), 558–565.
Leblanc, T., and Mellor-Crummy, J. Debugging parallel programs with instant replay. IEEE Transactions on Computers C-36, 4 (1987), 471–482.
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.
Manabe, Y., and Imase, M. Global conditions in debugging distributed programs. Journal of Parallel and Distributed Computing (1992), 62–69.
Marzullo, K., and Neiger, G. Detection of global state predicates. In Distributed Algorithms Proceedings of 3rd International Workshop. Springer-Verlag, 1991, pp. 254–272.
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.
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.
Muhlhauser, M. Software engineering for distributed applications: The design project. In Proceedings of the Tenth International Conference on Software Engineering (1988), pp. 93–101.
Netzer, R. H. B., and Miller, B. P. Optimal tracing and replay for debugging message-passing parallel programs. In Supercomputing (1992), pp. 502–511.
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.
Spezialetti, M.A generalized approach to monitoring distributed computations for event occurrences. PhD thesis, University of Pittsburgh, Pittsburgh, Pennsylvania, 1989.
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.
Taylor, R., Levine, D., and Kelly, C. Structural testing of concurrent programs. IEEE Trans. Softw. Eng. 18, 3 (1992), 206–215.
Venkatesan, S. Reproducible execution of distributed programs. Computer Science Technical Report UTDCS-8-91, The University of Texas at Dallas, 1991.
Venkatesan, S., and Dathan, B. Testing and debugging distributed programs distributively. In Proceedings of Thirtieth Annual Allerton Conference on Communication, Control and Computing (1992).
West, C. General technique for communications protocol validation. IBM Journal of Research and Development 22, 4 (1978), 393–404.
Author information
Authors and Affiliations
Editor information
Rights 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