#189 Fuzzing: Wenn der Zufall dein bester Tester ist mit Prof. Andreas Zeller

#189 Fuzzing: Wenn der Zufall dein bester Tester ist mit Prof. Andreas Zeller

1 Stunde 19 Minuten

Beschreibung

vor 8 Monaten

Fuzzing: Software-Stabilität durch Zufalls-generierte
Eingabedaten


Testen, besonders automatisiertes Testen der eigenen Software,
gilt als Best Practice in der Softwareentwicklung. Egal, ob wir
dabei von Unit-Testing, Integration Testing, Funktions- oder
Akzeptanztesting sprechen. Die Idee dabei ist, dass wir die
Fehler in der Software gering halten. Auch wenn deine Tests zu
einer 100%igen Code Coverage führen, heißt es nicht, dass dein
Programm keine Bugs hat. Denn ein Problem gibt es bei all diesen
Test-Arten: Die Input-Parameter sind i.d.R. nach einer gewissen
Struktur erstellt worden. Und dies heißt noch lange nicht, dass
diese Input-Parameter alle möglichen Fälle abdecken.


Und genau da kommt das Thema Fuzzing bzw. Fuzz-Testing ins Spiel.
Das Testen deiner Software mit zufällig generierten
Input-Parametern. Das klingt erstmal wild, kann aber ganz neue
Probleme in deiner Software aufdecken. Und das ist das Thema in
dieser Episode.


Zu Gast ist Prof. Dr. Andreas Zeller, Forscher im Bereich
Softwaretesting und Autor des Fuzzing Books. Mit ihm klären wir,
was Fuzzing eigentlich ist, woher es kommt und wie es sich
gegenüber anderen Teststrategien, wie Unit-Testing, verhält. Er
gibt uns einen Einblick in die Unterschiede von Search-Based
Fuzzing, Grammar-Fuzzing, Symbolic Fuzzing sowie
spezifikationsbasierten Fuzzern, wie komplexe Systeme mittels
metamorphes Testen verbessert werden können, was das
Orakel-Problem ist, wie z.B. Datenbanken gefuzzed werden können,
aber auch wie das Ganze in der Praxis angewendet werden kann und
wie du einfach mit Fuzzing starten kannst.


Bonus: Was ein Orakel mit Testing zu tun hat.





Unsere aktuellen Werbepartner findest du auf
https://engineeringkiosk.dev/partners





Das schnelle Feedback zur Episode:


(top)  (geht
so)



Anregungen, Gedanken, Themen und Wünsche

Dein Feedback zählt! Erreiche uns über einen der folgenden Kanäle






EngKiosk Community:
https://engineeringkiosk.dev/join-discord 

LinkedIn: https://www.linkedin.com/company/engineering-kiosk/

Email: stehtisch@engineeringkiosk.dev

Mastodon: https://podcasts.social/@engkiosk

Bluesky:
https://bsky.app/profile/engineeringkiosk.bsky.social

Instagram: https://www.instagram.com/engineeringkiosk/




Unterstütze den Engineering Kiosk

Wenn du uns etwas Gutes tun möchtest … Kaffee schmeckt uns
immer 


Buy us a coffee: https://engineeringkiosk.dev/kaffee




Links

Prof. Dr. Andreas Zeller: https://andreas-zeller.info/

Prof. Dr. Andreas Zeller auf LinkedIn:
https://www.linkedin.com/in/andreaszeller/

CISPA – Helmholtz-Zentrum für Informationssicherheit:
https://cispa.de/de

OSS-Fuzz: https://github.com/google/oss-fuzz

ClusterFuzz: https://github.com/google/clusterfuzz

The Fuzzing Book: https://www.fuzzingbook.org/

ACM SIGSOFT Outstanding Research Award:
https://www2.sigsoft.org/awards/outstandingresearch/

KLEE Symbolic Execution Engine: https://klee-se.org/

AFL++: https://aflplus.plus/

Blog-Artikel über EvoSuite:
https://apanichella.github.io/tag/evosuite/

Manuel Rigger “Bugs found in Database Management Systems”:
https://www.manuelrigger.at/dbms-bugs/

FANDANGO: Evolving Language-Based Testing:
https://github.com/fandango-fuzzer/fandango

inputLab: https://inputlab.net/

Paper “Will AI replace Software Engineers? Do not hold your
breath”: https://arxiv.org/abs/2502.20429




Sprungmarken

(00:00:00) Intro


(00:01:37) Fuzzing mit Prof. Dr. Andreas Zeller


(00:07:55) Info/Werbung


(00:08:55) Was ist Fuzzing?


(00:12:37) Fuzzing im Kontext von anderen Test-Strategien


(00:14:45) Woher stammt Fuzzing?


(00:18:41) Eingabe-Parameter beim Testing


(00:22:43) Unterschiedliche Arten von Fuzzing


(00:31:37) Feedback vom Fuzzer erneut in den Testprozess
integrieren


(00:40:23) Search-Based-, Grammar-, Symbolic- und
spezifikationsbasiertes Fuzzen


(00:45:04) Fuzzing: Wissenschaft vs. Praxis


(00:50:32) Fuzzing von hochkomplexen Systemen wie z.B.
Datenbanken


(01:03:04) LLMs vs. Fuzzing


(01:09:16) Mit dem Fuzzing starten


(01:15:58) Testabdeckung bei elektronischen Rechnungen



Hosts

Wolfgang Gassler (https://gassler.dev) 

Andy Grunwald (https://andygrunwald.com/)




Community

Diskutiere mit uns und vielen anderen Tech-Spezialist⋅innen in
unserer Engineering Kiosk Community unter
https://engineeringkiosk.dev/join-discord

Kommentare (0)

Lade Inhalte...

Abonnenten

15
15