Fuzz Test - CI/CD用語集の定義
fuzz testとは、プログラムに大量のランダム、不正、あるいは予期しない入力を与えて、例ベースのテストでは見逃されるクラッシュ、ハング、セキュリティバグを見つけるテストです。
カバレッジ誘導型fuzzing
libFuzzerやAFLのような最新のfuzzerはコードカバレッジを監視し、新しいbranchに到達するよう入力を変異させて、プログラムのより多くの部分を着実に探索します。GoogleのOSS-Fuzzはこれをオープンソースプロジェクトに対して継続的に実行しています。
CIにおいて
pull requestごとの短いfuzzing予算は新しいクラッシュのリグレッションを捉え、一方で長時間実行のfuzzerは、網羅的なfuzzingがクリティカルパスには遅すぎるため、帯域外で実行されます。
関連ガイド
Property-Based Test - CI/CD Glossary DefinitionProperty-Based Test: A property-based test checks that a property holds for many automatically generated inpu…
Mutation Score - CI/CD Glossary DefinitionMutation Score: A mutation score is the percentage of injected code mutations (deliberate bugs) that a test s…
Branch Coverage - CI/CD Glossary DefinitionBranch Coverage: Branch coverage measures the percentage of decision branches (each side of every `if`, `swit…