https://github.com/uds-se/fuzzingbook
Project page for "The Fuzzing Book"
https://github.com/uds-se/fuzzingbook
fuzzing interactive-notebooks jupyter-notebooks python test-automation testing
Last synced: 5 months ago
JSON representation
Project page for "The Fuzzing Book"
- Host: GitHub
- URL: https://github.com/uds-se/fuzzingbook
- Owner: uds-se
- License: other
- Created: 2018-08-31T16:16:18.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-04-12T15:04:57.000Z (6 months ago)
- Last Synced: 2025-04-12T15:24:24.167Z (6 months ago)
- Topics: fuzzing, interactive-notebooks, jupyter-notebooks, python, test-automation, testing
- Language: Jupyter Notebook
- Homepage: https://www.fuzzingbook.org/
- Size: 1.19 GB
- Stars: 1,157
- Watchers: 41
- Forks: 237
- Open Issues: 36
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Citation: CITATION.cff
Awesome Lists containing this project
README
[](https://github.com/uds-se/fuzzingbook/actions/workflows/check-code.yml)
[](https://github.com/uds-se/fuzzingbook/actions/workflows/check-notebooks.yml)
[](https://github.com/uds-se/fuzzingbook/actions/workflows/check-types.yml)
[](https://github.com/uds-se/fuzzingbook/actions/workflows/check-imports.yml)
[](https://www.fuzzingbook.org/)[](https://mybinder.org/v2/gh/uds-se/fuzzingbook/master?filepath=docs/notebooks/00_Table_of_Contents.ipynb)
[](https://www.python.org/)
[](https://www.jupyter.org/)
[,_CC_BY--NC--SA_4.0_(Book)-blue.svg)](https://github.com/uds-se/fuzzingbook/blob/master/LICENSE.md)# About this Book
__Welcome to "The Fuzzing Book"!__
Software has bugs, and catching bugs can involve lots of effort. This book addresses this problem by _automating_ software testing, specifically by _generating tests automatically_. Recent years have seen the development of novel techniques that lead to dramatic improvements in test generation and software testing. They now are mature enough to be assembled in a book – even with executable code.```python
from bookutils import YouTubeVideo
YouTubeVideo("w4u5gCgPlmg")
```## A Textbook for Paper, Screen, and Keyboard
You can use this book in four ways:
* You can __read chapters in your browser__. Check out the list of chapters in the menu above, or start right away with the [introduction to testing](https://www.fuzzingbook.org/html/Intro_Testing.html) or the [introduction to fuzzing](https://www.fuzzingbook.org/html/Fuzzer.html). All code is available for download.
* You can __interact with chapters as Jupyter Notebooks__ (beta). This allows you to edit and extend the code, experimenting _live in your browser._ Simply select "Resources → Edit as Notebook" at the top of each chapter. Try interacting with the introduction to fuzzing.
* You can __use the code in your own projects__. You can download the code as Python programs; simply select "Resources → Download Code" for one chapter or "Resources → All Code" for all chapters. These code files can be executed, yielding (hopefully) the same results as the notebooks. Even easier: [Install the fuzzingbook Python package](https://www.fuzzingbook.org/html/Importing.html).
* You can __present chapters as slides__. This allows for presenting the material in lectures. Just select "Resources → View slides" at the top of each chapter. Try viewing the slides for the introduction to fuzzing.
## Who this Book is for
This work is designed as a _textbook_ for a course in software testing or security testing; as _supplementary material_ in a software testing, security testing, or software engineering course; and as a _resource for software developers_. We cover random fuzzing, mutation-based fuzzing, grammar-based test generation, symbolic testing, and much more, illustrating all techniques with code examples that you can try out yourself.
## News
This book is _work in progress._ All chapters planned are out now, but we keep on refining text and code with [minor and major releases.](https://www.fuzzingbook.org/html/ReleaseNotes.html) To get notified on updates, follow us on Mastodon.