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
Note: A satisfactory final grade (i.e. "C" or better, and hence eligle for
general department credit towards the degree)
requires at least a score of 60% on the final exam.
Attendance in class is required.
Up to two absences are excused without grade penalty.
Each absence including and after the third absence reduced
the overall course score by 3%.
Homework assignments (total 15%).
Weekly quizzes (total 40%) (lowest three will be dropped).
Class attendance and participation (15%)
Final exam (30%).