NSEN-6411 Software Unit and Integration Testing and Verification (SE 750)

Note: The following provides a suggested course description, objectives, and an outline. These may be modified pending discussion with the Faculty Chairs, proposing faculty, and other curriculum reviewers.

Course Description: A graduate-level survey of concepts, principles, and techniques related to software testing and verification. Topics include inspections and reviews, black-box and white-box testing strategies, axiomatic verification techniques, predicate transforms, and function based verification. Students will practice the techniques presented in class via individual and/or group exercises.

Course Objectives: To present concepts, principles and techniques related to software testing and verification. Students will become acquainted with both the strengths and limitations of various functional and structural testing methods, as well as techniques for proving the correctness of programs.

Course Outline by Topical Areas:

  • Basic testing principles and concepts
  • Black box testing techniques
  • White-box testing techniques
  • Symbolic evaluation
  • Dataflow-based testing
  • Higher-level testing strategies
  • Proofs of correctness; basic principles and concepts
  • Axiomatic verification
  • Predicate transforms
  • Function-based verification