SWE 637 Course Syllabus
|| Paul Ammann
|| ENGR 4428, 993-1660
| Class Hours:
|| Wednesday 4:30 - 7:10, Peterson Hall 1105.
|| SWE 619 and SWE Foundation material
| Office Hours:
|| Tuesday 1-2PM; By Appointment. Anytime electronically.
Concepts and techniques for testing software and assuring its quality.
software testing at the unit, module, subsystem, and system levels,
automatic and manual techniques for generating and validating test data,
the testing process,
static vs. dynamic analysis,
and reliability assessment.
Introduction to Software Testing (edition 2), Ammann and Offutt.
While this course provides extremely practical skills, it
is, at heart, an applied math course.
You will need knowledge of discrete math, programming,
data structures and basic software engineering.
You will need a decent understanding of object-oriented theory,
as described in a resource such as Bloch's Effective Java (2nd edition):
how the precondition/postcondition contract model
how objects are created and destroyed,
the consequences of inheritance decisions,
mutable vs. immutable data types, generics and their
implementation, and so on.
Most examples will be in Java and some assignments will require JUnit tests.
If you do not have the prerequisite knowledge,
please do not ask for "permission."
To my understanding, it is not possible to impart knowledge through the act of granting permission.
Instead, go get the necessary background and then come back.
We'll still be here.
Office hours are times that I commit to being in my office,
door open, first come, first served.
You do not need an appointment, and no appointments are made.
If you cannot make my office hours, then we can try to set up an appointment.
I will inform you in class or on the discussion board if I have to miss office hours.
I place great emphasis on in-class learning.
I plan an in-class exercise for every class.
Students are encouraged to work in small groups.
Think about who you want to work with.
Some of these exercises need a Java development environment.
Very often, the in-class exercises will be closely related
to an upcoming homework assignment.
There are two types of homework assignments.
The first are preparation for the weekly quizzes.
These assignments will not be graded, although in many cases
the answers are available in the student solutions.
Effectively, the assessment on these exercises
is the corresponding quiz.
Students are encouraged to work collaboratively
on these assignments and take advantage of the Piazza group
to clarify questions.
The second are experience assignments with
specific tools or technologies.
Generally, the deliverable is a summary document or experience report,
with sufficient detail given to convince
me that you completed the exercise.
Collaboration on Graded Assignments
You may work on homework assignments
collaboratively using one of two models:
Note: You are NOT ALLOWED to include “guest names.”
Every person listed as a collaborator must contribute.
If someone is listed as a collaborator but did not contribute,
all will be reported to the university
Collaborate while analyzing the problem and developing
an answer or solution,
then develop the final solution independently.
In this model, each person will turn in a separate document.
Collaborate from start to finish with at most
two other students in SWE 637.
You must submit one solution and each person will get the same grade.
The submission must outline
what each person contributed.
Note: Since my experience is that students typically produce better solutions with
this type of collaborative solution,
I encourage students to follow this model.
The incentive is a small (10%) bonus credit per assignment.
Each class begins with a short quiz. Each quiz covers material from the
The goal of the quizzes is to keep students abreast of the material
covered in class. Because of the quizzes, there is no midterm exam.
In recognition of the fact that many students have occasional but unavoidable
commitments that preclude attendance at every class,
I drop each student's lowest three quiz scores prior to final grade computations.
In view of this policy,
there are no make-up quizzes.
Please don't ask for an exception.
A final exam is held during the University-scheduled exam period.
Students are reminded that the honor system governs all work turned in
Unless otherwise indicated,
each assignment must be an individual effort.
An assignment submission
carries with it an implicit statement that the submission is your own work.
You may discuss the requirements and syntactical issues of assignments with
other students in the class,
but you may not discuss specific solutions.
Any and all collaboration is prohibited on the quizzes and on the final.
Details of honor code policies and procedures
can be found at the
Office for Academic Integrity
Grade totals are computed as: Participation (10%), Assignments (10%), Quizzes (50%), Final (30%).
The scale for transforming numeric scores to letter grades is:
Notes on grading:
- 90-100: A, A-
- 80-89: B+, B, B-
- 70-79: C
- Below 70 overall.
I reserve the right to relax the grading scale if it seem
However, I will not tighten the grading scale if it seems unduly generous.
SWE 637 will use
for a discussion board. Information for accessing our class will be provided on the first day of class. Participation on the discussion threads counts towards your grade. You can earn credit in several ways.
We will also have frequent in-class exercises. Participation in these yields credit towards
a participation grade.
Real-life software failures: Start a discussion about a real-life software failure. Tell us what happened and how it affected users.
Describe how one of the ideas from our testing class could have found a real-life software failure before the software was released.
Start a thread about an error in the book or slides, or about a topic that goes beyond what we discuss in class.
Post questions to an appropriate thread and they will be answered by your instructor or classmate.
Basic questions are encouraged, but only "interesting" questions earn credit.
Correct answers also earn credit.
Participation must occur during the semester, not after final exams start.
As the semester progresses, I post notices about changes
to the course web pages on
In-class computers and communication
Phone calls, text messages, instant messages, email, and general web surfing are
highly disruptive to other students and hence not allowed during class time.
Technology devices may only be used for the class purposes (eg following slides or
working on in-class assignments.)
Violators will be asked to leave the room.
Repeat offenders will lose credit on the "Participation" grade.
If you anticipate a call that you simply have to take (yes, that happens),
please sit near the door,
put your phone on vibrate, and leave quietly at the appropriate time.
If you are disrupted by another student's violation of this policy,
please bring the matter to my attention.
Students with learning disabilities (or other conditions
documented with GMU Office of Disability Services)
who need academic accommodations should see me and contact the
Disability Resource Center (DRC) at (703)993-2474.
All academic accommodations must be arranged through the DRC.
As with all GMU courses, SWE 637 is governed by the
GMU Honor Code.
In this course, all quizzes and exams
carry with them an implicit statement that it is the sole work of the author.
See the collaboration discussion above for rules on homework assignments.
Any deviation from this is considered an Honor Code violation,
with ultimate sanction determined by the Honor Code committee.