Software debugging, testing, and verification