Skip to main content

coverage-analysis

coverage-analysis

Catalogue généré le 2026-05-11

En une phrase

CoverageL'analyse analysisde measurescouverture mesure quelles lignes de ton code exercisedont duringvraiment fuzzing.été exécutées par les tests/fuzzers — pour repérer les "zones aveugles" que personne ne teste.

Quand l'utiliser

  • UseÉvaluer whensi assessingune campagne de fuzzing visite vraiment le code intéressant (ou bloque ailleurs).
Identifier les parties d'un programme jamais touchées par les tests. Comparer deux versions d'un harness effectivenesspour orvoir identifyinglaquelle explore plus de code. Détecter les "fuzzing blockers.blockers" (un checksum, une validation qui bloque tout). Prioriser les améliorations de tests (sur les zones non couvertes).

Comment l'invoquer

  • Slash command : /coverage-analysis (si exposé dans ton CLI)
  • Phrases déclencheurs (texte) : voir"code lacoverage", description"fuzzing complètecoverage", ci-dessous"harness effectiveness"
  • Auto-invocation : surSur demande explicite

Description complètedétaillée

CoverageLa analysiscouverture measuresde code, c'est l'art de répondre à la question : "quelles lignes/branches de mon code exercisedsont duringvraiment fuzzing.exécutées Usequand whenje assessinglance mes tests ?". On instrumente le code à la compilation (avec -fprofile-instr-generate par exemple), on le lance avec ses tests/fuzzers, et on en sort un rapport qui te montre en vert les lignes visitées et en rouge celles jamais touchées.

En fuzzing, c'est doublement utile. D'abord pour évaluer ton harness effectiveness: orsi identifyingaprès plusieurs heures de fuzzing blockers.tu n'as couvert que 30 % du code de ta cible, c'est probablement que ton harness est mal pensé ou qu'un obstacle (checksum, validation) bloque tout. Ensuite pour suivre les progrès : tu modifies le harness, tu rajoutes un dictionnaire, tu changes de fuzzer, et la couverture te dit immédiatement si ça aide ou pas.

La couverture n'est pas un indicateur parfait de la qualité du fuzzing (un mauvais fuzzer peut atteindre une bonne couverture sans trouver de bugs), mais c'est le meilleur indicateur disponible et facile à mesurer. Les outils classiques : llvm-cov (pour le code compilé avec Clang), gcov (pour GCC), lcov pour générer des rapports HTML, et des plateformes comme Codecov pour suivre la couverture dans le temps. À utiliser systématiquement quand on prend le fuzzing au sérieux.

Pour aller plus loin

Coverage

Pour Analysisles

Coverageexemples analysisconcrets, isoptions essentialde forconfiguration understandinget whichpatterns parts of your code are exercised during fuzzing. It helps identify fuzzing blockers like magic value checks and tracks the effectiveness of harness improvements over time.

Overview

Code coverage during fuzzing serves two critical purposes:

    Assessing harness effectiveness: Understand which parts of your application are actually executed by your fuzzing harnesses Tracking fuzzing progress: Monitor how coverage changes when updating harnesses, fuzzers, or the system under test (SUT)

    Coverage is a proxy for fuzzer capability and performance. While coverage is not ideal for measuring fuzzer performance in absolute terms, it reliably indicates whether your harness works effectively in a given setup.

    Key Concepts

    Concept Description

    (extrait —avancés, voir le SKILL.md complet pour la suite)original.

    Source

    • Plugin : trailofbits/testing-handbook-skills
    • Nom interne : coverage-analysis
    • Fichier : /home/thymon/.claude/plugins/cache/trailofbits/testing-handbook-skills/1.0.1/skills/coverage-analysis/SKILL.md