Office: 2100H Marie Mount Hall
Email: mcukier@eng.umd.edu
Office hours: Friday 10:00 am – 12:00 pm or by appointment
Project Assistant: Avik Sinha
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.