EXFO inc - 49 Jobs
Longueuil, QC
Job Details:
Description du poste :
Ingénieur en développement logiciel de tests (SDET)
Plateformes de surveillance de la fibre et de visibilité réseau
À propos de nous
Nous développons des plateformes critiques de surveillance de la fibre et de visibilité réseau utilisées par de grands opérateurs de télécommunications et fournisseurs de centres de données partout dans le monde. Nos solutions permettent la surveillance en temps réel des réseaux de fibres optiques, notamment la détection et la localisation des défauts, l'analyse de la dégradation du signal et l'assurance de service, dans les réseaux extérieurs (OSP), les centres de données et les environnements DCI.
Notre plateforme logicielle repose sur une architecture de microservices conteneurisés, fonctionne principalement sous Linux et est déployée dans des environnements sur site, infonuagiques et hybrides. La fiabilité, l'évolutivité, la performance et l'excellence opérationnelle sont au cœur de nos activités.
Le rôle
Nous recherchons un ingénieur en développement logiciel de tests (SDET) possédant de 5 à 7 ans d'expérience afin de concevoir, développer et faire évoluer les capacités de tests automatisés au cœur de nos plateformes de surveillance de la fibre.
Vous travaillerez sur les tests manuels et exploratoires, l'automatisation des tests, les pipelines CI/CD, les systèmes distribués, les API, les intégrations, les flux de bout en bout et la validation des performances. Dans notre contexte, où la couverture automatisée est encore en développement, les tests manuels constituent une responsabilité essentielle et le fondement de toute automatisation pertinente. Le titulaire devra d'abord comprendre en profondeur le domaine de la surveillance de la fibre, les cas d'utilisation des clients et le comportement du système avant de concevoir ou d'automatiser les scénarios de test. Ce rôle combine l'ingénierie logicielle, l'ingénierie de la qualité et les pratiques DevOps.
Principales responsabilités
Concevoir, développer et maintenir des cadres de tests automatisés pour les API, les microservices, les applications Web, les intégrations et les flux système.
Automatiser les tests fonctionnels, d'intégration, de régression, de bout en bout (E2E) et de performance.
Intégrer les suites de tests automatisés, les contrôles de qualité, les rapports et la validation des versions aux pipelines CI/CD.
Créer et maintenir les environnements de test, les données de test, les objets simulés, les simulateurs et l'infrastructure de test conteneurisée.
Créer et exécuter des tests de charge, de stress, d'endurance, d'évolutivité et de régression des performances.
Analyser les goulots d'étranglement et collaborer avec les développeurs et les ingénieurs DevOps afin de prévenir les régressions de performance.
Valider les flux de travail entre les services distribués, les conteneurs, les bases de données, les composants réseau et les interfaces proches du matériel.
Effectuer des tests manuels, exploratoires, d'utilisabilité et de mise en production afin de comprendre le produit, valider les comportements attendus et établir des scénarios de test fiables avant leur automatisation.
Développer une compréhension approfondie de la surveillance de la fibre, des flux opérationnels et des cas d'utilisation des clients afin de déterminer quoi automatiser, à quel niveau et avec quels résultats attendus.
Analyser les défaillances des pipelines et des tests, distinguer les défauts du produit des problèmes d'automatisation ou d'infrastructure et améliorer la stabilité des tests.
Participer aux discussions d'architecture ainsi qu'aux revues de conception, de code et de tests.
Collaborer étroitement avec les équipes Produit, Développement, DevOps, Soutien et les autres ingénieurs afin de livrer des fonctionnalités fiables et à valeur ajoutée.
Compétences techniques requises
De 5 à 7 ans d'expérience professionnelle en développement logiciel, ingénierie de la qualité, automatisation des tests ou dans un rôle de SDET.
Solides compétences en programmation ou en script avec Java, JavaScript/TypeScript, Python, Go ou des langages comparables.
Expérience approfondie dans le développement et la maintenance de cadres de tests automatisés dans des environnements logiciels de production.
Expérience des tests d'API REST, de microservices, d'applications Web et d'intégrations de systèmes.
Capacité et volonté d'acquérir une compréhension approfondie du domaine de la surveillance de la fibre et de valider manuellement les scénarios avant de les automatiser.
Bonne compréhension de la conception des tests, de l'architecture d'automatisation, de la stratégie de régression, de l'isolation des défauts et des tests fondés sur les risques.
Expérience pratique démontrée en automatisation de tests E2E dans des systèmes distribués ou comportant plusieurs composants.
Expérience pratique démontrée en tests de performance, notamment les tests de charge, de stress, d'endurance et d'évolutivité, ainsi que l'analyse des résultats.
Expérience pratique démontrée avec Docker et les environnements de test ou d'application conteneurisés.
À l'aise dans les environnements Linux.
Maîtrise de Git et des méthodes de développement collaboratif.
Bonne compréhension de la concurrence, des réseaux, du traitement asynchrone et des considérations de performance propres aux systèmes distribués.
DevOps, CI/CD et ingénierie de la qualité
Expérience de l'intégration des tests automatisés aux pipelines CI/CD.
Expérience de l'intégration continue, des pipelines sous forme de code, des contrôles de qualité automatisés et de la production de rapports de tests exploitables.
Capacité à définir des étapes de test qui équilibrent rapidité, couverture, stabilité et confiance envers les versions.
Expérience de l'exécution de tests aux étapes des demandes de tirage, de l'intégration, des exécutions nocturnes, de la mise en production et de la validation dans des environnements représentatifs de la production.
Connaissance de l'infrastructure sous forme de code, de l'orchestration de conteneurs et du provisionnement automatisé des environnements.
Orientation marquée vers la réduction des tests instables, le raccourcissement des boucles de rétroaction et l'amélioration de la maintenabilité de l'automatisation.
Observabilité et opérations
Expérience de la journalisation, de la surveillance, des métriques, du traçage distribué et des alertes pour l'analyse des tests et du produit.
Capacité à diagnostiquer et à analyser les problèmes touchant plusieurs services, conteneurs, bases de données, interfaces réseau et couches d'infrastructure.
Compréhension des concepts de fiabilité en production et de la manière dont les données opérationnelles peuvent améliorer la couverture automatisée.
Atouts
Expérience avec Selenium, Playwright, Cypress, REST Assured, Postman/Newman, JMeter, Gatling, k6 ou des outils équivalents.
Expérience avec Kubernetes, Docker Swarm, les plateformes infonuagiques ou les environnements de déploiement hybrides.
Connaissance des tests de sécurité, de résilience, de chaos, de contrats ou de la virtualisation de services.
Expérience des systèmes embarqués, des tests avec matériel dans la boucle ou des systèmes proches du matériel.
Expérience en télécommunications, en surveillance de réseaux ou en réseaux de fibres optiques.
Connaissance des architectures événementielles et des systèmes distribués en temps réel ou quasi réel.
Compréhension ou expérience pratique des assistants de programmation fondés sur l'IA générative et des outils de développement basés sur des agents afin d'accélérer la création, l'analyse et la maintenance des tests, avec une revue d'ingénierie et une gouvernance appropriées.
Compétences interpersonnelles et état d'esprit
Naturellement curieux et motivé à comprendre en profondeur le comportement des systèmes.
Autonome et proactif, capable de prendre en charge les améliorations de la qualité, de la conception à la livraison.
Solides compétences en analyse, en débogage et en résolution de problèmes.
Excellentes aptitudes en communication et capacité à collaborer avec différentes équipes.
Normes de qualité élevées et fort sentiment de responsabilité envers la fiabilité du produit.
Approche pragmatique qui équilibre l'automatisation, les tests manuels, la rapidité de livraison et les risques d'affaires.
Esprit d'équipe et attitude proactive.
Exigences
Baccalauréat en génie logiciel, en informatique ou expérience professionnelle équivalente.
Maîtrise du français et de l'anglais requise.
Autorisation légale de travailler au Canada.
La connaissance de l'anglais est requise pour ce poste afin de communiquer régulièrement, à l'oral et à l'écrit, avec des collègues, partenaires et clients situés à l'extérieur du Québec.
Ce que nous offrons
Salaire concurrentiel et programme complet d'avantages sociaux.
Environnement de travail hybride et flexible.
Occasion de travailler sur des infrastructures réelles à l'échelle mondiale.
Culture d'ingénierie collaborative et pragmatique.
Feuille de route produit à long terme comportant des défis techniques significatifs.
Possibilités d'apprentissage continu et de développement professionnel.
-
. click apply for full job details