Le WordPress d'aujourd'hui, décodé pour les développeurs

Tests

« Tester un parc de 500 sites : quels sites échantillonner à chaque exécution »

Exécuter la suite de tests sur les 500 sites d'un parc à chaque déploiement est impossible en CI. Voici la rotation d'échantillonnage que nous avons mise en place à la place.

Par Clément Hadrot • 22 mars 2025 • 4 min de lecture • Aucun commentaire
"Tester un parc de 500 sites : quels sites échantillonner à chaque exécution"

Cinq cents sites, chacun avec sa configuration de plugins, ses widgets, son thème enfant propre. Faire tourner la suite de tests d’intégration réseau sur l’intégralité du parc à chaque merge demanderait plusieurs heures — un budget que la CI de ce client, une fédération d’associations locales, ne peut simplement pas se permettre. Le choix n’était pas entre tester ou ne pas tester, mais entre tester exhaustivement de façon irréaliste, ou tester intelligemment un échantillon représentatif à chaque exécution.

Ce billet documente la stratégie d’échantillonnage mise en place, pas l’architecture de l’extension réseau elle-même (multisite, activation par site, gestion des quotas), qui relève d’un sujet distinct.

Pourquoi un échantillon aléatoire simple ne suffit pas

La première tentative — tirer cinquante sites au hasard à chaque exécution — semblait raisonnable, mais elle a rapidement laissé passer une régression touchant uniquement les sites configurés avec le mode multilingue activé, une configuration présente sur environ 8 % du parc seulement. Un tirage purement aléatoire a de bonnes chances de ne jamais inclure ce sous-ensemble sur plusieurs exécutions consécutives.

La stratégie de rotation par strates

Nous avons remplacé le tirage aléatoire par un échantillonnage stratifié : le parc est d’abord segmenté selon des critères de configuration significatifs (langue, thème actif, présence de tel ou tel plugin critique), puis un nombre fixe de sites est tiré dans chaque strate à chaque exécution, avec une rotation qui garantit qu’aucun site ne revient avant que tous les autres de sa strate n’aient été testés au moins une fois.

L'essentiel à retenir : Tester exhaustivement 500 sites à chaque déploiement dépasse tout budget de CI raisonnable ; Une rotation par lots garantit une couverture complète sur plusieurs cycles ; Certains sites doivent rester hors rotation, testés à chaque fois

Représentation de la rotation

strates/
  multilingue/          (40 sites, 5 testés par cycle -> rotation sur 8 cycles)
  woocommerce-actif/     (120 sites, 10 testés par cycle -> rotation sur 12 cycles)
  theme-enfant-custom/   (75 sites, 8 testés par cycle -> rotation sur ~10 cycles)
  configuration-standard/ (265 sites, 15 testés par cycle -> rotation sur ~18 cycles)

Les sites qui restent en permanence hors rotation

  • Le site pilote, utilisé pour valider chaque nouvelle fonctionnalité avant diffusion réseau, testé à chaque exécution sans exception
  • Les trois sites ayant connu un incident de production dans les six derniers mois, gardés en surveillance renforcée temporaire
  • Le site de plus fort trafic du réseau, dont une régression aurait l’impact le plus visible

Suivre la couverture réelle dans le temps

Un tableau de bord simple, généré à chaque exécution, consigne quels sites ont été testés et depuis combien de cycles chaque site n’a pas été couvert. Un site qui dépasse un seuil de vingt cycles sans passage déclenche une alerte manuelle, signe que la rotation est mal calibrée ou que le parc a grandi plus vite que prévu.

Ce que cette stratégie ne remplace pas

L’échantillonnage réduit le risque, il ne l’élimine pas. Une régression touchant un seul site très spécifique, hors de toute strate identifiée, peut toujours passer entre les mailles. C’est un compromis assumé, documenté auprès du client, entre budget de CI et couverture exhaustive.

Un échantillon bien pensé qui tourne à chaque exécution vaut mieux qu’une suite exhaustive qu’on finit par désactiver faute de temps.

En résumé

Tester un parc de 500 sites ne se résout pas par plus de puissance de calcul, mais par une meilleure question : quels sites, dans quel ordre, avec quelle garantie de retour. La stratification par configuration significative, plutôt qu’un tirage aléatoire naïf, a permis de détecter des régressions ciblées que l’échantillonnage précédent aurait manquées.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi