Syllabus Schedule GMU policies My home page
If you want truly to understand something, try to change it - Kurt Lewin

SWE 437: Software Testing and Maintenance
Course Syllabus — Fall 2021 (last taught)

Professor: Jeff Offutt
Email: offutt@gmu.edu
URL: cs.gmu.edu/~offutt/
Office: 4430 Engineering Building
In-person hours: Wednesdays 330-500pm
or by appointment
E-office: Zoom—to be shared
Zoom hours: Fridays 1000am-noon
Class hours: T, Tu 1030-1145am
Class location: Peterson 1105
Prerequisites: CS310 & Math125
GTA:
Email:
Office hours: T 2-3pm
Location: 4456 EB

UTA:
Email:

overview | grading | policies | miscellaneous

Overview

TEXTS

CATALOG DESCRIPTION
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, and 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 to ensure 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 & STUDENT RESPONSIBILITIES
This course has two closely related themes. First, most software development is not new development, but adding new features, correcting problems, migrating to new platforms, and integrating third-party components into new projects (maintenance & evolution). Second, 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. 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 are 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.

PREREQUISITES
We will generate tests from mathematical models of the software using structures from discrete math (sets, graphs, logic, and grammars). We will use examples from data structures and require tests to be implemented in JUnit.

overview | grading | policies | miscellaneous

Grading

GRADING FORMULA
  • Assignments: 30%
  • Quizzes: 20%
  • Participation: 15%
  • Comprehensive final exam: 35%

GRADED ASSIGNMENTS
Homework assignments will include writing, problem solving, and programming. Unless stated otherwise, you can collaborate with up to two partners. Assignments will be posted on the class schedule page and clarifications and hints will be posted on the discussion board. You may discuss the assignments on the discussion board and even share pieces of code, although not complete solutions. Most submissions will be electronic.
Timeliness: There will be no late penalties for assignments, but a bonus will be awarded for submitting before class on the stated the due date. Per GMU policy, all assignments must be submitted before the beginning of final exams.

WEEKLY QUIZZES
Quizzes will be given the first 10 or 15 minutes of class and will cover material from the previous class meeting and from the reading assigned for that day. Re-take policy: students who miss or perform badly on a quiz can have one retake per quiz.
  • Scoring: The maximum score on a retake quiz is 80%.
  • Replace: If you take the retake, your new score will count and the first score is dropped.
  • Scheduling: Students who want to retake a quiz must schedule ahead of time. Send an email to the professor and the TA telling us which quiz and when you want to take it.
  • Times & locations: To be announced on piazza.
  • Content: The retake quiz will differ from the in-class quiz, but will cover the same topics.
  • Timing: The retake quiz must be taken within two weeks of the original in-class quiz. All retakes must be completed before the end of the reading period.

ATTENDANCE
Coming to class is worth one point per day towards participation. You will need to check in each class period so that we know you attended. I will give instructions during class.

IN-CLASS EXERCISES
I strongly believe that active exercises during class meetings enhance learning. Dr. Ammann has a good summary of why. Thus, we will have many in-class exercises. Some will be done in small groups, and a few may be individual exercises. They count towards your participation grade and earn 1 point for a minimal effort or 2 points for a strong effort. They will be announced during class. Important: In-class exercises must be done in class to get participation credit. If you miss class, you should do the posted in-class assignments on your own to prepare for the quizzes and final exam.

PARTICIPATION
You earn participation points in two ways: (1) attending class (1 point each week), and (2) submitting in-class exercises (1 or 2 points for each exercise). The exact number of total points possible will depend on the number of in-class exercises. I will calculate the total number of points that could be earned if you only miss one week of class, and define that to be 100% participation. Students with more points will be ceilinged at 100%.

RECORD KEEPING
We will use Blackboard to maintain RAW scores and attendance data. I compute grades according to this syllabus in a private spreadsheet. There is a column in BB labeled “TOTAL”: Ignore it; it’s meaningless for this class. (BB will not allow me to disable or hide this column.) If you see an error in the BB records, please inform us.

overview | grading | policies | miscellaneous

Policies

OFFICE HOURS
As usual, office hours are times that I commit to being in my office, first come, first served, no appointments necessary. I will hold office hours both in person and on zoom, as specified above. I will share the zoom link on our discussion board. If you come to zoom office hours, please come with audio and video on, and speak up in case my zoom window is minimized. If I have to miss office hours, I will inform you in class or on the discussion board. If your schedule prohibits you from making my office hours, then we can set up an appointment.

READINGS
Readings allow you to understand the concepts and the theory behind the applications. I expect you to read the relevant material before the class meets. The lectures may not cover everything in the readings and will often include material not found in the readings. If you read the material before class, you will learn more in class. If you miss class, you will not learn important concepts that are not in the books.

DISCUSSION BOARD USE
All students will be enrolled in the discussion forum for SWE 437 on piazza. You will receive an invitation via your Mason email. We will use the discussion board throughout the semester. Ask all technical questions about the material or the assignments on piazza. You can also post about software failures, errors in the books or slides, or about topics that extend from our classroom discussion.

IN-CLASS COMPUTER USE
Computers will be used extensively during in-class exercises, discussions, and examples, but not while I am lecturing from slides. I want you to pay attention to the class material. I have a detailed explanation why, but here is the short summary: Computers interfere with your classmate’s ability to concentrate on the educational material, my concentration, and your learning. Taking notes by hand is much more effective than typing notes on a computer. If you have to check your email or text messages, or take a phone call, please sit near the door so you can politely step out. I will ask you to close your computers while I lecture, and if that doesn’t work, will ask you to leave the classroom.

EMAIL
I send course announcements to your Mason email account, so you must read it regularly. Professors are required to use your Mason email, not personal email accounts. When you send email to the professor or TA, please start the subject with “swe 437.” If not, we may not notice it. Questions about the technical material and class policies should be posted on the discussion board, not sent through email.

TECHNOLOGIES USED
You will need access to a computer for this course. We will often use computers during class meetings, and a phone will usually not be enough. We will use quite a few free technologies: Java, JUnit, web browsers, blackboard, piazza, zoom, google, and dropbox. You will need accounts for several services, but will not need to purchase anything.

overview | grading | policies | miscellaneous

Miscellaneous

ELECTRONIC PRESENCE
I always accept linkedin requests from current and former students—we clearly have a professional relationship. (Be sure to remind me when you took my class.) I tweet random thoughts irregularly about software engineering @jeffoffutt. Out of respect, I do not initiate facebook requests from students, but usually accept them.

HONOR CODE STATEMENT
As with all GMU courses, SWE 437 is governed by the GMU Honor Code. In this course, all graded submissions carry with them an implicit statement that it is the sole work of the author or authors, including joint work when explicitly authorized. When joint work is authorized, all contributing students must be listed on the submission. Any deviation from this is considered an Honor Code violation, and as a minimum, will result in failure of the submission and as a maximum, failure of the class.

OFFICE OF DISABILITY SERVICES
If you need academic accommodations, please contact the Disability Resource Center (DRC) at 993-2474 and let me know what you need. All academic accommodations must be arranged through the DRC.

OTHER USEFUL CAMPUS RESOURCES
Writing Center: A114 Robinson Hall; (703) 993-1200; writingcenter.gmu.edu
University Libraries “Ask a Librarian”; library.gmu.edu/ask
Counseling and Psychological Services (CAPS): (703) 993-2380; caps.gmu.edu

Top