SWE 437: Software Testing and Maintenance
Syllabus — Spring 2017
This course is part of the ACS Software Engineering
and the minor in Software Engineering programs.
Syllabus Schedule
 

Instructor
contact
information
Paul Ammann
Office: Nguyen Engineering Building 4428; 993-1660
Email: pammann@gmu.edu
URL: https://cs.gmu.edu/~pammann/437.html
Office Hours:    Tuesday 3:00-4:00pm; Anytime electronically or by appointment
GTA
Lin Deng, ldeng2@masonlive.gmu.edu
GTA Office Hours: Thursdays 11AM-1PM, Nguyen Engineering Building 5321
Class hours Tuesday, Thursday 1:30pm - 2:45pm, Innovation Hall 134
Prerequisites CS 310 and Math 125
Texts
  • Required: Introduction to Software Testing (edition 2), Ammann and Offutt.
    Book website

    This text has just been published as of late December 2016. I expect the text to be available via Mason's Safari subscription in the near future.

  • Required: Test Driven: Practical TDD and Acceptance TDD for Java Developers, Lasse Koskela, Manning Publications, 2007,
    Amazon
    Direct Safari Link
    General Safari Link (off campus)
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.
Learning 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
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 Students are expected to read the relevant material (from the text, various sources on the web, and transparencies that will be made available on the web site). You will understand the lectures much better if you read the material before the lectures. The lectures may not cover everything in the readings and will often include material not found in the readings.
Grading policies
  • Homework assignments: 15%
  • Weekly quizzes: 40% (lowest 3 will be dropped, no makeups)
  • Class attendance and participation (including discussion board): 15%
  • Final exam: 30%
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.
Homework
assignments
Homework assignments will be made available on the class web site. Some homework assignments will be submitted on paper in class. Others must be submitted via Blackboard. Homeworks must be submitted before class on the day they are due. Assignments will be checked immediately after the due date; if you finish an assignment late, you must inform me by email when it is ready to be graded. Changing an assignment after the due date without prior permission will be treated as a late submission.
Collaboration You are allowed to work on homeworks individually or collaboratively using one of two models:
  • 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. The submissions must include a section that lists everybody you worked with and what each person contributed. You can work with as many classmates as you like with this model, but only other students in SWE 437 this semester.
  • Collaborate from start to finish with at most two other students in SWE 437. 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 (5%) bonus credit per assignment.
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 honor committee.
Late submission Unless arrangements are worked out in advance, 50% penalties apply to late submissions. If you will be forced to miss class on the day something is due, let me know ahead of time by email or in writing. Under no circumstances will any assignment be accepted once final exams begin.
Quizzes Instead of a midterm exam, we will have weekly quizzes. Quizzes will be given during the first 10 to 15 minutes of class on Tuesdays and no makeups or late quizzes will be given. Please do not ask for an exception. For overall grade calculations, the lowest three quiz scores will be dropped. The remaining quizzes with the highest scores will be used to calculate the final "quiz" part of the grade. This essentially means that you can to miss up to three quizzes without penalty.
Class Attendance
I place great emphasis on in-class learning. Here's why.

Consequently, I expect students to be in class. Up to two absences are excused without grade penalty. Each absence including and after the third absence results in a reduction of 20% from the "Class attendance and participation" grade. In other words, 7 absences completely zero out the "Class attendance and participation" grade. This policy covers routine issues: having a cold, being stuck in traffic, travelling for work, etc. For absences caused by events beyond this, contact me for a discussion.

Discussion
board
SWE 437 will use the Piazza software 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.
  • 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 will earn credit. Correct answers will also earn credit.
Participation must occur during the semester, not after final exams start.

Updates to the course web page will generally be noted on the Piazza page.
In-class exercises Daily in-class exercises are the most important use of our in-class time. Each exercise is designed to get you to think about some specific aspect of the material we are learning that day. The exercises will also be used to monitor attendance.

Because in-class exercises leave limited class-time for lecture, many students find it helpful to view recorded materials outside of class. I am interested in augmenting the available videos for this class. My model for doing so is to produce ShowMe videos with individual students. Please contact me if you are interested in participating in these productions.

Final Exam Final exam is closed book/closed notes/closed web. The only exception is a single sheet of 8 1/2 x 11 paper (double sided) with hand-written notes written by the person taking the exam. The final is in-class and comprehensive. Appropriate documentation (as determined by instructor) and requisite permissions are required for makeup exam requests. Note: A failing grade on the final exam (<60%) will result in a failing grade (F) for the entire course, regardless of performance on other assignments.

If you know in advance that you are unable to make an exam for a valid and unavoidable reason (such as a scheduled surgery, etc), you must notify me at least one week before the scheduled exam date to make arrangements for a makeup, and bring documentation with you when you take the makeup. If you miss an exam due to a university-accepted excused absence (such as an illness or car accident the day and time of the exam), you must notify me within 24 hours of your absence to make arrangements for a makeup, and bring approved documentation with you when you take the makeup exam. Failure to follow either of these policies will result in a zero grade on the exam.
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 "Class attendance and participation" grade.
Honor Code As with all GMU courses, SWE 437 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.
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.

Top

© Thanks to Jeff Offutt and Upsorn Praphamontripong for material used on this page.