Web and Mobile App Testing Automation: How to Choose the Most Suitable Open Source Tools?

Les tests logiciels automatisés sont importants pour les produits logiciels afin de vérifier les fonctionnalités clés, de réaliser des tests de régression et d’aider à exécuter de nombreux tests dans un laps de temps court.

Pendant longtemps, les tests des interfaces utilisateur web et des applications mobiles ont été plus complexes, et les outils disponibles aujourd’hui sont généralement commerciaux. Cela a changé car les applications web se développent et de nombreux outils peuvent nous aider, y compris des outils open source. D’autre part, les applications mobiles natives et hybrides se développent aussi. Les applications web et mobiles sont donc dans la tendance d’aujourd’hui.

D’ailleurs, on pense souvent que l’automatisation des tests est un processus coûteux et difficile. Mais ce n’est pas le cas, surtout si vous procédez étape par étape. Et le choix de la suite d’outils est probablement l’une des décisions les plus difficiles à prendre avant la mise en place des tests automatisés. Quel outil sera le plus pertinent, libre d’utilisation et facile à apprendre pour votre projet ?

Pour répondre à cette question, il faut prendre en compte de nombreux facteurs :

  • quel type de tests doit être automatisé ;
  • quel type d’applications doit être automatisé ;
  • quel langage sera utilisé pour les tests ;
  • quels outils supplémentaires seront utilisés ou quels outils sont déjà en place ;

Bien sûr, vous devez également tenir compte de l’environnement et des technologies que vous utilisez sur votre projet, et identifier les membres de l’équipe qui maîtrisent tel ou tel outil.
Ce tutoriel vous aidera à répondre aux questions ci-dessus.

Alors, c’est parti !

Premier facteur.
Quel type de tests fonctionnels doit être automatisé.

Lors du choix d’un outil de test automatisé pour le web, il est important d’identifier clairement vos besoins en matière de tests. Avant tout, le choix dépendra toujours de l’objectif de vos tests. Regardons le tableau ci-dessous.

Type de test Objectif
Tests fonctionnels comme un véritable utilisateur Vous devez tester un système côté frontend depuis l’interface graphique, comme un véritable utilisateur, afin de vérifier que toutes les fonctions fonctionnent correctement
Tests d’interface utilisateur Vous devez tester si des changements ont eu lieu dans l’interface utilisateur.
Tests fonctionnels côté backend (tests d’API) Vous devez tester les fonctions de votre application via des API REST ou SOAP

Les tests fonctionnels sont les plus courants. Mais ces dernières années, les tests d’interface graphique gagnent en popularité, car il est important d’obtenir des résultats non seulement sur l’état fonctionnel du produit, mais aussi sur l’intégrité et l’adaptabilité de son interface.

De plus, toutes les applications web fonctionnent sur le principe client-serveur. Il est donc d’abord très important de les tester au niveau requête-réponse, lequel s’appuie sur les API REST et SOAP, car les tests au niveau des API prennent moins de temps à écrire qu’au niveau de l’interface graphique. Pour mieux comprendre cela, regardez l’image ci-dessous.

Comment choisir rapidement des outils open source pour les tests automatisés d'applications web et mobiles

Deuxième facteur.
Quel type d’applications doit être automatisé.

Le prochain point de contrôle à passer consiste à définir les types d’applications pour lesquelles des tests automatisés seront écrits.

Type d’application Explication
Application web Ces applications fonctionnent dans un navigateur web, autrement dit ce sont des sites web.
Application Android Applications mobiles installées depuis le Google Play Store.
Application iOS Applications mobiles installées depuis l’App Store.
Application Windows Phone Applications mobiles installées depuis le Microsoft Store.

Tous ces types d’applications nécessitent une approche individuelle dans le choix de l’outil d’automatisation.

Les applications web doivent être automatisées avec Selenium WebDriver, car il fournit une interface native pour interagir avec un navigateur, comme un véritable utilisateur. WebDriver est pris en charge par tous les navigateurs les plus utilisés, tels que Mozilla Firefox, Google Chrome, Opera, Internet Explorer, Edge et Safari.

Les applications mobiles natives sur Android, iOS et Windows Phone nécessitent l’utilisation d’Appium avec Selenium WebDriver pour automatiser les applications installées depuis les magasins. Appium fournit une interface pour interagir avec un appareil comme un véritable utilisateur, via le protocole WebDriver, et permet de réaliser des actions telles que toucher, glisser, etc.

Troisième facteur.
Quel langage sera utilisé pour les tests.

Le choix d’un langage de programmation pour les tests automatisés ne doit pas être pris à la légère. Si vous débutez tout juste, prendre le temps d’y réfléchir et d’en discuter vous mettra en bonne position pour réussir.

Une bonne façon de déterminer le langage à privilégier est de répondre à quatre questions simples.

  • Qui sera responsable des tests automatisés ?
  • Quel langage maîtrisez-vous bien, ou quel langage souhaiteriez-vous apprendre ?
  • Quel langage votre équipe de développement utilise-t-elle ?
  • Quelles sont les exigences du client en matière de langage ?

Bien sûr, il existe également d’autres facteurs non techniques, dépendant de la situation.

Si vous n’avez utilisé aucun langage auparavant, ou si vous avez décidé de passer à un autre langage, le graphique statistique suivant (par Spectrum.IEEE) sera d’une grande aide. Il présente le top des langages de programmation pour 2017. Vous pouvez personnaliser la statistique selon vos besoins en suivant le lien ci-dessus.

Top 10 des langages de programmation en 2017

Quatrième facteur.
Quels outils supplémentaires seront utilisés ou quels outils sont déjà en place.

Habituellement, sur les projets, différents outils sont utilisés pour mener à bien le processus de développement. Cela inclut les outils pour :

  • la gestion du cycle de vie des applications ;
  • le déploiement et la construction d’un projet ;
  • le processus d’intégration continue.

Voici une liste de quelques-uns de ces outils :

Outil Exemples
Outils de gestion du cycle de vie Jira, Redmine, Mantis, Bugzilla
Outils de build Maven, ANT, Gradle
Outils d’intégration/déploiement continus Hudson, Jenkins, TeamCity

La diversité de ces instruments doit être prise en compte lorsque vous décidez d’intégrer les tests automatisés à votre projet.

En résumé, pour prendre la décision finale, vous devez :

  • tenir une réunion avec l’équipe projet et discuter des exigences à mettre en œuvre ;
  • obtenir des informations plus approfondies sur les outils utilisés dans le processus de développement ;
  • comparer toutes les exigences et informations avec les outils existants, puis faire un choix ;
  • tester l’outil retenu et analyser les résultats ;
  • ajuster votre suite d’outils en ajoutant ou en supprimant des bibliothèques ou outils connexes.

Pour simplifier ce choix, nous avons préparé le guide simple qui, nous en sommes sûrs, vous mènera à l’outil le plus adapté à votre projet et vous aidera à prendre la bonne direction.

Comment choisir des outils pour l'automatisation des tests - Infographie par QAwerk