Practical Concurrency Testing or: How I Learned to Stop Worrying and Love the Exponential Explosion

Abstract

Concurrent programming presents a challenge to students and experts alike because of the complexity of multithreaded interactions and the difficulty of reproducing and reasoning about bugs. Stateless model checking is a testing approach which forces a program to interleave its threads in many different ways, checking for bugs each time. This technique is powerful, in principle capable of finding any nondeterministic bug in finite time, but suffers from exponential explosion as program size increases. Checking an exponential number of thread interleavings is not a practical or predictable approach for programmers to find concurrency bugs before their project deadlines.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 01, 2018
Accession Number
AD1174000

Entities

People

  • Ben Blum

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Advanced Electronics
  • Autonomy
  • Cyber

DTIC Thesaurus Topics

  • Artificial Intelligence
  • Cognitive Systems Engineering
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Debugging
  • Detection
  • Kernels (Operating System)
  • Object Oriented Programming
  • Operating Systems
  • Programming Languages
  • Shell Scripts
  • Software Development
  • Software Testing
  • Systems Engineering
  • User Interface

Fields of Study

  • Computer science
  • Engineering

Readers

  • Mathematical Modeling and Probability Theory.
  • Parallel and Distributed Computing.