COM 3220: SOFTWARE TESTING AND VERIFICATION

Instructor: Paul Attie
Room: 245 Cullinane
Time: Fall Quarter 2002, Wednesday 6:00 - 9:00 p.m.
Office hours: Wednesday 4:00 -- 5:00 p.m., by appointment

Course overview:
The course will cover the fundamentals underlying current methods for testing and verifying software for desired properties such as functional correctness, performance, fault-tolerance, timing, etc. I will emphasize approaches, such as model checking, which have been used in industry. Grading will be based on class participation, homeworks, and a term project. The project will consist of a serious case study of the application of a verification, testing, or design methodology to a challenging example, e.g., take a complex algorithm and verify a certain correcteness property , or, write a specification in a particular notation, and then design a program that satisfies the specification. You will have a large amount of freedom in selecting the topic of the project. I will emphasize my viewpoint that theory should be directed to practical application, and will spend some time discussing my own research in this regard.

  • Syllabus (Postscript) (PDF)

  • Guidelines for the project

  • Homework Assignments
    Problem set 1 (Postscript) (PDF)
    Problem set 2 (Text)
    Problem set 3 (Postscript) (PDF)

  • Readings
    Lecture notes on Hoare Logic (Postscript) (PDF)

    Temporal and Modal Logic (Postscript) (PDF)

    Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic Specifications (PDF)

    Forward and Backward Simulations Part I: Untimed Systems (Postscript)

    Eventually-serializable Data Services (Postscript)

    Synthesis of concurrent systems with many similar processes (PDF)

    Recognizing safety and liveness (Postscript)

    Liveness-preserving Simulation Relations (Postscript)

  • Project Information
    Here are some tools that you can think about using in your project.
    The IOA Project (I/O Automata)

    The Alloy Constraint Analyzer

    CMU Model Checking Group

    The SPIN Model Checker

    The STEP Project
    This is a good "archive" for formal methods in general. Please do not feel restricted to the tools given above. They are only recommendations. Formal Methods Archive

    Back to my home page.