Home Contact

CMSC737: Fundamentals of Software Testing (Fall 2012)

Dept. of Computer Science, University of Maryland, College Park, MD, USA.

About the Course

Meeting Times & Location

Tue. Thu. - 9:30AM - 10:45AM (CSIC 2120).

Office Hours

Tue. Thu. - 10:45AM - 12:00PM (4115 A. V. Williams Building) Other meetings may be scheduled individually and held over Skype and Phone.

Catalog Course Description

This course will examine fundamental software testing and related program analysis techniques. In particular, the important phases of testing will be reviewed, emphasizing the significance of each phase when testing different types of software. The course will also include concepts such as test generation, test oracles, test coverage, regression testing, mutation testing, program analysis (e.g., program-flow and data-flow analysis), and test prioritization.

Course Summary

This course will examine fundamental software testing and program analysis techniques. In particular, the important phases of testing will be reviewed, emphasizing the significance of each phase when testing different types of software. Students will learn the state of the art in testing technology for object-oriented, component-based, concurrent, distributed, graphical-user interface, and web software. In addition, closely related concepts such as mutation testing and program analysis (e.g., program-flow and data-flow analysis) will also be studied. Emerging concepts such as test-case prioritization and their impact on testing will be examined. Students will gain hands-on testing/analysis experience via a multi-phase course project. By the end of this course, students should be familiar with the state-of-the-art in software testing. Students should also be aware of the major open research problems in testing.

Grading and status with respect to graduate program

The grade of the course will be determined as follows: 15% midterm exam, 5% topic presentation, 5% project presentation, 25% final exam, 50% class project.
MS qualifying course (Midterms + Final exam), PhD core (Software Engineering).

Student Presentations

All students are required to present a topic related to software testing. You must prepare slides and select a date for your presentation. Group presentations are encouraged if the selected topic is broad enough.