Program Testing and Analysis

Quick Facts

Lecturer     Prof. Dr. Michael Pradel
Teaching assistantsMarina Billes, Andrew Habib, Jibesh Patra, Marija Selakovic, Cristian-Alexandru Staicu
Course typeIntegrated course
TimeFriday, 13:30--15:10
TUCAN entry20-00-0933-iv
PiazzaClass page



This course introduces the principles and practice of testing and analyzing large software systems. The course provides an overview of program analysis and covers two topics in more detail: Test generation, i.e., techniques for automatically creating inputs to execute a program, and dynamic analysis, i.e., techniques for reasoning about the runtime behavior of a program. In addition to weekly lectures, students will deepen their understanding through a practical course project (implement a program analysis based on an existing framework) and acquire research skills by writing a term paper. Besides academic achievements, the course will help students to improve their programming skills by learning about common sources of mistakes and about techniques to find them. Grading will be based on a final exam, the course project, and the term paper.



This is a preliminary schedule that may change.

Date     Topic     Material     Deadlines and special events
Oct 20, 2017(no lecture)
Oct 27, 2017Introduction; BasicsSlides and notes
Nov 3, 2017Operational semantics 1

Slides and notes

Fernandez' book

Pitts' lecture notes

Nov 10, 2017Operational semantics 2

Slides and notes (part 1)

Slides and notes (part 2)

Register teams for project and choose topics

Choose topics for term paper

Nov 17, 2017Manual testing

Slides and notes (part 1)

Slides and notes (part 2)

Pezze and Young's book

Nov 24, 2017

Random and fuzz testing

Slides and notes




Dec 1, 2017Random and fuzz testing 2Slides and notes
Dec 8, 2017Symbolic and concolic testing 1

Slides and notes (part 1)




Dec 15, 2017

Symbolic and concolic testing 2


Slides and notes (part 2)

Dec 22, 2017(no lecture)



Mid-term "exam" (not mandatory)
Jan 12, 2018Information flow analysis

Slides and notes



Austin & Flanagan

Term papers for peer review
Jan 19, 2018

Testing concurrent programs


Slides and notes




Jan 26, 2018Program slicing

Slides and notes


Dynamic slicing

Thin slicing

Reviews for term papers
Feb 2, 2018

Specification mining &

Performance profiling

Slides and notes


Ammons et al.


Slides and notes

Mytkowicz et al.

Empirical complexity

Memory bloat

Feb 9, 2017Path profiling

Slides and notes


Whole program


Feb 12-16, 2018Presentation of projects
Feb 25, 2018Final term papers
Mar 5, 2018Projects

Mar 20, 2018


Final exam


Questions, quizzes, and additional information

We are using Piazza for class discussion, in-class quizzes, and for sharing additional material. The system is highly catered to getting you help fast and efficiently from classmates and instructors. Rather than emailing questions to the teaching staff, please post your questions on Piazza.

Find our class page at: 


Term Paper and Project Report

For writing term papers and project reports, please use this LaTeX template.



Grading will be based on the course project, the term paper, and the final exam (33% each). We also provide a non-mandatory mid-term "exam", which allows students to obtain extra credits that can improve the overall grade by up to 10%.

A A A | Drucken Print | Impressum Impressum | Sitemap Sitemap | Suche Search | Kontakt Contact | Webseitenanalyse: Mehr Informationen
zum Seitenanfangzum Seitenanfang