News
Project and exam Q&A on TuesdayWritten on 25.01.26 by Alexander Liggesmeyer We plan to hold a Project 2 discussion and an exam Q&A session in the next lecture on 27.01.
To answer some of your questions, we may provide a few examples. If you have any questions you would like us to address, please post them in this thread so we can prepare our answers for Tuesday. Link:… Read more We plan to hold a Project 2 discussion and an exam Q&A session in the next lecture on 27.01.
To answer some of your questions, we may provide a few examples. If you have any questions you would like us to address, please post them in this thread so we can prepare our answers for Tuesday. Link: https://cms.cispa.saarland/fuzzing25/forum/viewtopic.php?t=170
|
Assignment 10 has been releasedWritten on 20.01.26 (last change on 20.01.26) by Alexander Liggesmeyer We’ve just released Assignment 10! You can find it under the Materials section in the CMS: https://cms.cispa.saarland/fuzzing25/materials/ Happy fuzzing! |
Project 2 Repository UpdateWritten on 16.01.26 (last change on 16.01.26) by Alexander Liggesmeyer We have updated the Project 2 repositories after discovering an issue in some of the test cases. A Java This has now been corrected, and the fix has already been merged into your Project 2 repositories on GitHub. If you… Read more We have updated the Project 2 repositories after discovering an issue in some of the test cases. A Java This has now been corrected, and the fix has already been merged into your Project 2 repositories on GitHub. If you have a local clone of the repository, please make sure to pull the latest commits so your local version is up to date. We also expanded the Fandango info section in the exercise description, in order to give you some more details about how to use the Party definitions provided. No further action is required beyond updating your local repository. |
GitHub Classroom Repository Access Issue for Project 2 and AssignmentsWritten on 15.01.26 (last change on 15.01.26) by Alexander Liggesmeyer Due to an issue on GitHub's side, some of you may not get immediate access to your assignment repository after accepting a GitHub Classroom assignment. Instead you see a page saying "Repository access issue". Here's how to resolve this: After you accept an assignment, GitHub does send you an… Read more Due to an issue on GitHub's side, some of you may not get immediate access to your assignment repository after accepting a GitHub Classroom assignment. Instead you see a page saying "Repository access issue". Here's how to resolve this: After you accept an assignment, GitHub does send you an invitation email to the repository. You must accept this invitation before you can access your repository. What you should do
If you cannot find the invitation emailIf you do not see the invitation email, you can still accept it manually by visiting your repository link in your browser:
or
Example If your GitHub username is 'ExampleUser', visit:
or
|
Course Updates: Project 2 Released, Grades for Project 1 Published, and Assignment ChangesWritten on 14.01.26 (last change on 14.01.26) by Valentin Huber Project 2 has now been released and is available on GitHub Classroom, you find the link in the CMS in the materials section, as usual. Please make sure to read the project description carefully and plan your work accordingly. The grades for project 1 have been published and can be viewed in the… Read more Project 2 has now been released and is available on GitHub Classroom, you find the link in the CMS in the materials section, as usual. Please make sure to read the project description carefully and plan your work accordingly. The grades for project 1 have been published and can be viewed in the grading system. Students who used custom seeds will receive 0 points for both parts, students who didn't pass the minimum coverage for either part will receive 0 points for the failed part(s). For fairness' sake with regards to the students who used their own seeds, we will also drop the requirement that project 1 needs to be passed to pass the course. Students who received a non-passing grade for project 1 will need to make up for the missing points in assignments, project 2 and the exam. ❗️Please check your points in the CMS and notify us if you cannot see them. The new rules are as follows: the projects individually, the asssignments as a total, and the exam will each contribute 25% of your final grade, with each scaled to its respective maximum points. You need to pass all of the following with a passing grade to pass the course: project 2, the assignments (as a whole), and the exam. Please note a change to the assignment schedule. The assignment sheet planned for this week will be skipped, as you have already done compiler fuzzing in project 1. Instead, the remaining two assignment sheets later in the course will each be worth 15 points. Additionally, we encountered an permission issue with Assignment 9 that affected 2 students. These students did not receive writing permissions for their assignment repository. If you were affected, you saw a page saying “Repository access issue” when accepting the assignment. If this applies to you, please visit https://github.com/fuzzing2526/2526-assignment-09-[YourGitHubUsername]/ and accept the invitation manually. For example is your github username is 'examplename': https://github.com/fuzzing2526/2526-assignment-09-examplename/ Due to this issue, the deadline for Assignment 9 has been extended by two days for everyone. The new deadline is 16.01.2026 at 14:00 CET. If you are not able to accept the assignment, contact alexander.liggesmeyer@cispa.de. |
Talk by Marcel Böhme, Fuzzing Book co-author, on 13 January 10:00Written on 08.01.26 (last change on 14.01.26) by Andreas Zeller On January 13 at 10:00, Marcel Böhme, co-author of the Fuzzing Book and an eminent fuzzing researcher, will visit CISPA. Feel free to join us for his talk. (Our regular lecture will still take place at 14:15.) Details on Marcel's talk below: Marcel Böhme: Automatic Software Security at Scale On January 13 at 10:00, Marcel Böhme, co-author of the Fuzzing Book and an eminent fuzzing researcher, will visit CISPA. Feel free to join us for his talk. (Our regular lecture will still take place at 14:15.) Details on Marcel's talk below: Marcel Böhme: Automatic Software Security at Scale Abstract. The security of our software systems has never been more important. Just this week, a Principal Engineer at Google announced that a coding agent created in a few hours what her entire team spent one year to build. Soon, our software systems will rapidly change and evolve with minimal human intervention in reaction to user needs and requirements. Yet, as we are grappling with LLM hallucinations and trustworthiness, how do we ensure that our systems today and those “machine-developed” systems of the future are reliable and secure? |
Assignment 09 has been releasedWritten on 06.01.26 by Alexander Liggesmeyer We’ve just released Assignment 09! You can find it under the Materials section in the CMS: https://cms.cispa.saarland/fuzzing25/materials/ Please excuse the delayed release. We adjusted the deadline by one day (14.01.2026) to make up for that. Happy fuzzing! |
Course EvaluationWritten on 16.12.25 (last change on 30.12.25) by Andreas Zeller We constantly aim to improve our course offerings. Please take a moment to provide feedback on the "Security Testing" course: https://qualis.uni-saarland.de/eva/?l=160324&p=3rr2s1 The link is active until January 12, 2026. |
Project 1: Bugfixes and Setup Time ChangesWritten on 11.12.25 by Valentin Huber I was made aware of two distinct bugs with the project setup, and found one cheating avenue, all of which was fixed by a commit that was just pushed to the repositories of all students that have already accepted the project 1 (please run git pull!) — students who have not yet accepted the project will… Read more I was made aware of two distinct bugs with the project setup, and found one cheating avenue, all of which was fixed by a commit that was just pushed to the repositories of all students that have already accepted the project 1 (please run git pull!) — students who have not yet accepted the project will automatically get the newest version. Here are the changes in detail:
If you have any questions regarding these changes, please ask them in the forum. I would also like to thank all the students that have reported these bugs and helped me find fixes. Enjoy your fuzzing! |
Confusion with the deadline for Assignment 6Written on 03.12.25 (last change on 05.12.25) by Tural Mammadov We have just noticed that we made a mistake with the deadline for Assignment 6, specifying December 16th instead of December 9th. To avoid any potential confusion, we will not be changing the deadline for Assignment 6. We will collect your solutions on December 16th. However, we still encourage you to… Read more We have just noticed that we made a mistake with the deadline for Assignment 6, specifying December 16th instead of December 9th. To avoid any potential confusion, we will not be changing the deadline for Assignment 6. We will collect your solutions on December 16th. However, we still encourage you to complete Assignment 6 this week, as we will release Assignment 7 next week. As usual, you will have 7 days to solve it. So, both solutions for Assignments 6 and 7 will be collected on December 16th. Happy fuzzing! |
Project 1 – Scope AdjustmentWritten on 19.11.25 (last change on 19.11.25) by Valentin Huber After some questions and further evaluation by us, we found that project 1 has a shortcut that we deem unfair: If you happened to find a set of very good seed inputs (and there are plenty of those lists out there), you were basically guaranteed to get the maximum grade, even without having to write a… Read more After some questions and further evaluation by us, we found that project 1 has a shortcut that we deem unfair: If you happened to find a set of very good seed inputs (and there are plenty of those lists out there), you were basically guaranteed to get the maximum grade, even without having to write a fuzzer. We have therefore split the project 1 evaluation into two parts: One with no seeds, and one with a small set of high-quality seeds provided by us. This will provide a more even playing ground for everybody. For those of you who previously accepted the assignment: I pushed the changes to your repository directly. Please run git pull. For those of you who have not: You will get the updated instructions directly, once you do accept the assignment. Refer to the README for the updated instructions and rules. Please re-read the entire README, as multiple things have changed. We are sorry about the inconvenience, particularly to students who have already discovered this and put in some work to find good seeds. If you have any questions regarding the new rules, please ask in the forum. |
Deadline extension for Assignment 03Written on 18.11.25 by Alexander Liggesmeyer We were informed that the deadline for Assignment 03 was shown as 14:00 in the CMS, but the assignment sheet and the announcement in the GitHub classroom stated 12:00. To resolve this inconsistency, we have extended the deadline by one day (19. November at 14:00). |
Project 1 ReleasedWritten on 15.11.25 (last change on 18.11.25) by Valentin Huber All details are available directly in the README of the repository. The deadline is end of the end in CET on 23.12. Find the repository in GitHub classroom. The preliminary dates for project 2 are: release on 13.01., deadline on 03.03. |
Exam dates are specifiedWritten on 11.11.25 by Tural Mammadov Dear Students, the exam dates for the "Security Testing" course are now specified:
|
Online notebooks work againWritten on 21.10.25 by Andreas Zeller Dear all – you can now (again) launch interactive notebooks right out of |
Accessing GitHub ClassroomWritten on 21.10.25 by Tural Mammadov Dear Students, If you do not find your matriculation number listed on Security Testing GitHub Classroom (for example, you registered later), please reach out to Alexander, Tural, or Valentin. |
Assignment 00 has been releasedWritten on 21.10.25 (last change on 21.10.25) by Alexander Liggesmeyer We’ve just released Assignment 00! You can find it under the Materials section in the CMS: https://cms.cispa.saarland/fuzzing25/materials/ This initial assignment is meant to get you familiar with the submission process and ensure your setup is ready for the upcoming exercises. Happy fuzzing! |
Security Testing
The Course. Software has bugs, and catching bugs can involve lots of effort. This course addresses this problem by automating software testing, specifically by generating tests automatically. Recent years have seen the development of novel techniques that have led to dramatic improvements in test generation and software testing. In this course, we explore these techniques – in theory and in code.
Course Material. The course material comes as a collection of Jupyter Notebooks, in which you can study how the individual techniques work – and even do your own experiments and create new combinations. Every week, you will be getting 1–2 new chapters (notebooks) on a new topic, which we will then discuss the next week in the classroom. All chapters are available at
In the notebook, you can edit the code as you like, run your own experiments, and re-use and extend the code to your liking; but you can also download and use the Python code "as is". Your task will be to use these techniques (and their code) to build a series of fuzzers (i.e., test generators) that find bugs in several challenging settings.
Attending. The lectures for this course take place as an on-site lecture, in which our lecturer (Andreas) will introduce you to the chapters to be read in the upcoming week and answer questions. The book also offers video lectures for each chapter.
Weekly exercises. Every week, you will get an exercise sheet with exercises relating to the current chapter. Your solutions are due after one week and will be graded.
Projects. During the course, you will run two projects in which you will build your own automated fuzzing tools. You will implement projects in Python and use Jupyter Notebooks to document design choices and introduce your readers to the included code.
Exam. There will be an exam at the end of the course:
- 2026-02-19 Günter Hotz Hörsaal 10:00-12:00 – exam
- 2026-03-16 Günter Hotz Hörsaal 14:00-16:00 – re-exam
Grading. Grading will be based on
- points achieved in weekly exercises (25%)
- points achieved in Project 1 (25%)
- points achieved in Project 2 (25%)
- points achieved in the Exam (25%)
To pass, you must achieve 50% of points in each category and 50% of the overall points.
The Prerequisites. We expect programming skills at the level of "Programming 2". Knowledge in Python, program analysis, and instrumentation can be acquired on the go. We use statistics, logic, and machine learning, but nothing too exotic.
Questions and Answers. We will set up discussion forums for questions and answers. You can also ask questions during the lecture and get immediate answers.
Date and Time. Every Tuesday, 14:15–16:00 in CISPA C0, Stuhlsatzenhaus 5, Lecture Hall 0.05. The lecture runs in person. The course starts on Tuesday, October 21. There will be no lectures in the two-week Christmas break; the last lecture is on February 3.
Lecture Plan. (Tentative and subject to change.)
The sequence of chapters is different from the book; to synchronize with the projects, we first discuss black-box techniques, then white-box techniques, and then domain-specific approaches.
2025-10-21: Introduction to the course • Introduction to Software Testing
2025-10-28: Introduction to Fuzzing
2025-11-04: Fuzzing with Grammars • Efficient Grammar Fuzzing
2025-11-11: Grammar Coverage • Reducing Failure-Inducing Inputs (*)
2025-11-18: Probabilistic Grammar Fuzzing (makes use of Parsing Inputs) • Fuzzing with Generators (*)
2025-11-25: Current Trends in Fuzzing Research
2025-12-02: Code Coverage
2025-12-09: Mutation-Based Fuzzing • Greybox Fuzzing • Greybox Fuzzing With Grammars
2025-12-16: Fuzzing with Constraints (with Fandango)
2026-01-06: Fuzzing APIs • Fuzzing Configurations
2026-01-13: Testing Compilers
2026-01-20: Testing Web Applications • Testing Graphical User Interfaces
2026-01-27: Project and exam Q&A
2026-02-03: Mining Input Grammars
(*) Lecture conducted by Tural, Alexander, or Valentin; all others by Andreas
Every lecture discusses last week's topics and teases the new topics (and chapters) listed above, which you are to study in the following days. On 2025-11-04, for instance, we tease the chapters "Fuzzing with Grammars" and "Efficient Grammar Fuzzing." You are then to study them by the lecture the week after, in which we will discuss your thoughts and experiences. Lectures come with live coding, so we can explore ideas right on the go.
More questions? Come and meet us in the lecture hall!
Enjoy! – Andreas + Tural + Alexander + Valentin
