Verification and Testing

Course Number 705040 and 705041 | Wintersemester 2020/21

Content

In this course, we teach various advanced methods to test and verify software and hardware. Instead of classical unit tests, we present techniques for automatic detection of bugs with little user-effort and methods to prove the correctness of a program independent of concrete input values.

The lecture starts with dynamic methods to detect and locate potential bugs related to concurrency or invalid memory accesses. Those bugs are hard to find with unit tests because they seem to show up randomly and are hard to reproduce. In the following lectures, we move on to static methods. Within these chapters, we show you how to prove the correctness of a program formally. Finally, the lecture ends with a session where we present current research topics to you. If you are interested in a master project, thesis, or internship on one of these projects, don’t hesitate to contact us!

The content of this lecture includes:

  • Eraser algorithm to detect race conditions
  • Locktree algorithms to identify potential deadlocks
  • How Valgrind finds invalid memory accesses
  • Static Analysis
  • Symbolic Encoding, Bounded Model Checking, and Concolic Execution
  • Hoare Logic
  • Deductive Software Verification with Dafny
  • Boolean Model Checking with the SLAM algorithm

Material

IMPORTANT-INFORMATION

Administrative Information

Previous Knowledge

inscription in the master`s program

Prerequisites Curriculum

See position in the curriculum

Objective

Knowledge of the state of the art in research in formal verification and testing.

Language

English

Teaching Method

Interactive lectures either online or in the lecture hall

How to get a grade

written examination

Registration

https://online.tugraz.at/tug_online/sa.gruppen_einteilung?clvnr=235779&corg=983

Lecture Dates

Date Begin End Location Event Type Comment
2020/10/01 16:00 18:00 HS i1 Abhaltung VO fix/
2020/10/08 16:00 18:00 HS i1 Abhaltung VO fix/
2020/10/08 17:30 18:30 HS i1 Abhaltung UE fix/
2020/10/15 16:00 18:00 HS i1 Abhaltung VO fix/
2020/10/15 16:00 18:00 HS i1 Abhaltung VO fix/
2020/10/15 17:30 18:30 HS i1 Abhaltung UE fix/Voluntary participation
2020/10/15 17:30 18:30 HS i1 Abhaltung UE fix/
2020/10/22 16:00 18:00 HS i1 Abhaltung VO fix/
2020/10/22 17:30 18:30 HS i1 Abhaltung UE fix/
2020/10/29 16:00 18:00 HS i1 Abhaltung VO fix/
2020/10/29 17:30 18:30 HS i1 Abhaltung UE fix/
2020/11/05 16:00 18:00 HS i1 Abhaltung VO fix/
2020/11/05 17:30 18:30 HS i1 Abhaltung UE fix/
2020/11/12 16:00 18:00 HS i1 Abhaltung VO fix/
2020/11/12 17:30 18:30 HS i1 Abhaltung UE fix/
2020/11/19 16:00 18:00 HS i1 Abhaltung VO fix/
2020/11/19 17:30 18:30 HS i1 Abhaltung UE fix/
2020/11/26 16:00 18:00 HS i1 Abhaltung VO fix/
2020/11/26 17:30 18:30 HS i1 Abhaltung UE fix/
2020/12/03 16:00 18:00 HS i1 Abhaltung VO fix/
2020/12/03 17:30 18:30 HS i1 Abhaltung UE fix/
2020/12/10 16:00 18:00 HS i1 Abhaltung VO fix/
2020/12/10 17:30 18:30 HS i1 Abhaltung UE fix/
2020/12/17 16:00 18:00 HS i1 Abhaltung VO fix/
2020/12/17 17:30 18:30 HS i1 Abhaltung UE fix/
2021/01/07 16:00 18:00 HS i1 Abhaltung VO fix/
2021/01/07 17:30 18:30 HS i1 Abhaltung UE fix/
2021/01/14 16:00 18:00 HS i1 Abhaltung VO fix/
2021/01/14 17:30 18:30 HS i1 Abhaltung UE fix/
2021/01/21 16:00 18:00 HS i1 Abhaltung VO fix/
2021/01/21 17:30 18:30 HS i1 Abhaltung UE fix/
2021/01/28 16:00 18:00 HS i1 Abhaltung VO fix/
2021/01/28 17:30 18:30 HS i1 Abhaltung UE fix/

Lecturers

Roderick Bloem
Roderick
Bloem

Professor

View more
Benedikt Maderbacher
Benedikt
Maderbacher

PhD Student

View more