SWE 637 Course Syllabus

Schedule Home page

Software Testing
Spring 2018

Professor: Paul Ammann
Office: ENGR 4428, 993-1660
Email: pammann@gmu.edu
URL: cs.gmu.edu/~pammann
Class Hours: Wednesday 4:30 - 7:10, Peterson Hall 1105.
Prerequisite: SWE 619 and SWE Foundation material
Office Hours: Monday 1-2PM; By Appointment. Anytime electronically.

Catalog Description:

Concepts and techniques for testing software and assuring its quality. Topics cover 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, functional testing, inspections, and reliability assessment.

Course Materials


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 constrains programmers, 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

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.


Each class begins with a short quiz. Each quiz covers material from the previous session(s).

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.

Quiz Preparation

I post a quiz guide for each weekly quiz. Generally, this guide includes one or more exercises that are usually related to what I'll ask on the corresponding quiz. Although I will not grade these exercises, you should consider them to be required.

Missed quizzes:

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.

In-Class Exercises

I place great emphasis on in-class learning. Here's why.

I plan in-class exercises 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 the quiz the following week.

Graded Assignments

There are periodic, graded assignments. Some are introspective examinations. Others foster experience 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. Please turn in a hard copy of your assignment in class. If you can't make it to class, I'll accept a private post on Piazza.

Late Assignments

Late homeworks are heavily penalized (20% credit reduction). No late homework submission will be accepted once final exams begin.

Collaboration on Graded Assignments and Quiz Preparation

I allow (indeed, I encourage) collaboration on graded assignments and quiz prepration. I encourage students to ask and respond to questions on the Piazza forum.

Students may also work in groups of two or three and submit a collective solution to graded assignments. If you opt for this model, your submission must outline what each person contributed. Each person in the group earns the same grade.


Final Exam

A final exam is held during the University-scheduled exam period.

Honor System:

Students are reminded that the honor system governs all work turned in for credit. 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 website.


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:


SWE 637 will use Piazza. for a discussion board. I enroll students using the official roster on PatriotWeb, as of shortly before the first class meeting. If, for some reason, you are not on the forum, please contact me.

Participation on the discussion threads counts towards your grade. You can earn credit by posting and responding to questions about graded assignments and quiz preparation. Participation must occur during the semester, not after final exams start.

Show Me videos

I have posted several Show Me videos on the schedule page. These videos are generally structured as two folks (a student and me) working through an exercise. Some students report that these are very helpful. More videos would be great, and there are a number of exercises that are obvious fits for videos. To this end, I invite students to propose ShowMe topics and stop by my office to create one. As a carrot, students who participate will receive some nominal consideration at the time final grades are assigned.

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.

Learning Disabilities

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.

Honor Code

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.