Prerequisite:CS 302. Techniques for evaluating software and verifying that software conforms to its requirements: static and dynamic analysis, theoretical foundations, and formal proofs; error, fault, and failure classification; test planning; software quality assurance; metrics; consistency.