ファジング
バグの発見のために、ファザーは予期された(通常の)プログラムの動作と予期しない(バグのある)プログラムの動作を区別できなければならない。ただし、マシンは常にバグと機能を区別できるとは限らない。自動ソフトウェアテストでは、これはテストオラクル問題とも呼ばる。 通常、ファザーは、仕様がない場合にクラッシュする入力とクラッシュしない入力を区別し、単純で客観的な手段を使用する。クラッシュは簡単に特定でき、潜在的な脆弱性(サービス拒否や任意のコード実行など)を示している可能性がある。ただし、クラッシュがないからといって、脆弱性がないことを示すものではない。たとえばCで記述されたプログラムは、入力によってバッファオーバーフローが発生した場合にクラッシュする場合とクラッシュしない場合がある。むしろ、プログラムの動作は未定義であることが多い。クラッシュ以外の障害に対してファザーをより敏感にするために、サニタイザーを使用して、障害が検出されたときにプログラムをクラッシュさせるアサーションを挿入できる。さまざまな種類のバグに対して、さまざまな解消方法がある。
自動入力最小化(テストケース削減)は、実際に障害を引き起こしている障害を引き起こす入力の部分を分離するための自動デバッグ手法である。失敗を誘発する入力が大きく、ほとんどが不正な形式である場合、開発者がバグの原因を正確に理解するのは難しい。障害を引き起こす入力を考えると、自動化された最小化ツールは、元のバグを再現しながら、可能な限り多くの入力バイトを削除することができる。たとえば、Delta Debuggingは、拡張されたバイナリ検索アルゴリズムを使用してそのような最小入力を見つける自動入力最小化手法である。
ファイル形式のファジングなど、特定分野においては有用とする専門家の意見もある。
ファジングは、メモリデバッガと組み合わせた場合バグやメモリリークを検出するためにも使用することができる。大規模なアプリケーションでは、メモリ使用量の安全性に影響を与えるバグがプログラムの実行中にエラーを生成する可能性があるため、ファジングが有効な場面の一つである。