Stratégie QA & Tests Vision
Cette section détaille la stratégie de tests, les workflows et les technologies utilisés dans le dépôt firstbreath-vision, qui contient les microservices d'IA et de vision par ordinateur.
🛠 Stack Technologique
- Langage : Python 3.11
- Frameworks : PyTorch, OpenCV, Ultralytics YOLO
- Architecture : Microservices
camera-manager: Gestion des flux RTSP et logique caméra.batch-inference: Exécution des modèles IA sur les images vidéo.redis-worker: Traitement asynchrone des tâches.
- Framework de Test : pytest
- Linting & Formatage : Black, Flake8, Safety
🧪 Stratégie de Tests
Nous utilisons pytest pour les tests unitaires et d'intégration sur tous les services.
Structure des Tests
Chaque service a son propre répertoire tests/ :
services/camera-manager/tests/services/batch-inference/tests/services/redis-worker/tests/
Exécution des Tests en Local
Pour exécuter les tests d'un service spécifique :
cd services/camera-manager
python -m pytest tests/
🔄 Workflows CI/CD
1. Pipeline CI (ci.yml)
Déclenché sur push et pull_request vers main et dev.
Étapes :
-
Quality Gates :
- Formatage : Vérifie le style du code avec
black. - Linting : Exécute
flake8pour détecter les erreurs de syntaxe et les noms non définis. - Sécurité : Exécute
safety checksur les fichiersrequirements.txtpour identifier les dépendances vulnérables.
- Formatage : Vérifie le style du code avec
-
Tests :
- Installe les dépendances (versions CPU uniquement de PyTorch pour la rapidité).
- Exécute
pytestavec couverture (--cov) pour chaque service (camera-manager,batch-inference,redis-worker).
-
Analyse SonarQube (intégrée dans la CI) :
- Scanne le code et rapporte les métriques de couverture et de qualité à SonarQube.
- Applique les vérifications du Quality Gate.
2. Build Docker (docker-build-and-push.yml)
- Compile les images Docker pour les services.
- Pousse les images vers le registre de conteneurs (si configuré).
♿ Accessibilité
Non applicable pour ces services backend/IA.