skip to main content
research-article

Testing and Debugging Distributed Programs Using Global Predicates

Published: 01 February 1995 Publication History

Abstract

Testing and debugging programs are more involved in distributed systems than in uniprocessor systems because of the presence of the communication medium and the inherent concurrency. Past research has established that predicate testing is an approach that can alleviate some of the problems in this area. However, checking whether a general predicate is true in a particular distributed execution appears to be a computationally hard problem. This paper considers a class of predicates called conjunctive form predicates (CFP) that is quite useful in distributed program development, but can be tested efficiently. We develop fully-distributed algorithms to test CFP's, prove that these algorithms are correct, and analyze them for their message complexity. The analysis shows that our techniques incur a fairly low overhead on the distributed system.

References

[1]
A. Aho, A. Dahbura, D. Lee, and M. Uyar, “An optimization technique for protocol conformance test generation based on UIO sequences and rural chinese postman tours,” in Proc. IFIP Int. Workshop on Protocol Specification, Testing and Verification, 1988.
[2]
P. Bates and J. Wiledon, “High-level debugging of distributed systems: The behavioral abstraction approach,” J. Syst. Software 3, vol. 4, pp. 255–264, 1983.
[3]
P. A. Bernstein, N. Goodman and V. Hadzilacos, Concurrency Control and Recovery in Database Systems. Reading, MA: Addison-Wesley, 1987.
[4]
R. Carver and K. Tai, “Reproducible testing of concurrent software based on shared variable,” in the 11th IEEE Int. Conf. Distrib. Comput. Syst., 1991, pp. 552–559.
[5]
——, “Static analysis of concurrent software for deriving synchronization constraints,” in Proc. Eleventh IEEE Int. Conf. Distrib. Comput. Syst., 1991, pp. 544–551.
[6]
K. M. Chandy and L. Lamport, “Distributed snapshots: Determining global states of distributed systems,” ACM Trans. Comput. Syst. 3, vol. 1, 1985, pp. 63–75.
[7]
W.-H. Chen, C.-S. Lu, E. Brozovsky and Wang, “An optimization technique for protocol conformance testing using multiple UIO sequences,” Inform. Process. Lett., vol. 36, pp. 7–12, 1990.
[8]
R. Cooper and K. Marzullo, “Consistent detection of global predicates,” SIGPLAN Notices, pp. 167–174, 1991.
[9]
J. Fagerstrom, “Design and test of distributed applications,” in Proc. Tenth Int. Conf. Software Eng., pp. 88–92, 1988.
[10]
J. Fidge, “Timestamps in message passing systems that preserve the partial ordering,” in Proc. 11th Australian Comput. Sci. Conf., 1988, pp. 55–66.
[11]
V. Garg and B. Waldecker, “Detection of unstable predicates in distributed programs,” in Proc. Int. Conf. Foundations of Software Technol. and Theoretical Comput. Sci., 1992, Springer-Verlag.
[12]
D. Haban and W. Weigel, “Global events and global breakpoints in distributed systems,” in Proc. 21st Int. Conf. Syst. Sci., 1988, pp. 166–175.
[13]
W. E. Howden, “Reliability of the path analysis testing strategy,” IEEE Trans. Softw. Eng., vol. 3, pp. 471–482, Feb. 1976.
[14]
L. Lamport, “Time, clocks and the ordering of events in a distributed system,” Commun. ACM, pp. 558-565, 1978.
[15]
W. Lloyd and P. Kearns, “Using tracing to direct our reasoning about distributed programs,” in Proc. 11th IEEE Int. Conf. Distrib. Comput. Syst., 1991, pp. 552–559.
[16]
T. Leblanc and J. Mellor-Crummy, “Debugging parallel programs with instant replay,” IEEE Trans. Comput., vol. C-36, pp. 471–482, 1987.
[17]
Y. Manabe and M. Imase, “Global conditions in debugging distributed programs,” J. Parallel Distrib. Comput., pp. 62–69, 1992.
[18]
K. Marzullo and G. Neiger, “Detection of globalstate predicates,” in Proc. Fifth Int. Workshop on Distrib. Algorithms, 1991, Springer-Verlag, pp. 254–272.
[19]
F. Mattern, “Virtual time and global states of distributed systems,” in Parallel and Distrib. Algorithms: Proceedings of the Int. Workshop on Parallel and Distrib. Algorithms, 1989, pp. 215–226.
[20]
B. Miller and J.-D. Choi, “Breakpoints and halting in distributed programs,” in 8th IEEE Int. Conf. Distrib. Comput. Syst., 1988, pp. 316–323.
[21]
M. Muhlhauser, “Software engineering for distributed applications: The design project,” in Proc. Tenth Int. Conf. Software Eng., 1988, pp. 93–101.
[22]
K. Ramarao and S. Venkatesan, “On finding and updating shortest paths distributively,” J. Algorithms, vol. 13, no. 2, pp. 235–257, 1992.
[23]
K. Sabnani and A. Dahbura, “A protocol test generation procedure,” Comput. Networks and ISDN Syst., vol. 15, pp. 285–297, 1988.
[24]
Y. Shen, F. Lombardi, and A. Dahbura, “Protocol conformance testing using multiple UIO sequences,” in Proc. IFIP Int. Workshop on Protocol Specification, Testing and Verification, 1989.
[25]
M. Singhal, “A dynamic information-structure mutual exclusion algorithm for distributed systems,” IEEE Trans. Parallel Distrib. Syst., vol. 3, pp. 121–125, 1992.
[26]
M. Singhal and A. Kshemkalyani, “An efficient implementation of vector clocks,” Inform. Process. Lett., vol. 43, pp. 47–52, 1992.
[27]
M. Spezialetti, “A generalized approach to monitoring distributed computations for event occurrences,” Ph.D. dissertation, Univ. Pittsburgh, Pittsburgh, PA, 1989.
[28]
M. Spezialetti and P. Kearns, “Simultaneous regions: A framework for the consistent monitoring of distributed computations,” in Proc. Ninth IEEE Int. Conf. Distrib. Comput. Syst., 1989, pp. 61–68.
[29]
K. Tai, R. Carver, and E. Obaid, “Debugging Ada concurrent programs by deterministic execution,” IEEE Trans. Software Eng., vol. 17, pp. 45–63, 1991.
[30]
R. Taylor, D. Levine and C. Kelly, “Structural testing of concurrent programs,” IEEE Trans. Softw. Eng., vol. 18, pp. 206–215, 1992.
[31]
C. West, “Protocol validation in complex systems,” in Proc. ACM Symp. Commun. Archit. and Protocols, 1989, pp. 303–312.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering  Volume 21, Issue 2
February 1995
120 pages
ISSN:0098-5589
Issue’s Table of Contents

Publisher

IEEE Press

Publication History

Published: 01 February 1995

Author Tags

  1. Distributed algorithms
  2. asynchronous distributed systems
  3. distributed debugging
  4. distributed testing
  5. global predicates
  6. message complexity.

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media