Aller au contenu principal

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-native pour 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 :

  1. Quality Gates :

    • Vérification TypeScript : tsc --noEmit
    • Linting : npm run lint
    • Sécurité : npm audit
  2. Tests :

    • Exécute les tests Jest avec vérification de couverture.
  3. Validation du Build :

    • Expo Doctor : Vérifie les problèmes de configuration.
    • Export Web : Exécute expo export pour vérifier que l'application se compile correctement.
  4. EAS Build Preview (PRs uniquement) :

    • Déclenche un EAS Build pour le profil preview.
  5. Build Production (Branche main uniquement) :

    • Déclenche un EAS Build pour le profil production (APK Android).

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.