QA Engineer
Le projet
Une plateforme web locale d’automatisation des tests End-to-End assistée par IA. Elle permet d’enregistrer des parcours utilisateurs avec Playwright Codegen, de générer automatiquement des scripts de tests Playwright + pytest via un LLM, d’exécuter ces tests et d’analyser leur résultat à l’aide d’une analyse visuelle par IA.
La plateforme intègre également la gestion des suites de tests, les artefacts d’échec, les traces Playwright, le self-healing des tests, les tests data-driven, les rapports PDF/Markdown, le suivi de la flaky-ness et un quality gate pour la CI/CD.
Le rôle
Nous recherchons un(e) QA Engineer capable de participer à la conception fonctionnelle et technique de la stratégie de test de la plateforme et de garantir la fiabilité de ses fonctionnalités.
Le rôle combine analyse QA, conception de scénarios de test, automatisation E2E, validation fonctionnelle et amélioration continue de la plateforme.
Responsabilités
1. Consultation & conception QA
- Participer à la définition de la stratégie globale de test de Medusa.
- Analyser les fonctionnalités et identifier les scénarios nominaux, négatifs et edge cases.
- Définir les critères d’acceptation et les critères de qualité des fonctionnalités.
- Concevoir les workflows de validation pour l’enregistrement, la génération et l’exécution des tests.
- Identifier les risques fonctionnels et techniques liés à l’automatisation de tests.
- Participer à la conception des mécanismes de validation des verdicts IA.
- Contribuer à la définition des KPIs QA : pass rate, flaky tests, durée moyenne, taux d’échec, etc.
2. Test Automation
- Concevoir et maintenir des tests End-to-End avec Playwright.
- Utiliser pytest pour l’exécution des tests automatisés.
- Valider les scripts générés automatiquement par l’IA.
- Concevoir des assertions robustes permettant de vérifier le comportement fonctionnel réel d’une application.
- Tester différents types de locators : role, label, placeholder, text, CSS et locators complexes.
- Vérifier la gestion des screenshots, traces Playwright et autres artefacts.
3. Validation de l’IA
Une partie importante du rôle consiste à tester le système IA lui-même.
- Vérifier la qualité des scripts générés par le LLM.
- Tester les différents cas de génération et de régénération.
- Valider les mécanismes de self-healing.
- Tester le système de verdict fonctionnel basé sur les screenshots.
- Identifier les faux positifs et faux négatifs des analyses IA.
- Vérifier que le verdict IA évalue réellement l’objectif fonctionnel du test et ne se limite pas au statut pytest.
- Participer à l’amélioration des prompts et des critères de validation.
4. Tests fonctionnels & non-régression
- Exécuter des campagnes de tests fonctionnels.
- Construire des scénarios de régression automatisés.
- Tester les cas d’erreur et les comportements inattendus.
- Vérifier les fonctionnalités data-driven avec différents datasets.
- Tester la gestion des retries et la détection des tests flaky.
- Vérifier les exécutions individuelles et les exécutions en batch.
5. API & Backend Testing
- Tester les API REST de la plateforme.
- Vérifier les différents codes HTTP et messages d’erreur.
- Tester les workflows CRUD des projets, suites et résultats.
- Valider les endpoints d’exécution, génération, healing, reporting et analyse.
- Tester les mécanismes de polling et les exécutions asynchrones.
- Vérifier la persistance des données SQLite et les migrations depuis l’ancien stockage JSON.
6. CI/CD & Quality Gate
- Concevoir et maintenir les tests exécutables dans un environnement CI.
- Valider le quality gate de la plateforme.
- Vérifier que les tests échouent correctement lorsque le projet n’est pas conforme aux critères définis.
- Participer à l’intégration avec GitHub Actions.
- Tester les scénarios de succès et d’échec du pipeline CI/CD.
7. Reporting & suivi qualité
- Vérifier la cohérence des résultats affichés dans le dashboard.
- Valider les statistiques de suites et projets.
- Tester les rapports Markdown et PDF.
- Contrôler la cohérence entre les résultats pytest, les verdicts IA et les artefacts générés.
- Documenter les anomalies et suivre leur résolution.
8. Sécurité & robustesse QA
- Tester les comportements liés aux entrées utilisateur.
- Vérifier les protections contre les erreurs de manipulation et les cas limites.
- Tester notamment la protection contre le path traversal des fichiers d’artefacts.
- Vérifier que les secrets et API keys ne sont jamais exposés dans le code source.
- Contrôler les comportements liés aux erreurs OpenRouter et à l’indisponibilité du backend.
Environnement technique
- Playwright
- Python
- pytest
- Flask / REST APIs
- React
- OpenRouter / LLM
- Multimodal AI / Computer Vision
- SQLite
- Git & GitHub
- GitHub Actions
- CI/CD
- API Testing
- End-to-End Testing
La plateforme utilise notamment Python 3.9+, Flask, SQLite, pytest, Playwright Python Sync API, OpenRouter, ReportLab et React 18.
Profil recherché
- Formation en informatique, génie logiciel ou domaine similaire.
- Bonne compréhension des méthodologies QA et Software Testing.
- Expérience ou intérêt pour l’automatisation des tests.
- Connaissances en Playwright, Selenium ou outils similaires.
- Bonne maîtrise de Python et des tests automatisés.
- Compréhension des API REST et des applications web.
- Connaissances en Git/GitHub et CI/CD.
- Intérêt pour l’IA générative et les applications basées sur les LLMs.
- Esprit analytique et capacité à identifier les edge cases.
- Autonomie, rigueur et sens du détail.
Ce que vous allez construire
Vous ne serez pas uniquement chargé(e) d’exécuter des tests.
Vous participerez directement à la conception de la stratégie QA d’une plateforme d’automatisation de tests assistée par IA, depuis la définition des scénarios jusqu’à leur automatisation, leur exécution, leur analyse et leur intégration dans des pipelines CI/CD.
L’objectif est de construire une solution capable de déterminer non seulement si le code du test passe, mais surtout si la fonctionnalité testée fonctionne réellement.