Comment faciliter l’automatisation des tests ? Agilitest VS Selenium

Est-ce que l’outil Selenium Web driver est la meilleure solution pour automatiser mes tests web ? Comment automatiser mes tests logiciels sans avoir de compétences en développement  ?  L’objectif de cet article est de répondre à ces questions en comparant deux outils pourtant différents : SELENIUM Web Driver  et AGILITEST (outil français). Alors Selenium ou Agilitest ? Selenium étant, à ce jour, un outil open source très connu, il est intéressant de pouvoir comparer les deux approches.

L’automatisation des tests de logiciels nécessite généralement des compétences en programmation ou au moins en scripting.
Par exemple si vous testez une application web, il est recommandé d’avoir des connaissances en HTML et JavaScript.

Les utilisateurs d’Agilitest peuvent être des testeurs avec des compétences limitées en développement informatique. Agilitest, est une solution d’automatisation des tests fonctionnels d’IHM sur des technologies Web, Desktop et Mobiles, elle cache toutes les complexités techniques avec un design moderne conviviale. Avec le mode manuel les utilisateurs d’Agilitest peuvent sélectionner des mots-clés et faire le drag-drop.

Pour utiliser les bibliothèques de Selenium les testeurs ayant des compétences en développement informatique devront utiliser un IDE tel qu’Eclipse avec l’installation des frameworks de tests unitaires comme JUnit ou bien TestNG (Langage JAVA) ou Visual Studio (Langage C#) plus un framework de test unitaire comme NUnit ou bien MSTest afin de rédiger un cas de test.

Agilitest utilise le framework libre ATS (ActionTestScript) basé sur la méthode KDT (Keyword-Driven testing), le KDT (test par mots clés) est une technique de script qui utilise des fichiers de données pour contenir les mots-clés liés à l’application testée. Ces mots-clés décrivent l’ensemble des actions requises pour effectuer une étape spécifique.

1. Agilitest VS Selenium

Voici un tableau qui représente les principales caractéristiques des deux outils :

2. Déploiement et configuration

Plusieurs projets open source présentent des difficultés au niveau de l’installation, la configuration et le déploiement car ils sont fournis par de nombreux développeurs et fournisseurs différents qui soumettent leurs travaux dans un emplacement central, à savoir Github.

La première différence que vous remarquerez c’est la rapidité et la facilité de configuration et de l’installation avec Agilitest.

Vous trouverez ci-dessous les étapes de haut niveau requises par Selenium et Agilitest pour la configuration et l’exécution.

Sélénium:

  • Téléchargez et installez le SDK Java
  • Téléchargement et configuration de bibliothèques de tests: API client Selenium de votre langue préférée, Selenium Server ou un package autonome (ensemble client / serveur regroupé dans une seule bibliothèque).
  • Téléchargez IEDriver et ChromeDriver, configurez les variables d’environnement et PATH
  • Téléchargez et configurez l’EDI de développement et vos infrastructures de test préférées telles que JUnit, NUnit et TestNG
  • Parcourez le document API Selenium afin de commencer à créer un projet et à écrire du code.

Agilitest :

Agilitest est conçu comme un ensemble unifié qui inclut presque tout le nécessaire permettant de gérer les navigateurs et les dépendances requises. Vous devez juste :

  • Téléchargez l’installeur AGILITEST
  • Lancer l’installation de la solution

3. Fonctionnement et Utilisation d’Agilitest

    3.1 Interface

Pour gérer les scénarios de test Agilitest fournit une interface utilisateur graphique riche avec des menus, des arborescences etc… Agilitest se base sur le KDT présentant plusieurs mots clés par exemple : les vérifications, les Clics, les saisies… Ces mots clés sont idéals pour les testeurs qui ont des compétences techniques limitées et qui ne souhaitent pas faire la programmation.

Les testeurs sélectionnent et ajoutent les mots clés au scénario afin de construire une suite de mots clés.

    3.2 Identification des objets 

L’un des plus grands défis de l’automatisation des tests consiste à trouver un moyen efficace pour localiser des éléments d’interface utilisateur. Agilitest prend en charge l’espionnage d’objet pour les applications Web, desktop et pour les applications mobiles, Agilitest fournit également un outil de capture qui permet de sélectionner et identifier facilement un objet.

    3.3 Script

Les utilisateurs d’Agilitest  pourraient être des testeurs avec des compétences techniques, pour cela Agilitest conserve une partie de codage avec le mode de script au format ATS (Action Test Script) :

  • Format texte lisible et modifiable
  • Un fichier par test

Agilitest produit des « SubScripts » permettant d’appeler un script déjà développé dans un autre script avec la possibilité de définir les paramètres souhaités pour le script appelé.

4. Premier pas avec Selenium WebDriver et Agilitest

Pour tirer le meilleur parti de l’utilisation de Selenium, vous devez disposer d’une bonne architecture de cadre dès le début.

Résumer des étapes pour commencer avec Eclipse :

  • Créer un nouveau projet de test JUnitou TestNG
  • Référencer le package WebDriver
  • Instancier un nouveau RemoteWebDriver(ChromeDriverFirefoxDriver, etc.)
  • Appeler les méthodes Navigate() pour naviguer vers une page, FindElement() pour intéragir avec les contrôles, etc.
  • Quit() ou Dispose() pour fermer les navigateurs proprement

Exemple de Code d’un cas de test simple qui permet de :

  • Ouvrir le navigateur Firefox
  • Naviguer vers le site « ALL4TEST »
  • Vérifier un élément « Title »
  • Fermer le navigateur

  • Le même cas de test avec Agilitest

Comme indiqué précédemment, Agilitest est basé sur l’approche mot clé (Clics, Vérifier, Saisie, Navigation …)

    4.1 Scénario de test “Calculatrice” avec Selenium

Dans cet exemple, nous allons tester la fonctionnalité de calculatrice Google en utilisant Selenium pour l’automatisation de l’interface utilisateur et TestNG comme infrastructure de test.

    4.2 Scénario de test “Calculatrice” avec Agilitest

Maintenant, nous allons refaire le même exemple avec Agilitest :

  • Ouvrir le navigateur Chrome
  • Ouvrir l’application
  • Cliquer sur « 8 »
  • Cliquer sur « + »

  • Cliquer sur « 8 »
  • Cliquer sur « = »

  • Vérifier le résultat de calcul
  • Fermer le navigateur

    4.3 Exemple des scripts avec Selenium et Agilitest

Supposons que nous avons une application Web dans laquelle nous devons faire des actions complexes comme:

  • Drag and Drop

Suite de mots clés utilisés avec Agilitest :

  • Action de survol de souris

Suite de mots clés utilisés avec Agilitest :

  • Scroll page

Scroll down dans Selenium

Scroll page dans Agilitest

Suite à ces exemples, nous remarquons des points positifs tels que :

  • Agilitest propose un éditeur facile à utiliser pour les testeurs avec des compétences limitées en développement
  • Agilitest utilise le KDT (plusieurs mots clés comme : Navigations, Saisie, Clics…)

5. Rapport

La génération des rapports est une étape très importante lorsque nous exécutons  les tests d’automatisation et les tests manuels. En regardant les résultats, nous pouvons facilement identifier le nombre de cas de tests réussis, échoués et ignorés.

    5.1 Générer des rapports TestNG avec Selenium

La bibliothèque TestNG nous permet de générer un rapport très pratique. Une fois les tests exécutés, TestNG génère un dossier de sortie de test à la racine du projet.

    5.2 Rapport avec Agilitest

Agilitest génère un fichier « .xml » comprenant des informations importantes du déroulement d’un cas de test, ainsi que les images successives des différentes actions réalisées.

Pour conclure, voici une petite synthèse sur les points fort / faible de chaque outils

6.  Avantages et points forts d’Agilitest

  • Agilitest supporte les technologies Web, Mobile et Desktop
  • Automatisation des tests fonctionnels sur plusieurs canaux (Chrome, FireFox…)
  • Agilitest produit des scripts de tests au format ATS (open source)
  • L’outils permet à des testeurs avec des compétences techniques limitées d’automatiser des tests logiciels (type PO ou QA fonctionnel)
  • Réduire le coût de réalisation et maintenance des tests
  • possibilité d’utiliser des “sous-scripts » réutilisables

7. Limites et points faibles d’Agilitest

Durant l’utilisation d’Agilitest, j’ai remarqué une difficulté à comprendre certains mots clés donc la documentation explicative est très recommandée et nécessaire selon moi.

L’outil est payant, mais les montants sont peu élevé et vite rentabilisé.

Conclusion

Agilitest apporte un nouvelle approche de l’automatisation des tests très intéressante et complémentaire des outils en place, notamment pour les équipes ne possédant pas de scripteurs ou de spécialistes en automatisation de test.

Rédacteur : Zied Hannachi / Consultant test automation / All4Test

Vous souhaitez plus d’information sur ces outils ? Vous avez un projet d’automatisation de test? Contactez-nous

Consultez cette page pour découvrir plus sur les frameworks d’automatisation des test.