Les tests automatisés sont des programmes qui vérifient automatiquement que votre application fonctionne comme prévu. Ils s'exécutent à chaque modification du code, détectant immédiatement les régressions avant qu'elles n'atteignent la production.
On distingue plusieurs niveaux de tests : les tests unitaires (vérifient une fonction isolée), les tests d'intégration (vérifient l'interaction entre composants), les tests fonctionnels (vérifient un parcours utilisateur complet) et les tests end-to-end (simulent un navigateur réel). Chaque niveau couvre un périmètre différent avec un rapport coût/valeur propre.
Les outils couramment utilisés dans un projet PHP/Symfony sont PHPUnit pour les tests unitaires et d'intégration, et Playwright ou Cypress pour les tests end-to-end. Un projet bien testé permet de livrer plus vite et avec plus de confiance : les développeurs osent refactorer, les régressions sont détectées en minutes et non en semaines.