• Home
  • Search
  • Finding race conditions in Erlang with QuickCheck and PULSE
  • Open Access IconOpen Access
  • Cite Icon70
  • https://doi.org/10.1145/1596550.1596574Copy DOI Icon

Finding race conditions in Erlang with QuickCheck and PULSE

  • Aug 31, 2009
  • Koen Claessen +6 more
Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

We address the problem of testing and debugging concurrent, distributed Erlang applications. In concurrent programs, race conditions are a common class of bugs and are very hard to find in practice. Traditional unit testing is normally unable to help finding all race conditions, because their occurrence depends so much on timing. Therefore, race conditions are often found during system testing, where due to the vast amount of code under test, it is often hard to diagnose the error resulting from race conditions. We present three tools (QuickCheck, PULSE, and a visualizer) that in combination can be used to test and debug concurrent programs in unit testing with a much better possibility of detecting race conditions. We evaluate our method on an industrial concurrent case study and illustrate how we find and analyze the race conditions.

Similar Papers
  • Research Article
  • Citations168

Distributed Computing: Fundamentals, Simulations and Advanced Topics

  • Jan 03, 2001
  • Scalable Computing Practice and Experience
  • Marcin Paprzycki
  • Conference Article

Poster: Static Analysis of Concurrent Higher-Order Programs

  • May 01, 2015
  • Quentin Stievenart +3
  • Conference Article
  • Citations76

Verifying correct usage of atomic blocks and typestate

  • Oct 19, 2008
  • Nels E Beckman +2
  • Conference Article
  • Citations5

An Early-Reply Based Framework: Reliable Concurrency that Is Verifiable

  • Nov 01, 2007
  • Stephen W Cook +2
  • Conference Article
  • Citations5

<u>T</u>i<u>d</u>d<u>l</u>e

  • Jul 20, 2009
  • Caitlin Sadowski +1
  • Supplementary Content

Verification of concurrent HARPO programs using formal verification theory

  • Oct 22, 2021
  • Memorial University Research Repository (Memorial University)
  • Inaam Ahmed
  • Conference Article
  • Citations16

On the Effectiveness of Contracts as Test Oracles in the Detection and Diagnosis of Race Conditions and Deadlocks in Concurrent Object-Oriented Software

  • Sep 01, 2011
  • Wladimir Araujo +2
  • Book Chapter

Shared-Variable Concurrency: A Proposal

  • Jan 01, 2006
  • Gérard Boudol
  • Supplementary Content

Modeling and Verification of Distributed Algorithms in Theorem Proving Environments

  • Mar 17, 2014
  • DepositOnce
  • Philipp Küfner +1
  • Book Chapter
  • Citations1

Formal Software Verification: How Close Are We?

  • Jan 01, 2010
  • Gerard J Holzmann
  • Single Report

Environment for Test and Analysis of Distributed Software (ETADS)

  • Sep 27, 1994
  • R C Cox +1
  • Conference Article
  • Citations32

Introducing concurrency in CS 1

  • Mar 10, 2010
  • Kim B Bruce +2
  • PDF
  • Book Chapter
  • Citations10

A Study of Concurrency Bugs in an Open Source Software

  • Jan 01, 2016
  • Sara Abbaspour Asadollah +4
  • Conference Article
  • Citations19

Energy saving and monitoring technologies in manufacturing systems with industrial case studies

  • Jul 01, 2012
  • Cao Vinh Le +2
  • Research Article

A Framework for Improving Portability and Ensuring Correctness of Operating System Kernels

  • Dec 02, 2024
  • ACM SIGAda Ada Letters
  • Vignesh Manjunath +1
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.