- TEXTS:
-
Introduction to Software Testing,
Ammann and Offutt, Cambridge University Press, 2008
Book website
-
Readings from various texts:
Pfleeger, Software Engineering, chapter 11;
Hohpe and Woolf, Patterns and Best Practices for Enterprise Integration, Introduction and chapter 1;
Cohn, Agile Estimating and Planning, chapters 1-3.
-
I expect there will be one additional text on maintenance that will be required.
Details to follow.
- OBJECTIVE:
-
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.
- CONTENT:
-
This course has two closely related themes.
First, more than half the effort in software development is devoted to
activities related to testing,
including test design, execution and evaluation.
This course will teach quantitative, technical, practical methods
that software engineers and developers can use to test their software,
both during and at the end of development.
Second,
more than half of software development effort is not new development,
but maintenance activities such as
adding new features,
correcting problems,
migrating to new platforms,
and integrating third-party components into new projects.
These two themes are intertwined because much of the effort during
maintenance is testing the changes,
and much of the effort in testing is about
evaluating changes.
This course covers these two themes quantitatively,
with a solid basis in theory
and with practical applications.
These topics will be useful to strong programmers
in the Computer Science program,
as well as engineers,
physical scientists,
and mathematicians
who regularly integrate software components as part of their work.
The topic of this course is of interest to and accessible to
students in a wide variety of specializations.
- READING:
-
We will read from the text, various sources on the web,
and transparencies that will be made available on the web site.
You will undersetand the lectures much better if you read the text
before the lecture.
- HOMEWORKS:
-
Weekly homework assignments will be made available
on the class web site.
Some homeworks will be submitted on paper in class.
Others will be submitted electronically.
Be sure that you receive email through your gmu.edu account,
as refinements and hints for the assignments will be sent through email.
Homeworks must be submitted before class on the day they are due.
All assignments must be submitted
before final exams start and will not be graded thereafter.
- IN-CLASS COMPUTERS AND COMMUNICATION:
-
Phone calls, text messages, instant messages, email,
and general web surfing are not allowed during class time.
Computers may only be used to follow the material in class.
Violators will be asked to leave the room.
- HONOR CODE STATEMENT:
-
As with all GMU courses,
SWE 437 is governed by the
GMU Honor Code.
In this course,
all assignments, exams, and project submissions
carry with them an implicit statement that it is the sole work of the author,
unless joint work is explicitly authorized.
Help may be obtained from the instructor or other students to understand
the description of the problem and any technology,
but the solution, particularly the design portion,
must be the student's own work.
If joint work is authorized,
all contributing students must be listed on the submission.
Any deviation from this is considered an Honor Code violation.
- GRADING POLICIES:
-
- There will be weekly homework assignments (total 33%).
- There will be weekly quizzes (total 33% apiece).
- There will be a closed book, in-class, comprehensive final exam (34%).