Carnegie Mellon University

Electrical and Computer Engineering

College of Engineering

Course Information

18-654SV: Software Verification and Testing




Verification and testing (V&T) support software engineers and development teams in their endeavor to build dependable systems. These interrelated activities form the backbone of a high-quality software solution that performs its function as intended. V&T is no longer considered an exclusively backend phase undertaken by a separate quality assurance unit, vulnerable to availability of discretionary resources near project end. Rather, V&T is a cross-functional discipline applied throughout the software lifecycle from beginning to end. As such V&T is an integral and essential part of any sensible software development process. This course introduces the students to concepts, principles, theory, types, tools, and techniques of V&T with exposure to both modern, widely-applicable approaches and traditional, formal techniques. Students will acquire sufficient depth and breadth in V&T through a balanced coverage of topics. The course syllabus spans fundamentals such as V&T principles, systematic testing, input space analysis, and test coverage; practical strategies such as test-driven development, unit testing, and test design; and formal approaches such as abstraction, model checking, static analysis, and symbolic execution.

Last Modified: 2023-04-07 9:23AM

Semesters offered:

  • Fall 2023
  • Fall 2021
  • Fall 2020
  • Fall 2019
  • Fall 2018
  • Fall 2017
  • Fall 2016
  • Fall 2015
  • Spring 2015