SWE 437 Software Testing and Maintenance

Professor: Jeff Offutt, https://cs.gmu.edu/~offutt/

Description: Concepts and techniques for testing and modifying software in evolving environments. Topics include software testing at the unit, module, subsystem, and system levels; developer testing; automatic and manual techniques for generating test data; testing concurrent and distributed software; designing and implementing software to increase maintainability and reuse; evaluating software for change; and validating software changes.

Learning outcomes:

  1. Knowledge of quantitative, technical, and practical methods that software engineers and developers can use to test their software
  2. Testing techniques and criteria for all phases of software developmentĀ—unit (developer) testing, integration testing, system testing, etc.
  3. Theoretical and practical knowledge of how to apply test criteria to improve the quality of software
  4. Knowledge of modern challenges and procedures to update continuously evolving software
  5. Understanding of best quantitative programming and design practices for ensuring software can be efficiently and effectively modified and tested
  6. Understanding that maintainability and testability are more important than efficiency for almost all modern software projects

Prerequisites: CS 310 & Math 125

The course syllabus is on the instructor's website: https://cs.gmu.edu/~offutt/classes/437/