BLOG

Quel est l’intérêt des tests automatisés ?

Les systèmes d’information sont amenés à évoluer régulièrement de par la nécessité d’intégrer de nouvelles applications, de les mettre à jour ou de mettre en œuvre les évolutions à la demande des différentes entités métiers de l’entreprise. Les stratégies digitales d’omni canal accélèrent encore un peu plus les besoins de transformation des systèmes d’information qui doivent intégrer, de plus en plus, d’applications hétérogènes dans des délais de plus en plus bref.

Comment dans ces conditions assurer la fiabilité des systèmes d’information ?

Il faut le tester afin de vérifier que les modifications n’ont pas apporté d’instabilités ou d’anomalies, aux conséquences parfois imprévisibles.

En informatique aussi, un battement d’ailes d’un papillon peut provoquer une tornade. Exemples récents, près d’un million de clients d’un producteur d’électricité se sont vus prélever deux fois leur facture…, un organisme hospitalier perd 80 millions d’euros de factures impayés suite à un changement de système informatique…

Ces deux exemples illustrent à quel point les tests, et plus particulièrement les tests de non régression, sont cruciaux pour les entreprises. Pourtant, ils sont quelques fois négligés car chronophages et fastidieux pour les équipes. De plus, la phase de test de non régression est en bout de chaîne de tous projets menés en mode classique ou agile, donc soumise aux contraintes fortes des plannings et du budget.

Les tests de non régressions automatisées prennent, alors, tout leur sens.

Une fois opérationnel, l’automatisation présente de nombreux avantages :

  • Le gain de temps dû à un allègement de la charge de travail des équipes.
  • L’augmentation de la productivité.
  • La fiabilité et la qualité des tests effectués,
  • L’accroissement du niveau de complétude des tests réalisés,
  • La démobilisation des équipes sur les tâches répétitives au profit de tâches à plus grande valeur ajoutée (Analyse des résultats, définition des cas de tests, planification…).

Mais comment automatiser les tests fonctionnels ?

Attachons-nous, tout d’abord, au fonctionnement d’un robot de test.

Aux premiers abords, le fonctionnement d’un automate de tests semble très simple. De ce fait, les avantages paraissent évidents pour les propriétaires d’un tel outil.

Beaucoup voient l’automate de tests comme un robot qui effectue des actions réalisées par un utilisateur via un outil de recording (enregistrement du mouvement de la souris, de clics de souris, etc.) et les répète à volonté.

Les scénarios de tests peuvent ainsi être réalisés à l’infini sans surveillance (donc le soir ou pendant les jours non ouvrés). Une fois l’ensemble des cas de tests joués par le robot, celui-ci produit un rapport d’exécution qui permet d’analyser les tests effectués.

Toutefois, dans la réalité, avant de pouvoir jouer des cas de tests « tout seul », le robot de tests nécessite d’être paramétré et les scénarios de tests codés. Ces tâches requièrent bien souvent de solides connaissances en développement.

D’un point de vue technique, les automates de tests fonctionnent par reconnaissance d’objets des interfaces homme-machine (boutons, listes déroulantes, etc.) qu’ils stockent dans un répertoire.

En mode « enregistrement » (Via un outil de recording), ils capturent les interactions réalisées sur des objets lors du déroulement du scénario de test. Un script (un programme) est ainsi généré automatiquement dans le langage de référence de l’outil utilisé.

Cependant, afin d’obtenir des résultats de tests structurants, il est nécessaire d’introduire des points de vérification/contrôle, des points de synchronisation/d’attente et autres résultats attendus directement à l’intérieur du programme et, parfois, de corriger des parties de programmes écrits automatiquement par l’outil de recording.

Bien souvent, ces actions doivent être programmées manuellement (en codant des scripts) car on atteint vite les limites du mode « enregistrement » du robot de tests.  

Une fois l’ensemble des cas de tests traduits sous forme de script, on peut enfin activer le mode exécution, le robot joue alors les différents scénarios de tests à partir de ce script avec les données choisies par le testeur.

Par conséquent, il faut bien garder à l’esprit que le robot de tests reste un outil complexe à utiliser.  Le niveau de complexité de l’outil varie fortement en fonction du robot adopté. En effet, le langage supporté par l’outil et les fonctionnalités qu’il propose sont des facteurs structurants à ne pas négliger lors du choix définitif.

 

Remarque : l'automate de tests fonctionnels diffère d'un outil de test de charge et de performance. En effet, il ne permet pas de mesurer les temps de réponse d’une application ni sa montée en charge. Il a pour objectif de réaliser des tests de non régression ou des tests fonctionnels.

Comment choisir ses automates de tests, c’est ce à quoi nous répondrons dans un prochain article. 

Pour en savoir plus sur TeNor , n’hésitez pas à contacter OCSI.

OCSI


Articles similaires