CISC 879 Software Testing and Maintenance - Fall 2009

Course Overview

Course Description

This course is a study of software testing and maintenance methodologies for object-oriented, component-based, concurrent, distributed, and web software. Topics include approaches to automatic test case generation, test oracles, test coverage analysis, regression testing, impact analysis, program understanding, and software maintenance tools.

Prerequisite: Algorithms and programming languages would be helpful.
Restrictions: Undergraduates must obtain instructor's permission.

The course is a combination of mini-lectures on the major challenges in software testing and maintenance, intermixed with presentations and discussions of recent state-of-the-art research papers addressing these challenges. The research papers have been published and presented in the past few years at the most respected conferences in the topic area. Students will actively participate in a number of ways as described under the course requirements below.

At the end of the semester, a student completing the course should have:

  • a solid knowledge of the major challenges and state of the art research in software testing and maintenance
  • improved oral and written communication skills
  • improved skills in critical paper review and identification of open problems
  • experience using various software testing and maintenance tools
  • experience in brainstorming new research ideas, and planning an implementation and evaluation study


The course is primarily based on recent conference and journal articles, and links to the specific papers are provided at this website. Students are expected to download (and print if desired) the papers to read.

Recommended References
These books provide some background reading on some of the topics.

Paul Ammann and Jeff Offutt, Introduction to Software Testing, ISBN 0-52188-038-1, Cambridge University Press, 2008.

Mauro Pezze and Michal Young, Software Testing and Analysis, Process, Principles and Techniques, ISBN-10: 0-471-45593-8 ISBN-13: 978-0-471-45593-6 - John Wiley & Sons, 2007.

Robert V. Binder, Testing Object-Oriented Systems: Models, Patterns, and Tools, ISBN-10: 0201809389, Addison-Wesley Object Technology Series, 1999.

Assignments and Grading


Course Policies

Getting Help

Just send email ot me and I'll email the question and answer to the whole class without identifying the person asking the question.

Assignment Submission:

Assignments (PDP forms) must be ready to give to the instructor by the start of class on the due date, in order to have no points deducted for lateness. The due dates are to be taken seriously and you should not expect them to be extended. The pace of work is implicit in the due dates and necessary if you expect to finish by the end of the semester. Homeworks to be graded should be turned in at the start of class on the specified due date. NO late homeworks will be accepted FOR FULL CREDIT without discussion with me prior to the due date. If you can not reach me, leave a message on my voicemail. All other assignments not delivered by the due date are considered late.

My philosophy on late assignments is: (1) Everyone should try their best to complete all assignments by the specified due date. (2) People who work conscientiously to make the deadlines should be rewarded for their promptness and sacrifice of sleep. Thus, allowing others to hand in late assignments without some penalty is not fair to these people. However, there are various circumstances that may prevent you from completing an assignment by the due date. Allowing no late assignments would not give you much incentive to continue to work on the assignment, which is a major source of learning in this course. Thus, I believe late assignments are better than no assignment.

Late assignments will be penalized 10% off the total possible points if turned in within the first 24-hour period after the specified due date and time, and 5% per 24-hour period (or fraction of a day) (including weekends) after that time, up to a week after the due date. Late assignments will be accepted with penalty up to one week after the due date. Assignments submitted at any later time without an approved excuse will not be accepted. It is up to you to determine the version of your assignment to be graded. You must weigh the late penalty against the completeness of your assignment.

Regrading Policy:

If you are dissatisfied with a grade on an assignment, or exam, you should consult the instructor directly within a week of the day the graded assignment was returned to you. No regrade requests will be considered after this week period.

Posting Grades:

With your permission, grades will be posted periodically (by your secret code) online. Questions about accuracy of recorded grades should be addressed to me.

Policy on Academic Dishonesty:

You are permitted to consult with other students and professors on any conceptual problems or clarification issues on all assignments. Research papers, quests, and PDP's should be completed on your own, in your own words. All assignments should be done as your own work or your group's work, with proper citations to others' work as appropriate. Any evidence of collaboration other than specified will be handled as stated in the Official Student Handbook of the University of Delaware. If you are in doubt regarding the requirements, please consult with me before you complete any requirement of this course.

Student Guide to University Policies: Code of Student Conduct

Copyright © 2007 University of Delaware
Other Selected Papers:
Customization Change Impact Analysis for ERP Professionals via Program Slicing, ISSTA 08
Data Flow Testing of Service-Oriented Workflow Applications, ICSE 08
A System to Generate Test Data and Symbolically Execute Programs
Impact Analysis of Database Schema Changes, ICSE 08
Invariant-based automatic testing of AJAX user interfaces, ICSE 09
Automated Session Data Repair for Web Application Regression Testing, ICST 08
Safe-commit analysis to facilitate team software development, ICSE 09
Semantics-based code search, ICSE09
Benchmarking Classification Models for Software Defect Prediction: A Proposed Framework and Novel Findings, TSE 08
Scalable Statistical Bug Isolation