Awesome Open Source
Awesome Open Source
Sponsorship

.. image:: docs/img/fuzzinator-black-on-trans-289x49.png

Fuzzinator: Random Testing Framework

.. image:: https://img.shields.io/pypi/v/fuzzinator?logo=python&logoColor=white :target: https://pypi.org/project/fuzzinator/ .. image:: https://img.shields.io/pypi/l/fuzzinator?logo=open-source-initiative&logoColor=white :target: https://pypi.org/project/fuzzinator/ .. image:: https://img.shields.io/travis/renatahodovan/fuzzinator/master?logo=travis&logoColor=white :target: https://travis-ci.org/renatahodovan/fuzzinator .. image:: https://img.shields.io/readthedocs/fuzzinator?logo=read-the-docs&logoColor=white :target: http://fuzzinator.readthedocs.io/en/latest/

.. start included documentation

Fuzzinator is a fuzzing framework that helps you to automate tasks usually needed during a fuzz session:

  • run your favorite test generator and feed the test cases to the system-under-test,
  • catch and save the unique issues,
  • reduce the failing test cases,
  • ease the reporting of issues in bug trackers (e.g., Bugzilla or GitHub),
  • regularly update SUTs if needed, and
  • schedule multiple SUTs and generators without overloading your workstation.

All the above features are fully customizable either by writing a simple config file or by implementing Python snippets to cover special needs. Check out some slides_ about Fuzzinator for a general overview, or see the Tutorial <docs/tutorial.rst>_ for a detailed walk-through on the config files.

To help tracking the progress of the fuzzing, Fuzzinator provides two interfaces:

  • an interactive TUI (supported on Linux and Mac OS X) that gives a continuously updated overview about the currently running tasks, statistics about the efficacy of the test generators, and the found issues (and also supports reporting them); and
  • a dump-mode (supported on every platform) that displays the news on line-based consoles.

Although Fuzzinator itself doesn't come with test generators (except for an example random character sequence generator), you can find a list of useful generators in the wiki_.

.. _Tutorial: docs/tutorial.rst .. _slides: http://www.slideshare.net/hodovanrenata/fuzzinator-in-bug-we-trust .. _wiki: https://github.com/renatahodovan/fuzzinator/wiki

Requirements

  • Python_ >= 3.5
  • pip_ and setuptools Python packages (the latter is automatically installed by pip)
  • MongoDB_ >= 3.6 (either local installation or access to remote database)

.. _Python: https://www.python.org .. _pip: https://pip.pypa.io .. _MongoDB: https://www.mongodb.com

Install

The quick way::

pip install fuzzinator

Alternatively, by cloning the project and running setuptools::

python setup.py install

Usage

A common form of Fuzzinator's usage::

fuzzinator --tui --utf8 <path/to/the/config.ini>

Compatibility

Fuzzinator was tested on:

  • Linux (Ubuntu 14.04 / 16.04 / 18.04)
  • Mac OS X (El Capitan 10.11 / Sierra 10.12 / High Sierra 10.13 / Mojave 10.14 / Catalina 10.15)
  • Windows (Server 2012 R2 / Server version 1809 / Windows 10)

Acknowledgement and Citations

The authors are immensely grateful to Dr. Heinz Doofenshmirtz for the continuous inspiration.

Background on Fuzzinator is published in (R. Hodovan, A. Kiss: "Fuzzinator: An Open-Source Modular Random Testing Framework", ICST 2018).

.. end included documentation

Copyright and Licensing

Licensed under the BSD 3-Clause License_.

.. _License: LICENSE.rst


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
python (47,715
hacktoberfest (4,482
security (1,669
fuzzing (125
test-automation (104

Find Open Source By Browsing 7,000 Topics Across 59 Categories