Error Detection in Concurrent Java Programs
Graham Hughes, Sreeranga P. Rajan, Tom Sidle, Keith D. Swenson · Electronic Notes in Theoretical Computer Science · 2006
Concurrency in multithreaded programs introduces additional complexity in software verification and testing, and thereby significantly increases the cost of Quality Assurance (QA). We present a case study in which a specialized model checker was used to discover concurrency errors in a large preexisting code base. The results revealed race conditions that lead to data corruption errors whose detection would have been prohibitively expensive with conventional testing and QA methods. We describe our methodology and highlight parts of the methodology that could be automated.