Seminar on Program Analysis at TU Darmstadt (Winter Semester 2014)

Quick Facts

Instructor:       Michael Pradel
Course type:       Seminar
Language:       English
Time:       Monday, 3pm
Location:       Rheinstr. 75 (Fraunhofer SIT Neubau), ground floor, Room "Hamburg"
TUCaN entry:       20-00-0769-se

Motivation and Goals

Have you ever wondered how to find many bugs with little effort? This seminar is about recent research in the area of automated program analyses that find bugs. Program analysis is the process of automatically analyzing the behavior of a program. It is a topic at the intersection of software engineering and programming languages.

In this seminar, students will learn how to read and digest research papers, how to present complex ideas to others, and how to give constructive feedback. Specifically, each student will be required to read and understand several research papers, to write a term paper that summarizes and discusses these papers, to critically review term papers written by others, and to give a talk.


We cover the following topics:

  • Anomaly detection
  • Concurrency bugs
  • Web and GUI applications
  • Type analysis of dynamic languages
  • Performance bugs
  • Concolic execution
  • Random-based test generation
  • Security vulnerabilties
  • Differential testing
Check out the tentative list of papers for these topics.


To participate in the seminar, you must be present during the first meeting.

Grades are determined based on your final term paper (40%), your talk (40%), and your review of other term papers (20%). Attending the weekly meetings is mandatory to get credit.


Term Papers

For writing term papers, please use this LaTeX template.


We'll have weekly meetings from Nov 10 to Dec 15, 2014, where one or more students talk about a particular topic. During the semester, there are deadlines for submitting your term paper, for reviewing term papers written by others, and for revising your term paper based on the feedback you get. Here's a tentative schedule:

Nov 10, 2014: Concurrency

Paper     Speaker
Multithreaded Java program test generation, Edelstein et al., 2002 Ankit Chouhary
AVIO: Detecting Atomicity Violations via Access Interleaving Invariants, Lu et al., 2006 Aoun Haider

Nov 17, 2014: Web and GUI applications

Paper     Speaker
A Framework for Automated Testing of JavaScript Web Applications, Artzi et al., 2011 Thomas Glaser
EventBreak: Analyzing the Responsiveness of User Interfaces through Performance-Guided Test Generation, Pradel et al., 2014 Prasad Sawant

Nov 24, 2014: Performance bugs 1

Paper     Speaker
Go with the Flow: Profiling Copies to Find Runtime Bloat, Xu et al., 2009 Matthias Mettel
Catch Me If You Can: Performance Bug Detection in the Wild, Jovic et al., 2011 Saju Daniel

Dec 1, 2014: Performance bugs 2

Paper     Speaker
Measuring Empirical Computational Complexity, Goldsmith et al., 2007 Manikandan Ravichandran
Algorithmic Profiling, Zaparanuks and Hauswirth, 2012 Jigar Modi

Dec 8, 2014: Concolic execution

Paper     Speaker
DART: Directed Automated Random Testing, Godefroid et al., 2005 Markus Ermuth

Dec 15, 2014: Testing at Google/Youtube
Guest talk by Andreas Leitner (Google, Zurich)

Jan 12, 2015: Security vulnerabilities

Paper     Speaker
25 Million Flows Later - Large-scale Detection of DOM-based XSS, Lekies et al., 2013 Tahir Hussain
Chucky: Exposing Missing Checks in Source Code for Vulnerability Discovery, Yamaguchi et al., 2013 Suhas Chikkanna

Jan 12, 2015: Deadline for term papers

Jan 29, 2015: Deadline for reviews

Feb 17, 2015: Deadline for revised term papers

A A A | Drucken Print | Impressum Impressum | Sitemap Sitemap | Suche Search | Kontakt Contact | Website Analysis: More Information
zum Seitenanfangzum Seitenanfang