skip to main content
10.1145/1866210.1866214acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Unit testing for concurrent business code

Published:13 July 2010Publication History

ABSTRACT

Performing unit testing on concurrent programs is a known challenge. Several solutions have been proposed for the challenges, that provide only a partial answer. We argue that there are two kinds of concurrent code writing, namely concurrency protocols and concurrent "business code", and that they are different not only in the coding itself, but also in the way unit testing should be done for them. We show that the current solutions to concurrent unit testing only give a satisfactory answer to concurrency protocols, but not to concurrent business code. We have designed and implemented a unit testing framework suitable for concurrent business code, as part of the IBM Multicore Software Development Kit. This paper presents the distinction between the types of concurrent programming, and describes the new framework.

References

  1. }}http://www.junit.org.Google ScholarGoogle Scholar
  2. }}D. Barvitsky. Techniques for testing concurrent code in nunit. http://tinyurl.com/y4adejz.Google ScholarGoogle Scholar
  3. }}A. Bron, E. Farchi, Y. Magid, Y. Nir, and S. Ur. Applications of synchronization coverage. In PPoPP '05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 206--212, New York, NY, USA, 2005. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. }}O. Edelstein, E. Farchi, Y. Nir, G. Ratsaby, and S. Ur. Multithreaded Java program test generation. IBM Systems Journal, 41(1), 2002. Also available as http://alphaworks.ibm.com/tech/contest. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. }}B. Goetz, T. Peierls, J. Bloch, J. Bowbeer, D. Lea, and D. Holmes. Java Concurrency in Practice. Addison-Wesley Professional, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. }}Z. Letko, T. Vojnar, and B. Křena. Atomrace: data race and atomicity violation detector and healer. In PADTAD '08: Proceedings of the 6th workshop on Parallel and distributed systems, pages 1--10, New York, NY, USA, 2008. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. }}M. Musuvathi and S. Qadeer. Chess: Systematic stress testing of concurrent software. In LOPSTR, pages 15--16, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}Y. Nir-Buchbinder, R. Tzoref, and S. Ur. Deadlocks: From exhibiting to healing. In Runtime Verification, 8th International Workshop, RV 2008, Budapest, Hungary, March 30, 2008. Selected Papers, pages 104--118, Berlin, Heidelberg, 2008. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. }}W. Pugh and N. Ayewah. Unit testing concurrent software. In ASE '07: Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering, pages 513--516, New York, NY, USA, 2007. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. }}Y. Qi, R. Das, Z. D. Luo, and M. Trotter. Multicoresdk: a practical and efficient data race detector for real-world applications. In PADTAD '09: Proceedings of the 7th Workshop on Parallel and Distributed Systems, pages 1--11, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. }}M. Ricken and R. Cartwright. Concjunit: unit testing for concurrent programs. In PPPJ '09: Proceedings of the 7th International Conference on Principles and Practice of Programming in Java, pages 129--132, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Unit testing for concurrent business code

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      PADTAD '10: Proceedings of the 8th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
      July 2010
      71 pages
      ISBN:9781450301367
      DOI:10.1145/1866210

      Copyright © 2010 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 13 July 2010

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Upcoming Conference

      ISSTA '24
    • Article Metrics

      • Downloads (Last 12 months)3
      • Downloads (Last 6 weeks)1

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader