Modern debugging: the art of finding a needle in a haystack
Symbolic execution for software testing: three decades later