Abstract
One of the difficulties in testing concurrent systems comes from the fact that executions with internal nondeterministic choices make the testing procedure non-repeatable. A natural solution is to artificially enforce and direct the execution to take the desired path so that a test can be reproduced. With a reproducible testing technique, we use a set of test scenarios which consist of pairs of test cases and path constraints, the latter expressing the ordering among certain interesting events during the execution. We consider the automated generation of significant sets of path constraints with a given test case, and we are interested in those sets of path constraints that reflect the possible serializations upon synchronization events during the executions of different processes in the program. Here we present our study on exploring formal engineering methods to generate path constraints when the synchronization events are governed by monitors.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Bates, P.: Debugging heterogeneous distributed systems using event-based models of behavior. ACM Transactions on Computer Systems 13(1), 1–31 (1995)
Bechini, A., Tai, K.: Design of a toolset for dynamic analysis of concurrent Java programs. In: Proc. of the 6th International Workshop on Program Comprehension, Ischia, Italy (June 1998)
Bergstra, J., Klop, J.: Process algebra for synchronous communication. Information and Control 60, 109–137 (1984)
Brinskma, E., Tretmans, J.: Testing transition systems: An annotated bibliography. In: LNCS, vol. 1067, pp. 187–195. Springer, Heidelberg (2001)
Cai, X., Chen, J.: Control of nondeterminism in testing distributed multithreaded programs. In: Proc. of the First Asia-Pacific Conference on Quality Software (APAQS 2000), pp. 29–38. IEEE Computer Society Press, Los Alamitos (2000)
Carver, R., Tai, K.: Replay and testing for concurrent programs. In: IEEE Software, March 1991, pp. 66–74 (1991)
Carver, R., Tai, K.: Use of sequencing constraints for specification-based testing of concurrent programs. IEEE Transactions on Software Engineering 24(6), 471–490 (1998)
Chen, J.: On using static analysis in distributed system testing. In: Emmerich, W., Tai, S. (eds.) EDO 2000. LNCS, vol. 1999, pp. 145–162. Springer, Heidelberg (2001)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall Int., London (1985)
Hoare, C.: A calculus of total correctness for communicating processes. Science of Computer Programming 1, 49–72 (1981)
Itoh, E., Furukawa, Z., Ushijima, K.: A prototype of a concurrent behavior monitoring tool for testing concurrent programs. In: Proc. of Asia-Pacific Software Engineering Conference (APSEC 1996), pp. 345–354 (1996)
Karacali, B., Tai, K.: Automated test sequence generation using sequencing constraints for concurrent programs. In: Proc. of the International Symposium on Software Engineering for Parallel and Distributed Systems, pp. 97–106. IEEE Computer Society Press, Los Alamitos (1999)
Kenkatesan, S., Dathan, B.: Testing and debugging distributed programs using global predicates. IEEE Transactions on Software Engineering 21(2), 163–177 (1995)
Leblanc, T., Mellor-Crummey, J.: Debugging parallel programs with instant replay. IEEE Transactions on Computers 36(4), 471–482 (1987)
Milner, R.: Communication and Concurrency. Prentice Hall, London (1989)
Nicola, R., Hennessy, M.: Testing equivalences for processes. Theoretical Computer Science 34, 83–133 (1984)
Sohn, H., Kung, D., Hsia, P., Toyoshima, Y., Chen, C.: Reproducible testing for distributed programs. In: Proc. of the 4th International Conference on Telecommunication Systems, Modeling and Analysis, Nashiville, Tennessee, March 1996, pp. 172–179 (1996)
Sohn, H., Kung, D., Hsia, P.: State-based reproducible testing for CORBA applications. In: Proc. of IEEE Internaltional Symposium on Software Engineering for Parallel and Distributed Systems (PDSE 1999), LA, USA, May 1999, pp. 24–35 (1999)
Tretmans, J.: Testing transition systems: A formal approach. In: Baeten, J.C.M., Mauw, S. (eds.) CONCUR 1999. LNCS, vol. 1664, pp. 46–65. Springer, Heidelberg (1999)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chen, J. (2003). Using Formal Methods to Serialize Synchronization Events. In: Dong, J.S., Woodcock, J. (eds) Formal Methods and Software Engineering. ICFEM 2003. Lecture Notes in Computer Science, vol 2885. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39893-6_4
Download citation
DOI: https://doi.org/10.1007/978-3-540-39893-6_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20461-9
Online ISBN: 978-3-540-39893-6
eBook Packages: Springer Book Archive