Internal Preview! The data shown below is not valid for students! Please refer to the official Module Descriptions at the Examination Office.
Generating Software Tests GST

General

study semester
5-6
standard study semester
6
cycle
occasional
duration
1 semester
SWS
4
ECTS
6
teaching language
English

People

responsible
Prof. Dr. Andreas Zeller
lectures
Prof. Dr. Andreas Zeller

Assessment & Grades

entrance requirements

Programming 1, Programming 2, Softwarepraktikum

assessment / exams

Projekte und Mini-Tests

grade

Das Modul ist insgesamt bestanden, wenn die Prüfungsleistung bestanden wurde.

Workload

course type /weekly hours
  2 h lectures
+ 2 h tutorial
= 4 h (weekly)
total workload
   60 h of classes
+ 120 h private study
= 180 h (= 6 ECTS)

Aims / Competences to be developed

Software has bugs and catching bugs can involve lots of effort. Yet, finding bugs is important especially when these bugs are critical vulnerabilities. This course addresses this problem by automating software testing, specifically by generating tests automatically. Students learn the basics of general testing and security testing and explore the most important tools and techniques for generating software tests.

Content

  • Introduction to Software Testing
  • Fuzzing: Breaking Things with Random Inputs
  • Mutation-Based Fuzzing
  • Greybox Fuzzing
  • Search-Based Fuzzing
  • Fuzzing with Grammars
  • Parsing Inputs
  • Probabilistic Grammar Fuzzing
  • Fuzzing with Generators
  • Reducing Failure-Inducing Inputs
  • Mining Input Grammars
  • Concolic Fuzzing
  • Symbolic Fuzzing
  • Testing APIs
  • Testing Web Applications
  • Testing Graphical User Interfaces
  • When To Stop Fuzzing

Literature & Reading

The teaching material consists of text, Python code, and Jupyter Notebooks from the textbook “The Fuzzing Book” (https://www.fuzzingbook.org/) in English.

Additional Information

Curriculum

This module is part of the following study programmes:

Cybersicherheit BSc: Vertiefungsvorlesungen der Cybersicherheit
study semester: 5-6 / standard study semester: 6
Cybersecurity MSc: Vertiefungsvorlesungen Cybersecurity
study semester: 1-3 / standard study semester: 4
Cybersecurity BSc (English): Kernthemen der Cybersicherheit
study semester: 5-6 / standard study semester: 6