This Article 
 Bibliographic References 
 Add to: 
Testing and Debugging Distributed Programs Using Global Predicates
February 1995 (vol. 21 no. 2)
pp. 163-177
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.

[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,”inProc. 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. Bernstein, V. Hadzilacos, and N. Goodman, Concurrency Control and Recovery in Database Systems. Addison-Wesley, 1987.
[4] R. Carver and K. Tai,“Reproducible testing of concurrent software based on shared variable,”inthe 11th IEEE Int. Conf. Distrib. Comput. Syst.,1991, pp. 552–559.
[5] ——,“Static analysis of concurrent software for deriving synchronization constraints,”inProc. 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. Computer Systems, Feb. 1985.
[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," in Proc. Workshop Parallel and Distributed Debugging, ACM Press, New York, pp. 163-173.
[9] J. Fagerstrom,“Design and test of distributed applications,”inProc. Tenth Int. Conf. Software Eng.,pp. 88–92, 1988.
[10] J. Fidge,“Timestamps in message passing systems that preserve the partial ordering,”inProc. 11th Australian Comput. Sci. Conf.,1988, pp. 55–66.
[11] V. Garg and B. Waldecker,“Detection of unstable predicates in distributed programs,”inProc. 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,”inProc. 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," Comm. ACM, vol. 21, no. 7, pp. 558-565, July 1978.
[15] W. Lloyd and P. Kearns,“Using tracing to direct our reasoning about distributed programs,”inProc. 11th IEEE Int. Conf. Distrib. Comput. Syst.,1991, pp. 552–559.
[16] T.J. LeBlanc and J.M. Mellor-Crummey, "Debugging Parallel Programs with Instant Replay," IEEE Trans. Computers, vol. 36, no. 4, pp. 471-482, Apr. 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 Global State Predicate,” Lectures Notes in Computer Science, vol. 59, pp. 254-272, Springer Verlag, 1991.
[19] F. Mattern,“Virtual time and global states of distributed systems,”inParallel 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,”in8th IEEE Int. Conf. Distrib. Comput. Syst.,1988, pp. 316–323.
[21] M. Muhlhauser,“Software engineering for distributed applications: The design project,”inProc. Tenth Int. Conf. Software Eng.,1988, pp. 93–101.
[22] K.V.S Ramarao and S. Venkatesan, “On Finding and Updating Shortest Paths Distributively,” J. Algorithms, vol. 13, no. 2, pp. 235-257, June 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,”inProc. 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," Information Processing Letters, 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,”inProc. 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,”inProc. ACM Symp. Commun. Archit. and Protocols,1989, pp. 303–312.

Index Terms:
Distributed algorithms, distributed testing, distributed debugging, global predicates, asynchronous distributed systems, message complexity.
S. Venkatesan, Brahma Dathan, "Testing and Debugging Distributed Programs Using Global Predicates," IEEE Transactions on Software Engineering, vol. 21, no. 2, pp. 163-177, Feb. 1995, doi:10.1109/32.345831
Usage of this product signifies your acceptance of the Terms of Use.