Le cycle de vie des applications logicielles comprend diverses étapes avant leur publication pour l’utilisateur final.
Les tests représentent une composante essentielle du SDLC (Software Development Life Cycle), car ils permettent de repérer les anomalies et de vérifier la conformité du fonctionnement d’une application aux exigences établies.
Autrefois, les experts en test logiciel avaient recours à des méthodes manuelles. Cependant, ces tests manuels sont chronophages et engendrent d’autres complications. C’est dans ce contexte qu’est apparu Selenium, conçu pour automatiser les tests de logiciels.
Selenium est aujourd’hui un leader sur le marché et un outil incontournable pour la majorité des testeurs logiciels. Si vous envisagez une carrière dans ce domaine, une préparation aux questions d’entretien courantes sur Selenium vous offrira un avantage concurrentiel par rapport aux autres candidats.
Voici une sélection de questions-réponses susceptibles d’être abordées lors d’un entretien axé sur Selenium :
Qu’est-ce que le test d’automatisation ?
En termes simples, l’automatisation des tests désigne l’emploi de suites de tests automatisées, sans intervention humaine, pour écrire et exécuter des tests logiciels. Elle permet aux testeurs d’utiliser un outil spécifique pour répéter des tâches de test de manière automatisée.
Quels sont les avantages des tests d’automatisation ?
- Économie de temps et d’argent. Les tests logiciels peuvent représenter un coût important si l’on doit employer des testeurs manuels. L’automatisation des tests peut s’avérer plus économique à long terme.
- Facilitation de la réutilisation du code. La configuration des tests s’effectue une seule fois, puis leur exécution est répétée.
- Réduction des erreurs humaines, améliorant ainsi la précision.
- Adaptation idéale aux applications d’envergure. Tester une petite application peut être aisé avec des tests manuels. Toutefois, à mesure que l’application évolue, un ensemble de tests automatisés s’avérera précieux.
Qu’est-ce que Selenium ?
Selenium est une suite open source gratuite d’automatisation des tests basée sur l’interface utilisateur Web, développée par Jason Huggins en 2004. La présence d’une communauté active a contribué à faire de Selenium l’une des suites de test logiciel automatisées les plus répandues. Elle est compatible avec une variété de navigateurs et de plateformes.
Quelles sont les différentes formes de Selenium ?
Selenium n’est pas un simple outil, mais une suite regroupant plusieurs outils :
- Selenium Integrated Development Environment (IDE)
- Selenium WebDriver
- Selenium Remote Control (RC)
- Selenium Grid
Quels langages de programmation sont pris en charge par Selenium ?
- Python
- Java
- C#
- JavaScript
- Ruby
- PHP
- Perl
Quels types de tests sont pris en charge par Selenium ?
Selenium est principalement utilisé pour les tests d’interfaces utilisateurs. Cependant, il peut être intégré avec d’autres outils pour des tests plus complets.
Qu’est-ce que Selenium WebDriver ?
Selenium WebDriver est chargé d’interagir avec les navigateurs Web. Cet outil s’appuie sur une compatibilité native pour automatiser diverses tâches.
Qu’est-ce que Selenium IDE ?
Selenium IDE est un plugin Firefox servant d’outil d’enregistrement et de lecture. Il a été conçu pour accélérer la création de scripts d’automatisation.
Qu’est-ce qu’une grille Selenium ?
Cet outil permet de répartir l’exécution des tests sur divers environnements et plateformes de manière simultanée.
Qu’est-ce que Selenium RC (Remote Control) ?
RC est un outil qui permet de créer des scripts de test dans le langage de programmation de son choix. Il permet également d’exécuter des scripts de test sur un large éventail de navigateurs.
Qu’entend-on par Selenese ?
Selenium IDE utilise un langage, Selenese, pour l’écriture des commandes. Ces commandes permettent à Selenium de comprendre les opérations ou actions à exécuter.
Quels sont les types de Selenese ?
- Actions. Ce sont des commandes qui modifient l’état de l’application. Par exemple : « Saisir dans ce champ » ou « Cliquer sur ce lien ».
- Accesseurs. Ces commandes permettent de déterminer l’état de l’application et d’en stocker les résultats dans des variables.
- Assertions. Ces commandes permettent au testeur de vérifier l’état de l’application.
Quelles sont les méthodes pour localiser un élément dans Selenium ?
- ID
- Nom de la classe
- Nom
- Nom de la balise
- Texte du lien
- Texte partiel du lien
- XPath
- Sélecteur CSS
- DOM
Qu’est-ce qu’un XPath ?
Un XPath localise un élément Web en fonction de son chemin dans le langage XML (Extensible Markup Language). Les données sont organisées et transportées grâce aux magasins XML.
Quelle est la différence entre « / » et « // » dans XPath ?
Le « / » ou barre oblique unique crée un XPath avec un chemin absolu. Ainsi, le XPath est créé pour démarrer la sélection depuis le nœud de départ/nœud de document.
Le « // » ou double barre oblique est utilisé pour créer un XPath avec un chemin relatif. Ainsi, le XPath créé commence la sélection depuis n’importe quel endroit dans le document.
Qu’est-ce qu’un XPath absolu ?
Un XPath absolu commence par une seule barre oblique « / ». Ce chemin correspond à un parcours complet depuis la racine jusqu’à l’élément recherché.
Quelle est la différence entre findElement() et findElements() ?
- findElements() : utilise le mécanisme de localisation spécifié pour rechercher tous les éléments de la page actuelle et renvoie une liste de tous les éléments Web.
- findElement() : trouve le premier élément de la page actuelle à l’aide du mécanisme de localisation spécifié et renvoie un seul élément Web.
Quels types d’annotations sont utilisés dans Selenium ?
- @BeforeSuite
- @BeforeTest
- @BeforeClass
- @BeforeMethod
- @Test
- @AfterMethod
- @AfterClass
- @AfterTest
- @AfterSuite
Que sont les assertions dans Selenium ?
Les assertions permettent de vérifier si l’application fonctionne comme prévu. Si une assertion échoue, le scénario de test échoue et l’exécution s’interrompt.
Que sont les commandes Assert et Verify ?
- Assert : si les conditions d’assertion sont validées, le programme poursuit l’exécution de l’étape de test suivante. Dans le cas contraire, l’exécution s’arrête et aucun autre test n’est exécuté.
- Verify : l’exécution du test se poursuit, que la condition vérifiée soit validée ou non.
Qu’est-ce que la politique de même origine et comment Selenium la gère-t-elle ?
La politique de même origine est un mécanisme de sécurité qui limite les interactions entre un script ou un document chargé par une origine donnée et une ressource d’une autre origine. Cette approche vise à isoler les scripts malveillants.
Selenium emploie une méthode d’injection de proxy pour appliquer la politique de même origine. Dans cette configuration, le serveur Selenium sert de proxy HTTP configuré par le client entre l’application testée et le navigateur. Cette injection de proxy masque l’AUT (Application Under Test) via une URL fictive.
Qu’est-ce que la fonctionnalité de pause dans Selenium IDE ?
La commande de pause (wait) de Selenium IDE permet de retarder l’exécution des tests automatisés pendant une durée spécifiée. La durée d’attente est indiquée en millisecondes. Par exemple, pour une attente de 3 secondes, il faudra saisir 3 000.
Pourquoi les tests Selenium IDE échouent-ils ?
- Sites Web asynchrones. Les tests Selenium sont créés selon une séquence précise. Cependant, certains sites Web ont une architecture asynchrone, et les réponses peuvent parfois arriver dans le désordre.
- Délais d’attente. Selenium peut échouer s’il attend trop longtemps le chargement d’un composant. Ces erreurs peuvent être gérées grâce aux « attentes ».
- Bugs. Selenium est en constante amélioration. Toutefois, des bugs peuvent parfois survenir, entraînant l’échec des tests.
- Modifications mineures du code source. La modification d’un localisateur peut entraîner l’échec de tous les tests qui y sont liés.
Qu’est-ce que TestNG et quelles sont ses principales caractéristiques ?
TestNG est un framework d’automatisation des tests inspiré de JUnit et NUnit. NG, pour Next Generation, est un outil open source et gratuit.
Voici quelques-unes des caractéristiques de TestNG :
- Différents types d’assertions.
- Exécution de tests en parallèle.
- Dépendance entre les tests via les attributs ‘dependsOnMethods’ et ‘dependsOnGroups’.
- Effectuer des tests basés sur les données.
- Regroupement de différents tests.
Quelle est la différence entre l’attente implicite et l’attente explicite ?
- L’attente implicite (Implicit Wait) indique au WebDriver d’attendre un laps de temps donné avant de déclencher une exception. La valeur par défaut est 0. Une fois définie, le WebDriver attendra ce délai avant de lever une exception.
- L’attente explicite (Explicit Wait) indique au WebDriver d’attendre certaines conditions ou ExpectedConditions avant de déclencher une exception « ElementNotVisibleException ». L’attente explicite est une attente « intelligente » qui ne s’applique qu’aux éléments spécifiés.
Qu’est-ce qu’un référentiel d’objets ?
Un référentiel d’objets est une collection de paires clé-valeur dans un script de test automatisé d’interface graphique qui facilite la maintenance des scripts de test. La clé est un nom logique identifiant les objets, et les valeurs sont les propriétés uniques qui identifient les objets sur un écran.
Il s’agit d’un emplacement central où toutes les données sont stockées et gérées.
Quelles sont les exceptions que l’on peut rencontrer dans un WebDriver Selenium ?
Une exception est un événement imprévu ou inhabituel qui peut se produire pendant l’exécution d’un programme ou d’une application logicielle. Elle peut être décrite comme une erreur d’exécution, un événement ou un résultat inattendu qui perturbe ou influence le déroulement normal du programme.
Voici les principales exceptions dans Selenium WebDriver :
- NoSuchWindowException. Le WebDriver tente de basculer vers une fenêtre invalide (non disponible).
- NoSuchElementException. Se produit lorsqu’un élément est inaccessible.
- NoAlertPresentException. Cette exception se produit lorsque l’on essaie de basculer vers une alerte non affichée.
- TimeoutException. La commande spécifiée n’a pas été exécutée dans le délai imparti.
- ElementNotVisibleException.
- ElementNotSelectableException. Cette exception se produit lorsqu’un élément est désactivé (ne peut pas être sélectionné ou cliqué), même s’il est disponible dans le DOM.
- SessionNotFoundException. Le WebDriver agit immédiatement après la fermeture du navigateur.
Énumérer les différents types de localisateurs :
- ID
- Nom
- Nom de la classe
- tagName
- lienTexte
- partialLinkText
- Sélecteur CSS
- XPath
Que sont les points d’arrêt et les points de départ ?
- Les points de départ indiquent l’endroit où doit commencer l’exécution d’un code. Ils peuvent être utilisés pour exécuter un script de test à partir du milieu du code ou d’un point d’arrêt.
- Les points d’arrêt permettent d’interrompre l’exécution du code. Ils sont utilisés pour vérifier que le code fonctionne correctement.
Conclusion
Voici quelques exemples de questions d’entretien sur Selenium que vous rencontrerez probablement lors de votre prochain entretien d’embauche en ingénierie d’automatisation des tests. Il est essentiel de vous assurer que vous possédez les compétences requises avant de postuler à un poste d’ingénieur en automatisation des tests.
Avez-vous apprécié cet article ? N’hésitez pas à le partager avec le monde entier !