CS 490AM (aka 49000-020) Software Testing

Fall 2009

Background and Objectives

“In the event of a major campus emergency, course requirements, deadlines and grading percentages are subject to changes that may be necessitated by a revised semester calendar or other circumstances. Any changes in this course will be announced at this site.”

Software testing is an integral and important activity in every software development environment. Software has permeated almost every equipment that we use in our daily lives. Companies that produce embedded systems for use in health care, transportation, and other critical segments of our society have embraced software testing by integrating it into their development environments.

This course is designed to enable a clear understanding and knowledge of the foundations, techniques, and tools in the area of software testing and its practice in the industry. The course will prepare students to be leaders in software testing. Whether you are a developer or a tester, you must test software. This course is a unique opportunity to learn strengths and weaknesses of a variety of software testing techniques.

Applications of testing techniques in health care industry (e.g. pacemaker), nuclear industry (e.g. plant control), aerospace industry (e.g. Mars Polar Lander), security (e.g. smart card), automobile industry (e.g. automotive control systems), and Business will be considered.

The course will focus on:

(a) Test process and continuous quality improvement

(b) Test generation from requirements

(c) Modeling techniques: UML: FSM and Statecharts, Combinatorial design; and others.

(d) Test generation from models.

(e) Test adequacy assessment.

(f) Industrial applications.

Highly interactive and discussion oriented lectures by the instructor, in-class group presentations by teams, self-paced laboratory exercises using advanced testing tools, and invited talks by experts from the industry will be the primary mechanisms for learning and the dissemination of knowledge.

Course description:

Fundamentals of software testing; software test proces and continuous quality improvement; Test generation using finite state models, Combinatorial design, and others; Test adequacy assessment using black box and white box criteria; Industrial applications of model based testing. Students will be required to form small teams of three or four, preferably interdisciplinary, and make presentations to the class.The work of each team will be reviewed by the instructor and other teams.

Prerequisites: Senior in CS, ECE, or IE.

Credits: 3

Textbook: Foundations of Software Testing. Aditya Mathur. Pearson Education/Addison Wesley Professional. 2008.

Last Update: June 9, 2009