SWE 437: Software Testing and Maintenance
Course Description
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
software
-
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
Grading
-
Class presentations and participation (15%)
-
Weekly homework assignments (total 20%).
-
Weekly quizzes (total 25%).
-
A closed book, in-class, comprehensive final exam (40%).
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.