RacerX: effective, static detection of race conditions and deadlocks
Bandera: extracting finite-state models from Java source code