Avoiding State-Space Explosion in Multithreaded Programs with Input-Covering Schedules and Symbolic Execution. - Thomas Bergan (2014)