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
-
Homework assignments (total 15%).
-
Weekly quizzes (total 30%) (lowest three will be dropped).
-
Class attendance and participation (15%)
-
Final exam (40%).
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%.