QA & Automatisation
Automatiser pour automatiser ne sert à rien. L'enjeu est une suite de tests rapide, fiable et déterministe, qui donne aux équipes la confiance de livrer plusieurs fois par jour sans régresser.
Nous raisonnons en pyramide de tests : beaucoup d'unitaires rapides, une couche intermédiaire de tests d'intégration et de contrats, et un sommet réduit de tests end-to-end, coûteux et fragiles, donc à doser. L'erreur classique est la pyramide inversée (tout en E2E UI), qui produit des suites lentes et instables. Les tests d'interface sont conçus avec des patterns maintenables (Page Object, Screenplay) pour résister aux évolutions du front, et exécutés en parallèle et cross-browser (BrowserStack, SauceLabs) pour tenir le temps de cycle.
La fiabilité passe par une guerre déclarée aux tests *flaky* : un test intermittent détruit la confiance dans toute la suite et finit ignoré. Nous les détectons, les quarantenons et traitons leur cause (attentes implicites, dépendances d'ordre, données partagées) plutôt que de les relancer en boucle. La gestion des données de test (jeux maîtrisés, isolés, réinitialisables) et la virtualisation de services (WireMock, Mountebank, Hoverfly) rendent les tests indépendants des systèmes tiers et donc reproductibles.
Le contract testing (Pact) sécurise les architectures distribuées : producteurs et consommateurs valident leur contrat indépendamment, sans avoir à monter tout le système. Côté API, des outils comme REST Assured, Karate ou Postman/Newman couvrent fonctionnel et schéma. La qualité de code (SonarQube) et l'accessibilité (WCAG/RGAA, axe) entrent dans les portes. Toute cette suite est intégrée à la CI/CD comme des gates bloquants : on ne promeut pas un build qui casse la qualité, et des smoke tests post-release valident la prod réelle.
/// stack
- Playwright / Cypress / Selenium / Appium
- pytest / JUnit / TestNG
- Pact
- WireMock / Hoverfly
- REST Assured / Karate
- SonarQube
- Applitools / Mabl
- Allure / ReportPortal (reporting). Référentiels : ISTQB
- ISO 25010
- TMMi
/// ce que nous mesurons
- durée de la suite
- taux de flakiness
- couverture par niveau de pyramide
- défauts échappés en prod
- temps de feedback CI
- taux de tests automatisés vs manuels
/// anti-patterns éliminés
- pyramide inversée tout-UI
- tests flaky relancés au lieu d'être corrigés
- données de test partagées et non isolées
- gates qui ne bloquent rien
- et automatisation sans stratégie de couverture
