Aller au contenu principal
DataKeys
Blockchain3 jours

Tests avancés : fuzzing, invariants et vérification formelle

Developpeurs Solidity experimentes, auditeurs souhaitant maitriser les techniques avancees de testing et verification formelle

21h de formationdistanciel
Tests avancés : fuzzing, invariants et vérification formelle

Objectifs pedagogiques

  • Maitriser le fuzzing (property-based testing) avec Foundry et Echidna
  • Definir et tester des invariants systeme
  • Utiliser la verification formelle avec SMT solvers
  • Implementer des strategies de testing avancees
  • Atteindre une couverture de code maximale
  • Integrer fuzzing et verification dans CI/CD

Programme

  • Introduction au fuzzing : property-based testing vs unit tests
  • Foundry fuzz tests : invariant_*, fuzz parameters
  • Strategies de fuzzing : random, weighted, dictionary
  • Handler-based fuzzing : actions sequences, state transitions
  • Bounded vs unbounded fuzzing : runs, depth, seed
  • Shrinking : reduction des inputs en cas de failure
  • Coverage-guided fuzzing : maximiser la couverture
  • Atelier : ecrire des fuzz tests pour un contrat ERC-20

  • Invariants : definition, proprietes mathematiques, system-wide checks
  • Invariant testing avec Foundry : invariant_* functions
  • Echidna : fuzzer specialise smart contracts
  • Configuration Echidna : echidna.yaml, corpus, coverage
  • Property testing : assert-based vs boolean properties
  • Stateful fuzzing : sequences d'actions, oracles
  • Differential testing : comparer implementations
  • Atelier : definir et tester des invariants pour un AMM

  • Introduction a la verification formelle : theoremes, preuves
  • SMT solvers : Z3, CVC4, application aux smart contracts
  • Certora Prover : CVL (Certora Verification Language)
  • Specifications formelles : preconditions, postconditions, invariants
  • Runtime verification : K Framework, KEVM
  • Limitations de la verification formelle : scalability, expressiveness
  • Integration dans workflow : CI/CD, pre-deployment checks
  • Atelier : verifier formellement les proprietes d'un contrat avec Certora

Prerequis

  • Solidity avance
  • Experience significative en tests unitaires
  • Connaissance de Foundry ou Hardhat

Modalites d'evaluation

Projet de fuzzing complet avec invariants, verification formelle d'un protocole, rapport de couverture

Feuilles d'emargement, suivi de connexion pour le distanciel, evaluation des acquis en fin de formation.

Accessibilite handicap

Formation accessible aux personnes en situation de handicap. Referent handicap disponible pour adapter les modalites.