Stratégie QA & Tests Mobile
Cette section détaille la stratégie de tests, les workflows et les technologies utilisés dans le dépôt mobile-app.
🛠 Stack Technologique
- Framework : React Native avec Expo
- Langage : TypeScript
- Navigation : Expo Router / React Navigation
- Gestion d'État : Zustand, TanStack Query
- Framework de Test : Jest (avec
jest-expo) - Linting : ESLint (config Expo)
🧪 Stratégie de Tests
Nous utilisons principalement Jest pour les tests unitaires et de composants.
Tests Unitaires & Composants
- Situés dans le répertoire
tests/(ex.tests/api/). - Utilise
@testing-library/react-nativepour les tests d'interaction des composants. - Exécution locale :
npm test
🔄 Workflows CI/CD
1. Pipeline CI (ci.yml)
Déclenché sur push et pull_request vers main et dev.
Étapes :
-
Quality Gates :
- Vérification TypeScript :
tsc --noEmit - Linting :
npm run lint - Sécurité :
npm audit
- Vérification TypeScript :
-
Tests :
- Exécute les tests Jest avec vérification de couverture.
-
Validation du Build :
- Expo Doctor : Vérifie les problèmes de configuration.
- Export Web : Exécute
expo exportpour vérifier que l'application se compile correctement.
-
EAS Build Preview (PRs uniquement) :
- Déclenche un EAS Build pour le profil
preview.
- Déclenche un EAS Build pour le profil
-
Build Production (Branche main uniquement) :
- Déclenche un EAS Build pour le profil
production(APK Android).
- Déclenche un EAS Build pour le profil
2. Analyse SonarQube (sonar.yml)
- Exécute les tests avec génération de couverture (
npm run test:ci). - Scanne le code pour les bugs, vulnérabilités et "code smells".
- Applique les vérifications du Quality Gate.
♿ Accessibilité
- Linting : Règles d'accessibilité appliquées via ESLint.
- Tests Manuels : Tests VoiceOver/TalkBack sur les appareils recommandés manuellement.