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

Deterministically testing actor-based concurrent software

Published: 30 August 2015 Publication History

Abstract

Non-deterministic concurrent behavior of software prohibits the idempotent property of tests. XUnit frameworks traditionally do not offer support to deal with these concurrency issues which reduces the significance of unit testing concurrent software. In this paper we propose a tool which supports deterministic testing of concurrent software based on the Actor model. This tool reveals race conditions and seamlessly integrates with xUnit-like frameworks. In our approach, a Coloured Petri Net model is constructed per test as well as the code under test. This model allows isolation of concurrent behavior from the effective actor state. Subsequently, the state space is calculated and traces covering all states are constructed. Corresponding with these traces our tool issues test runs, guaranteeing full state space coverage of each test. Moreover, each failed trace can be backtracked, revealing valuable information concerning the race condition.

References

[1]
Junit.org: Resources for test driven development, http://www.junit.org/.
[2]
G. A. Agha. Actors: a model of concurrent computation in distributed systems. 1985.
[3]
R. Alur, R. K. Brayton, T. A. Henzinger, S. Qadeer, and S. K. Rajamani. Partial-order reduction in symbolic state space exploration. In Computer Aided Verification, pages 340–351. Springer, 1997.
[4]
G. Brat, K. Havelund, S. Park, and W. Visser. Java pathfinder-second generation of a java model checker. In In Proceedings of the Workshop on Advances in Verification. Citeseer, 2000.
[5]
O. Edelstein, E. Farchi, E. Goldin, Y. Nir, G. Ratsaby, and S. Ur. Framework for testing multi-threaded java programs. Concurrency and Computation: Practice and Experience, 15(3-5):485–499, 2003.
[6]
P. Haller. On the integration of the actor model in mainstream technologies: the scala perspective. In Proceedings of the 2nd edition on Programming systems, languages and applications based on actors, agents, and decentralized control abstractions, pages 1–6. ACM, 2012.
[7]
K. Jensen and L. Kristensen. Coloured Petri Nets: modelling and validation of concurrent systems. Springer, 2009.
[8]
S. Lauterburg, M. Dotta, D. Marinov, and G. Agha. A framework for state-space exploration of java-based actor programs. In Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering, pages 468–479. IEEE Computer Society, 2009.
[9]
S. Lu, S. Park, E. Seo, and Y. Zhou. Learning from mistakes - a comprehensive study on real world concurrency bug characteristics. In Architectural Support for Programming Languages, 2008.
[10]
M. Musuvathi, S. Qadeer, T. Ball, G. Basler, P. Nainar, and I. Neamtiu. Finding and reproducing heisenbugs in concurrent programs. In Symposium on Operating Systems Design and Implementation, 2008.
[11]
C.-S. D. Yang. Program-based, structural testing of shared memory parallel programs. PhD thesis, University of Delaware, 1999.

Cited By

View all
  • (2018)Systematic testing of actor systemsSoftware Testing, Verification and Reliability10.1002/stvr.166128:3(e1661)Online publication date: 8-Feb-2018

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
A-TEST 2015: Proceedings of the 6th International Workshop on Automating Test Case Design, Selection and Evaluation
August 2015
46 pages
ISBN:9781450338134
DOI:10.1145/2804322
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 the author(s) 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].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 30 August 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Actor Model
  2. Concurrent Software
  3. Deterministic Testing

Qualifiers

  • Research-article

Conference

ESEC/FSE'15
Sponsor:

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 21 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2018)Systematic testing of actor systemsSoftware Testing, Verification and Reliability10.1002/stvr.166128:3(e1661)Online publication date: 8-Feb-2018

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media