fuzzingbook

Project page for "The Fuzzing Book"

https://github.com/uds-se/fuzzingbook

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    6 of 39 committers (15.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.0%) to scientific vocabulary

Keywords

fuzzing interactive-notebooks jupyter-notebooks python test-automation testing

Keywords from Contributors

cryptocurrencies test-generation interactive agents network-simulation hacking optim projection generic sequences
Last synced: 6 months ago · JSON representation ·

Repository

Project page for "The Fuzzing Book"

Basic Info
  • Host: GitHub
  • Owner: uds-se
  • License: other
  • Language: Jupyter Notebook
  • Default Branch: master
  • Homepage: https://www.fuzzingbook.org/
  • Size: 1.2 GB
Statistics
  • Stars: 1,168
  • Watchers: 41
  • Forks: 240
  • Open Issues: 37
  • Releases: 0
Topics
fuzzing interactive-notebooks jupyter-notebooks python test-automation testing
Created over 7 years ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

Python Tests   Notebook Tests   Static Type Checking   Imports   Website www.fuzzingbook.org

Launch Binder   Made with Python   Made with Jupyter   License: MIT (Code), CC BY-NC-SA (Book)

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 or the introduction to fuzzing. 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.

  • 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. To get notified on updates, follow us on Mastodon.

<!--

Owner

  • Name: Andreas Zeller's group at CISPA and Saarland University
  • Login: uds-se
  • Kind: organization
  • Location: Saarbrücken, Germany

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Zeller"
  given-names: "Andreas"
  orcid: "https://orcid.org/0000-0003-4719-8803"
- family-names: "Gopinath"
  given-names: "Rahul"
  orcid: "https://orcid.org/0000-0001-9953-0930"
- family-names: "Böhme"
  given-names: "Marcel"
  orcid: "https://orcid.org/0000-0002-4470-1824"
- family-names: "Fraser"
  given-names: "Gordon"
- family-names: "Holler"
  given-names: "Christian"
title: "The Fuzzing Book"
version: 1.0
date-released: 2021
url: "https://www.fuzzingbook.org"
preferred-citation:
  type: book
  title: "The Fuzzing Book"
  authors:
  - family-names: "Zeller"
    given-names: "Andreas"
    orcid: "https://orcid.org/0000-0003-4719-8803"
  - family-names: "Gopinath"
    given-names: "Rahul"
    orcid: "https://orcid.org/0000-0001-9953-0930"
  - family-names: "Böhme"
    given-names: "Marcel"
    orcid: "https://orcid.org/0000-0002-4470-1824"
  - family-names: "Fraser"
    given-names: "Gordon"
  - family-names: "Holler"
    given-names: "Christian"
  url: "https://www.fuzzingbook.org"
  year: 2021

GitHub Events

Total
  • Issues event: 4
  • Watch event: 103
  • Issue comment event: 9
  • Push event: 19
  • Pull request event: 4
  • Fork event: 28
  • Create event: 1
Last Year
  • Issues event: 4
  • Watch event: 103
  • Issue comment event: 9
  • Push event: 19
  • Pull request event: 4
  • Fork event: 28
  • Create event: 1

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 4,104
  • Total Committers: 39
  • Avg Commits per committer: 105.231
  • Development Distribution Score (DDS): 0.157
Past Year
  • Commits: 112
  • Committers: 3
  • Avg Commits per committer: 37.333
  • Development Distribution Score (DDS): 0.045
Top Committers
Name Email Commits
Andreas Zeller z****r@c****e 3,458
Rahul Gopinath r****l@g****g 373
Rahul Gopinath r****l@g****g 94
Christian Holler (:decoder) c****r@m****m 21
Dominic Steinhöfel d****l@c****e 21
natanieljr n****s@c****d 17
Fuzzingbook Docker f****k@e****m 16
Marcel Boehme m****e@a****g 13
dependabot[bot] 4****] 12
Red-Emu r****u@v****e 11
Gordon Fraser g****r@u****e 11
Sascha Just s****t@o****m 6
soremekun s****n@s****e 5
Kai Greshake d****t@k****e 5
Abhilash Gupta a****2@g****m 4
kuznetsov k****v@s****e 3
Langston Barrett l****t@g****m 3
Sergey Bronnikov e****s@g****m 3
Your Name y****u@e****m 3
SecureAB s****b@o****m 2
Jordan Samhi 3****i 2
Johannes Lampel j****l@c****e 2
Dongsun Kim d****w@g****m 2
Bradley Kemp b****p 2
Yuichi Sugiyama s****i@g****m 1
mhamami-abuomar 4****r 1
Reuven Y r****i@p****l 1
Red-Emu 5****u 1
Petr Vaněk pv@e****z 1
Mikka Rainer m****1@s****e 1
and 9 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 70
  • Total pull requests: 40
  • Average time to close issues: 5 months
  • Average time to close pull requests: 2 months
  • Total issue authors: 25
  • Total pull request authors: 22
  • Average comments per issue: 0.8
  • Average comments per pull request: 0.98
  • Merged pull requests: 27
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 2
  • Pull requests: 6
  • Average time to close issues: about 1 hour
  • Average time to close pull requests: less than a minute
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 1.5
  • Average comments per pull request: 0.17
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • andreas-zeller (34)
  • 251 (4)
  • SecureAB (4)
  • michaelmera (3)
  • be-mler (2)
  • rindPHI (2)
  • Tejas2805 (2)
  • vrthra (2)
  • NerusSkyhigh (1)
  • Mizari (1)
  • PKHG (1)
  • ctsrc (1)
  • JohannesLampel (1)
  • finco123 (1)
  • Xiaoven (1)
Pull Request Authors
  • Red-Emu (4)
  • dependabot[bot] (4)
  • darkrsw (3)
  • choller (3)
  • ligurio (3)
  • SecureAB (3)
  • andreas-zeller (2)
  • bradleyjkemp (2)
  • hycinth22 (2)
  • abhilashgupta (2)
  • gofraser (2)
  • thpani (2)
  • alanvivona (1)
  • yuzi-zly (1)
  • gavinhoward (1)
Top Labels
Issue Labels
production (4) bug (4) help wanted (3) enhancement (2) waiting (1) question (1)
Pull Request Labels
dependencies (4)

Dependencies

docs/beta/slides/reveal.js/package-lock.json npm
  • 742 dependencies
docs/beta/slides/reveal.js/package.json npm
  • @babel/core ^7.14.3 development
  • @babel/eslint-parser ^7.14.3 development
  • @babel/preset-env ^7.14.2 development
  • @rollup/plugin-babel ^5.3.0 development
  • @rollup/plugin-commonjs ^19.0.0 development
  • @rollup/plugin-node-resolve ^13.0.0 development
  • babel-plugin-transform-html-import-to-string 0.0.1 development
  • colors ^1.4.0 development
  • core-js ^3.12.1 development
  • fitty ^2.3.0 development
  • glob ^7.1.7 development
  • gulp ^4.0.2 development
  • gulp-autoprefixer ^8.0.0 development
  • gulp-clean-css ^4.2.0 development
  • gulp-connect ^5.7.0 development
  • gulp-eslint ^6.0.0 development
  • gulp-header ^2.0.9 development
  • gulp-tap ^2.0.0 development
  • gulp-zip ^4.2.0 development
  • highlight.js ^10.0.3 development
  • marked ^4.0.12 development
  • node-qunit-puppeteer ^2.1.0 development
  • qunit ^2.17.2 development
  • rollup ^2.48.0 development
  • rollup-plugin-terser ^7.0.2 development
  • sass ^1.39.2 development
  • yargs ^15.1.0 development
docs/slides/reveal.js/package-lock.json npm
  • 742 dependencies
docs/slides/reveal.js/package.json npm
  • @babel/core ^7.14.3 development
  • @babel/eslint-parser ^7.14.3 development
  • @babel/preset-env ^7.14.2 development
  • @rollup/plugin-babel ^5.3.0 development
  • @rollup/plugin-commonjs ^19.0.0 development
  • @rollup/plugin-node-resolve ^13.0.0 development
  • babel-plugin-transform-html-import-to-string 0.0.1 development
  • colors ^1.4.0 development
  • core-js ^3.12.1 development
  • fitty ^2.3.0 development
  • glob ^7.1.7 development
  • gulp ^4.0.2 development
  • gulp-autoprefixer ^8.0.0 development
  • gulp-clean-css ^4.2.0 development
  • gulp-connect ^5.7.0 development
  • gulp-eslint ^6.0.0 development
  • gulp-header ^2.0.9 development
  • gulp-tap ^2.0.0 development
  • gulp-zip ^4.2.0 development
  • highlight.js ^10.0.3 development
  • marked ^4.0.12 development
  • node-qunit-puppeteer ^2.1.0 development
  • qunit ^2.17.2 development
  • rollup ^2.48.0 development
  • rollup-plugin-terser ^7.0.2 development
  • sass ^1.39.2 development
  • yargs ^15.1.0 development
binder/requirements.txt pypi
  • jupyter_contrib_nbextensions *
  • python-magic *
  • selenium *
  • svglib *
  • valgrind *
deploy/fuzzingbook-base/requirements.txt pypi
  • autopep8 *
  • mypy *
  • nbdime *
  • nbstripout *
  • notedown *
docs/beta/notebooks/requirements.txt pypi
  • Markdown >=3.3.4
  • Pygments >=2.7.1
  • autopep8 >=1.5.4
  • beautifulsoup4 >=4.9.3
  • bibtexparser >=1.0.1
  • cargo >=0.3
  • diff_match_patch >=20200713
  • easyplotly >=0.1.3
  • enforce >=0.3.4
  • graphviz >=0.14.2
  • ipypublish >=0.6.8
  • ipython >=7.16.1
  • jupyter >=1.0.0
  • jupyter-client >=6.1.7
  • jupyter_contrib_nbextensions >=0.5.1
  • jupyterlab-lsp *
  • jupyterlab_markup *
  • lxml >=4.5.1
  • matplotlib >=3.3.2
  • multiprocess >=0.70.12.2
  • mypy >=0.910
  • nbconvert >=6.0.7
  • nbformat >=5.0.8
  • nbstripout >=0.5.0
  • networkx >=2.5
  • notedown >=1.5.1
  • numpy >=1.16.5
  • pandas >=1.3.3
  • pyan *
  • pydot >=1.4.2
  • pydriller >=2.0
  • pyparsing ==2.4.7
  • python-lsp-server *
  • python-magic >=0.4.18
  • requests >=2.26.0
  • scikit_learn >=0.23.2
  • scipy >=1.7.1
  • selenium >=3.141.0
  • showast >=0.2.4
  • spellchecker >=0.4
  • svglib >=1.1.0
  • testpath >=0.6.0
  • types-Markdown >=3
  • types-requests >=2.25.11
  • yapf >=0.31.0
  • z3-solver >=4.8.13.0
docs/notebooks/requirements.txt pypi
  • Markdown >=3.3.4
  • Pygments >=2.7.1
  • autopep8 >=1.5.4
  • beautifulsoup4 >=4.9.3
  • bibtexparser >=1.0.1
  • cargo >=0.3
  • diff_match_patch >=20200713
  • easyplotly >=0.1.3
  • enforce >=0.3.4
  • graphviz >=0.14.2
  • ipypublish >=0.6.8
  • ipython >=7.16.1
  • jupyter >=1.0.0
  • jupyter-client >=6.1.7
  • jupyter_contrib_nbextensions >=0.5.1
  • jupyterlab-lsp *
  • jupyterlab_markup *
  • lxml >=4.5.1
  • matplotlib >=3.3.2
  • multiprocess >=0.70.12.2
  • mypy >=0.910
  • nbconvert >=6.0.7
  • nbformat >=5.0.8
  • nbstripout >=0.5.0
  • networkx >=2.5
  • notedown >=1.5.1
  • numpy >=1.16.5
  • pandas >=1.3.3
  • pyan *
  • pydot >=1.4.2
  • pydriller >=2.0
  • pyparsing ==2.4.7
  • python-lsp-server *
  • python-magic >=0.4.18
  • requests >=2.26.0
  • scikit_learn >=0.23.2
  • scipy >=1.7.1
  • selenium >=3.141.0
  • showast >=0.2.4
  • spellchecker >=0.4
  • svglib >=1.1.0
  • testpath >=0.6.0
  • types-Markdown >=3
  • types-requests >=2.25.11
  • yapf >=0.31.0
  • z3-solver >=4.8.13.0
requirements.txt pypi
  • Markdown >=3.3.4
  • Pygments >=2.7.1
  • autopep8 >=1.5.4
  • beautifulsoup4 >=4.9.3
  • bibtexparser >=1.0.1
  • cargo >=0.3
  • diff_match_patch >=20200713
  • easyplotly >=0.1.3
  • enforce >=0.3.4
  • graphviz >=0.14.2
  • ipypublish >=0.6.8
  • ipython >=7.16.1
  • jupyter >=1.0.0
  • jupyter-client >=6.1.7
  • jupyter_contrib_nbextensions >=0.5.1
  • jupyterlab-lsp *
  • jupyterlab_markup *
  • lxml >=4.5.1
  • matplotlib >=3.3.2
  • multiprocess >=0.70.12.2
  • mypy >=0.910
  • nbconvert >=6.0.7
  • nbformat >=5.0.8
  • nbstripout >=0.5.0
  • networkx >=2.5
  • notedown >=1.5.1
  • numpy >=1.16.5
  • pandas >=1.3.3
  • pyan *
  • pydot >=1.4.2
  • pydriller >=2.0
  • pyparsing ==2.4.7
  • python-lsp-server *
  • python-magic >=0.4.18
  • requests >=2.26.0
  • scikit_learn >=0.23.2
  • scipy >=1.7.1
  • selenium >=3.141.0
  • showast >=0.2.4
  • spellchecker >=0.4
  • svglib >=1.1.0
  • testpath >=0.6.0
  • types-Markdown >=3
  • types-requests >=2.25.11
  • yapf >=0.31.0
  • z3-solver >=4.8.13.0
.github/workflows/check-code.yml actions
  • actions/checkout v4 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/check-imports.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/check-notebooks.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/check-types.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
binder/environment.yml conda
  • autopep8
  • django
  • geckodriver
  • graphviz
  • markdown
  • matplotlib
  • mypy
  • notedown
  • numpy
  • pandas
  • pip
  • python 3.10.*
  • scipy
  • selenium
deploy/fuzzingbook-base/Dockerfile docker
  • ubuntu latest build
deploy/fuzzingbook-dockerenv/Dockerfile docker
  • jupyter/scipy-notebook latest build
deploy/fuzzingbook-dockerenv-student/Dockerfile docker
  • fuzzingbook/user latest build
docs/beta/notebooks/data/regex/PyPI/setup.py pypi
docs/beta/notebooks/data/regex/setup.py pypi