1. Livres & vidéos
  2. Les tests logiciels
  3. Introduction à l'automatisation des tests
Extrait - Les tests logiciels  Processus et outils pour des logiciels de qualité
Extraits du livre
Les tests logiciels Processus et outils pour des logiciels de qualité
1 avis
Revenir à la page d'achat du livre

Introduction à l'automatisation des tests

Objectifs

L’automatisation des tests consiste à créer des scripts automatisés qui exécutent automatiquement des tests sur l’application ou le logiciel.

L’automatisation n’est pas une pratique systématique, cela veut dire que l’on ne doit pas automatiser n’importe quel test, n’importe quand.

La stratégie d’automatisation résulte de l’analyse d’un ensemble de conditions et de critères qui vont conduire à choisir ou non d’automatiser les tests ainsi qu’à choisir les tests à automatiser.

L’automatisation des tests est un investissement, elle se doit d’être performante et intelligente.

L’automatisation d’un test consiste à automatiser chacune de ses étapes. Les étapes doivent être soigneusement détaillées. Surtout, privilégiez des cas de tests avec un nombre de pas raisonnable. Plus le test contient d’étapes, plus son automatisation devient coûteuse et plus sa maintenabilité fastidieuse.

Dans la sélection des tests à automatiser, il faut prioriser des tests qui peuvent fournir une valeur rapide avec un investissement minimal. Il faut également limiter l’automatisation des scénarios longs ou les tests dits de bout en bout au juste nécessaire comme pour valider un processus métier critique...

La démarche de l’automatisation

1. Principes

Une bonne stratégie d’automatisation permet de réduire les coûts tout en continuant à produire. S’appuyer sur l’automatisation pour industrialiser les tests de non-régression, permet de réduire considérablement le temps et le coût d’exécution des tests.

Les tests automatisés peuvent être lancés autant de fois que nécessaire, et sur plusieurs environnements et plusieurs plateformes. Cela permet de réutiliser les scripts et de produire un volume plus grand de tests.

Il arrive, en effet, pour les applications web par exemple, que pour une même campagne de test, les tests soient rejoués plusieurs fois sur différents navigateurs. Nous avons le même cas avec les applications mobiles où les tests doivent être validés sur un ensemble de terminaux (tablettes, smartphones…). L’apport de l’automatisation dans ces types de situations est notable. 

Le Shift-left

Les tests peuvent aussi être lancés le plus tôt possible, c’est le principe du Shift-left.

Le Shift-left est un concept dans le développement logiciel qui consiste à déplacer les activités de test et de qualité le plus tôt possible dans le cycle de vie du développement. Cette approche vise à identifier et à corriger les problèmes dès les phases en amont du projet au lieu d’attendre les étapes de test finales.

Le terme vient du fait que, dans le diagramme du modèle de développement logiciel en V, les activités de test se situent toujours vers la droite. L’objectif est de déplacer ces activités vers la gauche, encourageant ainsi la détection précoce d’anomalies et l’implication au plus tôt...

Les critères d’éligibilité à l’automatisation des tests

Avant de se lancer dans une démarche d’automatisation, il faut s’assurer que le projet répond aux critères d’éligibilité à l’automatisation. Voici une liste de critères, à vérifier avant de sauter le pas :

  • Le nombre de mises en production du logiciel ou de l’application par an.

  • Si un logiciel est développé pour une mise en production unique sans perspective d’évolution, ou si les demandes dévolutions se font très rares, l’automatisation des tests n’est pas rentable car la fréquence d’exécution du patrimoine de tests de non-régression sera très basse.

  • le nombre d’utilisateurs du logiciel.

  • La nécessité d’exécuter régulièrement les tests.

  • La criticité des fonctionnalités.

  • La stabilité de l’architecture des composants et nombre d’interfaces.

  • Le retour sur investissement.

  • La faisabilité technique.

Le ROI (retour sur investissement)

Le ROI permet de définir à quel moment l’automatisation devient plus rentable que l’exécution manuelle répétée. Il sert à évaluer le temps nécessaire pour rentabiliser le temps investi dans l’automatisation des tests

Plus les tests automatisés sont réexécutés, plus l’investissement initial nécessaire à leur conception et à leur mise en place est amorti. En d’autres termes, le retour sur investissement (ROI) de l’automatisation augmente avec chaque nouvelle exécution.

Par exemple, un script d’automatisation qui a demandé deux jours de développement peut sembler coûteux au départ. Mais s’il est intégré dans une chaîne d’intégration continue et rejoué automatiquement à chaque déploiement (parfois plusieurs fois par semaine), il permet de détecter rapidement les anomalies sans intervention manuelle, ce qui représente un gain de temps et de fiabilité considérable.

Sur le long terme, les bénéfices s’accumulent : réduction du temps de test, détection précoce des régressions, amélioration de la qualité logicielle et libération des équipes de test pour se concentrer sur des scénarios plus complexes ou innovants. À l’échelle d’un projet ou d’un produit maintenu sur plusieurs mois ou années, l’automatisation des tests devient alors un levier de productivité et d’optimisation des coûts particulièrement efficace.

Voici les facteurs influençant le ROI de l’automatisation des tests :

  • Le périmètre qui correspond aux nombres de tests automatisés.

  • Le développement des scripts de test : la création initiale des scripts de test demande un investissement en temps.

Dans le calcul du ROI, il faut prendre en compte les efforts supplémentaires suivants :...

Outils d’automatisation des tests

Il existe aujourd’hui sur le marché, une multitude d’outils d’automatisation des tests adaptés à différents types de tests, comme les tests fonctionnels, les tests de charge, les tests de performance ou les tests de sécurité.

Il existe aussi des outils d’automatisation adaptés à chaque type d’application comme les applications web, les applications mobiles et les clients lourds.

Voici une liste d’outils utilisés aujourd’hui pour automatiser les tests fonctionnels pour des applications web et mobile :

  • Sélénium est l’un des outils les plus populaires pour l’automatisation des tests d’applications web. Il prend en charge plusieurs langages de programmation comme Java, Python et C#. Sélénium est compatible avec les navigateurs Chrome, Firefox et Edge.

  • Cypress est conçu principalement pour les tests front-end c’est-à-dire des tests exécutés depuis les interfaces Homme-machine des applications web. Il est simple à configurer et offre une bonne intégration avec les Framework JavaScript.

  • Appium est un outil open source pour automatiser les tests d’applications mobiles avec des systèmes iOS ou Android, ainsi que des applications web mobiles. Il permet d’écrire des tests en plusieurs langages comme Java, Python et...