T
STAGE – Analyse d’impact et sélection des tests end-to-end (Test Impact Analysis) F/H
thales.wd3.myworkdayjobs.com/careers
Cergy · fr
11h ago
94%
Strong
Job description
Lieu : Cergy, France Construisons ensemble un avenir de confiance Thales est un leader mondial des hautes technologies spécialisé dans trois secteurs d’activité : Défense & Sécurité, Aéronautique & Spatial, et Cyber & Digital. Il développe des produits et solutions qui contribuent à un monde plus sûr, plus respectueux de l’environnement et plus inclusif. Le Groupe investit près de 4,5 milliards d’euros par an en Recherche & Développement, notamment dans des domaines clés de l’innovation tels que l’IA, la cybersécurité, le quantique, les technologies du cloud et la 6G. Thales compte près de 85 000 collaborateurs dans 65 pays. Nos engagements, vos avantages Notre savoir-faire technologique Notre attention portée à l’équilibre des collaborateurs Un environnement inclusif et bienveillant Un engagement sociétal et environnemental reconnu (Thales Solidarity, indice CAC 40 ESG…) Votre quotidien A Cergy, vous contribuez aux systèmes d’entraînement et de simulation parmi les plus sophistiqués au monde. Vous rêvez de piloter hélicoptères, avions de chasse ou véhicules blindés ? Rejoignez-nous et relevez les défis des domaines aérien, terrestre, et naval ! VOTRE QUOTIDIEN Au sein du Centre de Compétences Training et Simulation, vous rejoignez le secteur FIGHTERS et plus particulièrement le service Training Staff Softwares. Ce service développe les logiciels destinés aux postes instructeurs des systèmes de simulation. Ces applications permettent aux instructeurs de plonger les pilotes de véhicules aériens ou terrestres dans des environnements virtuels reproduisant des situations réalistes, tout en leur fournissant des outils d'évaluation et de suivi des entraînements. Dans le cadre de ce stage, vous intégrerez l’équipe en charge du développement et de l’industrialisation du framework de tests automatisés de bout en bout. Basé sur Reqnroll (BDD/Gherkin), FlaUI et Playwright .NET, ce framework couvre un environnement applicatif hybride composé d’interfaces Angular/Electron et d’applications desktop WPF. À mesure que le nombre de scénarios de tests augmente, l’exécution systématique de l’ensemble de la suite à chaque modification du code devient de plus en plus coûteuse en temps et en ressources. L’approche retenue sera déterministe, sans recours à l’intelligence artificielle, afin de garantir des résultats explicables, traçables et compatibles avec les contraintes de sécurité de notre environnement. Vos principales missions En collaboration avec les développeurs C#/.NET et Angular, les équipes QA et le Tech Lead, vous serez amené à : 1. Étudier l’existant et analyser les différentes approches Réaliser un état de l’art des méthodes de sélection des tests de régression (approches statiques, dynamiques et hybrides). Analyser l’architecture du framework de tests et les dépendances entre les scénarios Gherkin, les step definitions, les couches d’automatisation et le code applicatif. Exploiter l’historique Git et Jenkins afin d’évaluer les temps d’exécution et les résultats de la suite de tests. 2. Concevoir une cartographie entre les tests et le code applicatif Construire un graphe de dépendances entre les scénarios de tests et le code applicatif à l’aide de Roslyn pour C#/.NET. Étudier les mécanismes de détection des changements sur les interfaces graphiques, notamment à partir des AutomationID. Collecter et exploiter les données de couverture de code lors de l’exécution des scénarios, notamment avec Coverlet ou dotnet-coverage pour .NET et Istanbul pour Angular/Electron. 3. Développer un outil d’analyse d’impact des tests Développer en C#/.NET un outil capable d’identifier les fichiers et méthodes modifiés à partir d’un diff Git (branche ou pull request Bitbucket). Déterminer automatiquement les scénarios de tests impactés et générer les filtres d’exécution Reqnroll correspondants. Mettre en place des règles de sécurité permettant de déclencher l’exécution complète de la suite en cas de modification non cartographiée, de configuration ou de bibliothèque partagée. Intégrer l’outil au pipeline CI/CD Jenkins et publier dans les pull requests la liste des scénarios sélectionnés, accompagnée de la justification de chaque sélection. 4. Évaluer les performances et la fiabilité de la solution Rejouer un historique de commits pour comparer les résultats de la sélection ciblée à ceux d’une exécution complète. Mesurer les gains de temps, la proportion de tests écartés et la capacité à détecter les régressions. Comparer les différentes approches (statique, dynamique et hybride) ainsi que les niveaux de granularité (fichier, classe, méthode). Évaluer les limites de la solution et le coût de maintenance de la cartographie. 5. Documenter et préparer l’industrialisation de la solution Rédiger la documentation technique et le guide d’utilisation de l’outil. Présenter les résultats dans un rapport d’évaluation détaillant les gains, les limites et les risques identifiés. Proposer des pistes d’amélioration et une feuille de route pour l’industrialisation de la solution. Vos livrables À l’issue du stage, vous aurez contribué à la réalisation de : Un outil fonctionnel d’analyse d’impact des tests, accompagné de son code source, de ses tests unitaires et de sa documentation. Une étape opérationnelle intégrée au pipeline Jenkins sur au moins un périmètre applicatif pilote. Un rapport d’évaluation expérimentale présentant le protocole, les résultats obtenus, les différentes approches comparées et les recommandations pour la suite. VOTRE PROFIL Vous préparez un diplôme de niveau Bac+5 (école d’ingénieurs ou Master 2), avec une spécialisation en informatique ou en génie logiciel, et vous souhaitez mettre vos compétences en développement logiciel au service d’un projet concret associant automatisation, analyse de code et amélioration continue. Vous disposez des compétences suivantes : De solides connaissances en programmation orientée objet (POO), en conception logicielle et en design patterns. Une bonne maîtrise du langage C# et de l’environnement .NET (version 6 ou supérieure). Une compréhension des mécanismes de compilation, des graphes de dépendances et de la couverture de code. Une connaissance des bonnes pratiques de développement logiciel et des principes de l’automatisation des tests. Les compétences suivantes seraient un plus : Une première expérience avec des outils d’automatisation de tests tels que Reqnroll, Playwright ou FlaUI, ainsi qu’une connaissance des approches BDD et du langage Gherkin. Des connaissances de Roslyn, du compilateur TypeScript ou des outils de couverture de code tels que Coverlet et Istanbul. Une familiarité avec les environnements CI/CD, notamment Jenkins, ainsi qu’avec les outils de gestion de versions Git, Bitbucket ou GitLab. Un intérêt pour les démarches expérimentales, la définition de protocoles de mesure et l’analyse comparative de résultats. Au-delà de vos compétences techniques, vous êtes reconnu pour : Votre autonomie : vous savez prendre en charge un sujet technique et avancer de manière structurée. Votre rigueur : vous accordez une attention particulière à la qualité du code, à la fiabilité des résultats et à la documentation. Votre esprit d’analyse : vous aimez comprendre des problématiques complexes, explorer différentes solutions et argumenter vos choix techniques. Votre esprit d’équipe : vous appréciez le travail collaboratif et savez échanger avec différents interlocuteurs pour faire avancer un projet. Tous nos stages sont conventionnés et soumis à une gratification dont le montant est déterminé selon votre niveau d’études. Thales, entreprise Handi-Engagée, reconnait tous les talents. La diversité est notre meilleur atout. Postulez et rejoignez nous !