Aller au contenu principal

Stratégie QA & Tests Backend

Cette section détaille la stratégie de tests, les workflows et les technologies utilisés dans le dépôt Control-Hub-Back.

🛠 Stack Technologique

  • Framework: AdonisJS (Node.js)
  • Langage: TypeScript
  • Base de données:
    • MySQL (Principale)
    • Redis (Cache & Session)
  • Framework de Test: Japa
  • Linting & Formatage: ESLint, Prettier

🧪 Stratégie de Tests

Nous utilisons Japa pour exécuter à la fois les tests unitaires et fonctionnels.

Suites de Tests

  • Tests Unitaires: Situés dans tests/unit. Se concentrent sur les composants individuels, les helpers et la logique isolée.
  • Tests Fonctionnels: Situés dans tests/functional. Couvrent les endpoints API, les interactions avec la base de données et les flux d'intégration.

Exécuter les Tests

Pour lancer les tests localement :

pnpm test

Cette commande exécute node ace test.

🔄 Workflows CI/CD

Le dépôt utilise GitHub Actions pour l'intégration continue et l'assurance qualité.

1. Pipeline CI (ci.yml)

Déclenché sur push et pull_request vers master et dev.

Étapes :

  1. Quality Gates:
    • Vérification de la compilation TypeScript (pnpm typecheck)
    • Linting (pnpm lint)
    • Vérification du formatage (pnpm format --check)
  2. Audit de Sécurité:
    • Exécute pnpm audit --prod pour vérifier les vulnérabilités.
  3. Tests:
    • Exécute les tests Japa (pnpm test) avec des conteneurs de service MySQL et Redis.
  4. Vérification du Build:
    • Compile le projet (pnpm build) pour s'assurer qu'il est déployable.

2. Analyse SonarQube (sonar.yml)

Déclenché sur push et pull_request vers main, dev, et master.

  • Exécute les tests unitaires avec couverture (npx c8 ...).
  • Effectue un scan SonarQube pour la qualité du code et l'analyse de sécurité.
  • Applique les vérifications Quality Gate.

♿ Accessibilité

Non applicable pour ce service backend.