SWE 437: Software Testing and Maintenance
Software Testing (3:3:0) Prerequisites: CS 211 and Math 125.
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.
Professor: Paul Ammann
For more information, please see the
437 course web page.
ABET Course Outcomes:
Knowledge of quantitative, technical, practical methods that software engineers and developers
can use to test their software.
Testing techniques and criteria for all phases of software development – unit (developer) testing,
integration testing, system testing, etc.
Theoretical and practical knowledge of how to apply test criteria to improve the quality of
Knowledge of modern challenges and procedures to update continuously evolving software
Understanding of best quantitative programming and design practices for ensuring software can be
efficiently and effectively modified and tested
Understanding that maintainability and testability are more important than efficiency for almost
all modern software projects
Class absences: Up to two absences are excused without grade penalty. Each absence including and after the third absence results in a reduction of 2% in the overall course score.
Class presentations and participation (15%)
Weekly homework assignments (total 20%).
Weekly quizzes (total 25%).
A closed book, in-class, comprehensive final exam (40%).