ENRE 489E

Special Topics in Reliability Engineering: Software Reliability Testing

Spring 2003 – Tuesday, 3:00 pm – 5:45 pm – Martin Hall 0312 – 3 units

 

Instructor:             Dr. Michel Cukier

Office: 2100H Marie Mount Hall

Phone: 301.314.2804

Fax: 301.314.9601

Email: mcukier@eng.umd.edu

Office hours: Friday 10:00 am – 12:00 pm or by appointment

 

Project Assistant:            Avik Sinha

Office: 2200 Marie Mount Hall

Phone: 301.405.6640

Fax: 301.314.9601

                                    Email: avik@glue.umd.edu

 

Prerequisite: Either CMSC114 or CMSC214, and either CMSC/MATH475 or MATH461; or consent of instructor.

 

Readings:

·         B. Beizer, Software Testing Techniques (second edition).

·         P. Jorgensen, Software Testing: A Craftsman’s Approach (second edition).

 

Course Objective: The goal of this class is to provide an overview of the state-of-the-art of software testing. About 15 hours will be dedicated to lectures on software testing. The remaining time will be dedicated to two projects. The first project will focus on testing a real program using TestMaster, a tool for automatically testing software. The second project will focus on writing the specifications of a real program in HaskellDB, a language for formal verification of applications.

 

Course Description: The lectures will discuss different software testing methods used during the software development cycle for unit testing, integration testing, and system testing. Each method considers the software either as a white box or as a black box. The first case leads to structural testing, the second one to functional testing. Flowgraphs and data-flows are two examples of white box models, and behavioral models and textual descriptions are two examples of black box models. For all these methods, inputs can be generated in a deterministic or statistical way. For the deterministic case, special values like boundary values are often used; in the statistical case, the inputs are selected following either a uniform distribution (random testing) or a specific distribution (statistical testing).

 

Exams: There will be a midterm and a final exam. The final exam is cumulative. They will be both in classroom.

 

Project: There will be two projects lasting each one a half semester. The first project will be to design and carry out a complete test of a real program using TestMaster. The second project will be to design formal specifications in HaskellDB.

 

Homework: There will be small computer and/or homework assignments for several of our topics. Further instructions will be provided.

 

Reading: The lectures may not cover everything in the readings and might include material not found in the readings.

 

Honor Statement: In this course, all assignments, exams, and project submissions carry with them an implicit statement that it is the sole work of the author, unless joint work is explicitly authorized. Unauthorized group efforts are considered academic dishonesty. Check the web site on Code of Student Conduct for definitions and sanctions.

 

Grading: Grades will be: 20% midterm, 30% final, 35% project, 10% homework, 5% participation.