Software Testing

(5) Test Selection II

Types of concurrency bugs

  • Deadlock bugs
  • Non-deadlock bugs
    • Livelock: A thread repeatedly obtains a requested resource but never completes its execution before losing that resource
    • Starvation: A thread is ready to execute, but is indefinitely delayed because other threads have the necessary resource(s)
    • Suspension: A thread is forced to wait too long before it can access a shared resource (i.e. it eventually obtains the resource but too late for proper execution)
 
  • Other non-deadlock bugs:
    • Order Violation: A failure condition that exists when the non-deterministic ordering of multiple interleaved operations results in a different, unexpected, and potentially incorrect behavior
    • Priority Inversion: A higher priority operation of one thread is forced to wait on the execution of a lower priority operation of another thread
    • Atomicity Violation: The execution of one thread interrupts the execution of another thread, which must run to completion without disruption

Diskussion