Skip to main content

Using Formal Methods to Serialize Synchronization Events

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2885))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bates, P.: Debugging heterogeneous distributed systems using event-based models of behavior. ACM Transactions on Computer Systems 13(1), 1–31 (1995)

    Article  Google Scholar 

  2. 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)

    Google Scholar 

  3. Bergstra, J., Klop, J.: Process algebra for synchronous communication. Information and Control 60, 109–137 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  4. Brinskma, E., Tretmans, J.: Testing transition systems: An annotated bibliography. In: LNCS, vol. 1067, pp. 187–195. Springer, Heidelberg (2001)

    Google Scholar 

  5. 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)

    Chapter  Google Scholar 

  6. Carver, R., Tai, K.: Replay and testing for concurrent programs. In: IEEE Software, March 1991, pp. 66–74 (1991)

    Google Scholar 

  7. 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)

    Article  Google Scholar 

  8. 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)

    Chapter  Google Scholar 

  9. Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall Int., London (1985)

    MATH  Google Scholar 

  10. Hoare, C.: A calculus of total correctness for communicating processes. Science of Computer Programming 1, 49–72 (1981)

    Article  MATH  MathSciNet  Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Chapter  Google Scholar 

  13. Kenkatesan, S., Dathan, B.: Testing and debugging distributed programs using global predicates. IEEE Transactions on Software Engineering 21(2), 163–177 (1995)

    Article  Google Scholar 

  14. Leblanc, T., Mellor-Crummey, J.: Debugging parallel programs with instant replay. IEEE Transactions on Computers 36(4), 471–482 (1987)

    Article  Google Scholar 

  15. Milner, R.: Communication and Concurrency. Prentice Hall, London (1989)

    MATH  Google Scholar 

  16. Nicola, R., Hennessy, M.: Testing equivalences for processes. Theoretical Computer Science 34, 83–133 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  17. 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)

    Google Scholar 

  18. 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)

    Google Scholar 

  19. 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)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics