#!/usr/bin/env python # coding: utf-8 # # The Fuzzing Book # ## Sitemap # While the chapters of this book can be read one after the other, there are many possible paths through the book. In this graph, an arrow _A_ → _B_ means that chapter _A_ is a prerequisite for chapter _B_. You can pick arbitrary paths in this graph to get to the topics that interest you most: # # In[1]: # ignore from IPython.display import SVG # In[2]: # ignore SVG(filename='PICS/Sitemap.svg') # ## [Table of Contents](index.ipynb) # # # ### Part I: Whetting Your Appetite # # * Tours through the Book # * Introduction to Software Testing # # ### Part II: Lexical Fuzzing # # * Fuzzing: Breaking Things with Random Inputs # * Code Coverage # * Mutation-Based Fuzzing # * Greybox Fuzzing # * Search-Based Fuzzing # * Mutation Analysis # # ### Part III: Syntactic Fuzzing # # * Fuzzing with Grammars # * Efficient Grammar Fuzzing # * Grammar Coverage # * Parsing Inputs # * Probabilistic Grammar Fuzzing # * Fuzzing with Generators # * Greybox Fuzzing with Grammars # * Reducing Failure-Inducing Inputs # # ### Part IV: Semantic Fuzzing # # * Fuzzing with Constraints # * Mining Input Grammars # * Tracking Information Flow # * Concolic Fuzzing # * Symbolic Fuzzing # * Mining Function Specifications # # ### Part V: Domain-Specific Fuzzing # # * Testing Configurations # * Fuzzing APIs # * Carving Unit Tests # * Testing Compilers # * Testing Web Applications # * Testing Graphical User Interfaces # # ### Part VI: Managing Fuzzing # # * Fuzzing in the Large # * When To Stop Fuzzing # # ### Appendices # # * Academic Prototyping # * Prototyping with Python # * Error Handling # * Timer # * Timeout # * Class Diagrams # * Railroad Diagrams # * Control Flow Graph #