Tests par l'équipe projet
Les tests sont cruciaux pour livrer un produit de qualité.
Histoire vraie : Le bug à 440 millions de dollars
En 2012, Knight Capital, une société de trading, déploie une mise à jour logicielle sans tests suffisants. En 45 minutes, un bug dans l'algorithme génère des ordres d'achat involontaires pour un montant de 440 millions de dollars de pertes. L'entreprise fait faillite quelques jours plus tard. Un simple test de non-régression aurait pu éviter cette catastrophe.
Histoire vraie : Cyberpunk 2077, le jeu retiré du PlayStation Store
Décembre 2020 : CD Projekt sort Cyberpunk 2077 après 8 ans de développement et trois reports. Sur PS4 et Xbox One, le jeu plante, les textures ne chargent pas, les personnages traversent les murs. En une semaine, Sony retire le jeu de son store et rembourse les joueurs, une première pour un titre de cette taille. L'action de l'entreprise perd plus de 40 % de sa valeur. Les enquêtes révéleront que la direction connaissait l'état du jeu sur anciennes consoles mais a maintenu la date pour Noël, et que les testeurs n'avaient eu que quelques jours sur la version console. La leçon pour un chef de projet web : tester sur les « vieilles » configurations (Android d'entrée de gamme, Safari sur un iPhone de 2019, connexion 3G) n'est pas un luxe, c'est là que vos utilisateurs réels se trouvent. Et une date tenue avec un produit cassé coûte plus cher qu'un report.
Types de tests
1. Tests unitaires
- Tester chaque fonction isolément
- Automatisés
- Rapides à exécuter
2. Tests d'intégration
- Tester les interactions entre composants
- Vérifier que les modules fonctionnent ensemble
3. Tests fonctionnels
- Tester les fonctionnalités end-to-end
- Simuler le comportement utilisateur
4. Tests de performance
- Temps de chargement
- Charge serveur
- Optimisation
5. Tests de sécurité
- Injection SQL
- XSS (Cross-Site Scripting)
- CSRF
- Authentification
6. Tests d'accessibilité
- Conformité WCAG
- Navigation au clavier
- Lecteurs d'écran
7. Tests de compatibilité
- Navigateurs (Chrome, Firefox, Safari, Edge)
- Devices (desktop, mobile, tablette)
- Systèmes d'exploitation
Stratégie de tests - Pyramide
Milieu : Intégration (Tests modérés)
Base : Unitaires (Beaucoup de tests - rapides)
Mini-défi 30 secondes : casse ce formulaire d'inscription
Un formulaire demande un e-mail, un mot de passe et une date de naissance. Trouve cinq façons de le faire planter avant de lire la suite.
Quelques réponses de testeurs aguerris : un e-mail sans « @ » ; un mot de passe d'un seul caractère ; une date de naissance en 2031 ; un double-clic rapide sur « Valider » qui crée deux comptes ; un prénom de 500 caractères copié-collé ; l'apostrophe dans « O'Connor » qui casse une requête SQL ; le bouton « Retour » du navigateur après validation. Chaque cas devient une ligne du plan de tests. Un bon testeur ne vérifie pas que ça marche quand on fait tout bien : il vérifie que ça ne casse pas quand on fait n'importe quoi, parce que les utilisateurs feront n'importe quoi.
Checklist de tests
Fonctionnel
- Toutes les fonctionnalités marchent
- Formulaires validés
- Navigation fluide
- Liens fonctionnels
Performance
- Temps de chargement < 3s
- Images optimisées
- Cache configuré
Sécurité
- HTTPS activé
- Formulaires protégés
- Mots de passe hashés
SEO
- Balises meta
- Sitemap.xml
- URLs propres
Responsive
- Mobile-friendly
- Tablette OK
- Desktop OK
