Tutorials

CISPA Tutorial

Fuzz Testing for Security (Part I)

Thorsten Holz

CISPA, Germany

Abstract: In this talk, I will give an overview of our recent results in randomized testing ("fuzzing") and present some of the techniques we have developed in recent years. These include fuzzing complex software systems such as operating system kernels, hypervisors, and interpreters using various testing methods. I will also discuss how fuzzing relates to games such as Super Mario Bros. or Sokoban.

SoKotHban: A King-of-the-Hill-style Search Optimisation Competition (Part II)

Addison Crump

CISPA, Germany

Abstract: Sokoban, a puzzle game developed in the early 1980s, has proven to be a challenging search optimisation problem often aligned with autonomous agent research. The eponymous "warehouse keeper" attempts to move crates into desired positions, often encountering difficult terrain and situations as crates the players themselves have moved block the path. These puzzles prove to be difficult for humans and computers alike, and general-purpose solving for Sokoban puzzles is PSPACE-complete as shown by previous research. To improve the academic understanding of the problem, we propose a King-of-the-Hill (KotH) competition in which competitors develop both automated puzzle solvers and generators. With this, we hope to identify what puzzle features weaken which optimisation strategies, what strategies can be used to defeat new challenges, and observe specialised adversarial techniques to target and disrupt tactics employed by various competitors.

Tutorial 2

Getting Started with SynTest-Framework: A Hands-on Tutorial for Automatic Test Case Generation and Fuzzing

Mitchell Olsthoorn and Annibale Panichella

TU Delft, The Netherlands

Abstract: SynTest-Framework is a user-friendly, modular, and highly extensible ecosystem for automatic test case generation and fuzzing. Its architecture allows testing tools for different programming languages to be built on top of it. Additionally, the framework contains a collection of language-independent search algorithms that are optimized for automatic test case generation and fuzzing. Our main goal with the framework is to make it easier for researchers to implement new approaches for automatic test case generation. Additionally, we hope that the framework will make it easier for practitioners to adopt automatic test case generation in their projects.

In this tutorial session, we will show how to use the framework to implement a new automatic test case generation approach. Furthermore, we will also show how to use the framework to implement a new testing tool. The tutorial will be hands-on and will consist of a series of practical scenarios. These scenarios will be based on the TypeScript programming language. Join us in this fun and interactive tutorial session and equip yourself with the skills to demonstrate your approach to software testing and validation.