Automated Usable Functional Verification Of Object-Oriented Programs