Lecturer | Prof. Dr. Michael Pradel | |
Teaching assistants | Marina Billes, Andrew Habib, Jibesh Patra, Marija Selakovic, Cristian-Alexandru Staicu | |
Course type | Integrated course | |
Time | Friday, 13:30--15:10 | |
Location | S207/109 | |
TUCAN entry | 20-00-0933-iv | |
Piazza | Class 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, 2017 | Introduction; Basics | Slides and notes | |||||
Nov 3, 2017 | Operational semantics 1 | ||||||
Nov 10, 2017 | Operational semantics 2 | Register teams for project and choose topics
| |||||
Nov 17, 2017 | Manual testing | ||||||
Nov 24, 2017 | Random and fuzz testing | ||||||
Dec 1, 2017 | Random and fuzz testing 2 | Slides and notes | |||||
Dec 8, 2017 | Symbolic and concolic testing 1 | ||||||
Dec 15, 2017 | Symbolic and concolic testing 2
| ||||||
Dec 22, 2017 | (no lecture) | Mid-term "exam" (not mandatory) | |||||
Jan 12, 2018 | Information flow analysis | Term papers for peer review | |||||
Jan 19, 2018 | Testing concurrent programs
| ||||||
Jan 26, 2018 | Program slicing | Reviews for term papers | |||||
Feb 2, 2018 | Specification mining & Performance profiling | ||||||
Feb 9, 2017 | Path profiling | ||||||
Feb 12-16, 2018 | Presentation of projects | ||||||
Feb 25, 2018 | Final term papers | ||||||
Mar 5, 2018 | Projects | ||||||
Mar 20, 2018 |
| Final exam |
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: https://piazza.com/tu-darmstadt.de/winter2018/20000933iv/home
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%.