Les tests automatisés : un accélérateur des mises en production

Aujourd’hui, les applications web et mobiles font désormais partie de notre quotidien. Les consommateurs sont devenus exigeants et les entreprises doivent être en mesure de répondre en temps réel aux besoins de leurs utilisateurs.
Pour ce faire, les entreprises optent pour de nouvelles méthodes de gestion de projet informatique. On les appelle plus communément « méthodes Agiles ». Elles permettent de répondre plus rapidement aux besoins des utilisateurs finaux en livrant, fréquemment, de façon itérative, de nouvelles fonctionnalités en production.
Ces livraisons fréquentes et itératives devraient apporter davantage de satisfaction aux utilisateurs mais ce n’est pas toujours le cas. En effet, parfois, à trop vouloir bien faire et rapidement, on n’en vient à négliger la qualité: pour livrer plus rapidement en production, le temps est économisé sur les phases de tests, soit :
- En ne testant qu’une partie des dernières fonctionnalités développées
- En n’effectuant pas les tests après l’ajout des correctifs
- En n’effectuant pas les tests de l’ensemble des fonctionnalités développées
Ces recettes fonctionnelles bâclées engendrent bien souvent des incidents en production qui viennent compromettre les bénéfices escomptés. A titre d’exemple, selon une étude de medium.com, 40% des internautes abandonnent un site web si le chargement prend plus de 3 secondes, alors imaginez le résultat lorsque celui-ci comporte une anomalie. Mais alors comment développer des nouveautés rapidement et pousser en production au plus vite sans en négliger la qualité ?
Pour assurer la qualité d’une application web ou mobile, surtout grand public, il faut tester et s’assurer que tout fonctionne correctement, sans anomalie et avec des temps de réponses acceptables.
Les entreprises doivent également considérer la multitude de navigateurs, d’ordinateurs, de smartphones et de versions qui existe aujourd’hui car une application web ne réagira pas tout le temps de la même manière sur Internet Explorer et sur Chrome ; de même, une application mobile n’aura pas toujours le même comportement avec un iPhone X qu’avec un Samsung Galaxy, par exemple. Dans l’idéal, l'application devrait donc être testée sur des navigateurs, des téléphones et des versions différents.
Quand le temps devient l’ennemi des tests.
Effectuer des tests qui couvrent l’ensemble du périmètre fonctionnel, cela prend du temps, parfois beaucoup de temps !
Cela en devient forcément une problématique.
Concernant les tests fonctionnels, il existe 3 niveaux de granularité :
Le minimum : tester les nouvelles fonctionnalités développées sur: l’un des navigateurs les plus utilisées par les consommateurs dans le cas d’une application web ; ou l’un des smartphones les plus utilisés par les consommateurs dans le cas d’une application mobile. Cette solution n’est pas des plus optimales et signifie que l’entreprise est prête à prendre un gros risque quant au succès de la mise en production.
Le plus commun : Ce niveau reprend les éléments de la solution minimale mais en testant également les anciennes fonctionnalités afin de vérifier que celles-ci n’aient pas été impactées par les nouveaux développements. On appelle cela, les tests de non-régression. Cette solution est souvent appliquée même si le risque d’échec de la mise en production reste élevé.
L’idéal : Tester l’ensemble des fonctionnalités de l'application, sur différents navigateurs, ordinateurs, systèmes d’exploitation, smartphones et sur différentes versions afin de couvrir quasiment l’ensemble des cas possibles.
Par faute de temps, de ressources dédiées et donc dans un souci de rentabilité, rares sont les entreprises qui optent pour cette solution.
En fonction du temps alloué et des ressources disponibles pour effectuer ces phases de recettes fonctionnelles, les entreprises vont opter pour tel ou tel niveau de granularité tout en essayant de tendre au maximum vers la dernière option : le cas idéal.
Le « cas idéal » engendre donc des phases de recette longues et coûteuses, surtout si celles-ci sont réalisées entièrement par des humains.
Le robot, le meilleur ami de l’homme.
Depuis quelques années, de nombreuses entreprises s’interrogent sur la mise en place de robots pour effectuer les tâches les plus chronophages et à faible valeur ajoutée, comme certains tests fonctionnels, pour les applications pérennes, afin de gagner en efficacité mais également afin de réduire les erreurs humaines.
Le robot dispose de plusieurs avantages. En effet, il peut être disponible 24h/24 et plus rapide qu’un être humain dans l’exécution des tâches. Si l’on considère qu’un robot effectue ses tâches à la même vitesse qu’un être humain, il peut réaliser presque 5 fois plus de tâches sur une semaine comparé à ce dernier, s'il ne travaille que 35 heures*.
C’est pour cela que de plus en plus d’entreprises investissent dans la mise en place de solutions de robotisation des tests fonctionnels afin de réduire au maximum le risque d’anomalies en production.
En effet, toujours d’après une étude de medium.com, un tel investissement permettrait de diviser par 3 le temps des campagnes de tests et le taux de rentabilité d’un tel dispositif serait de 75%, en moyenne.
Il existe plusieurs solutions « clés en main » comme Ranorex, Katalon, Xamarin, UiPath et bien d’autres, qui proposent un large choix d’outils qui permet de développer des tests automatisés basiques sans qu’aucune connaissance technique ne soit nécessaire.
Ces solutions sont généralement payantes, comportent un support pour assister leurs utilisateurs et permettent de choisir différentes configurations de test comme le navigateur, le type de téléphone, parfois même la version, etc.
D’autres solutions dites « open source » sont disponibles sur le marché, comme Sélénium ou Appium, mais destinées à un public plus averti, généralement de développeurs spécialisés. Elles sont gratuites et personnalisables mais nécessitent de fortes compétences techniques.
Pour conclure, même si la mise en place de tests automatisés permet de réduire considérablement le temps d’exécution des phases de recette fonctionnelle et de couvrir un périmètre fonctionnel plus important, et ce, avec différentes configurations (navigateur, type de mobile, version de mobile, ...), l’humain reste irremplaçable.
Seule la complémentarité entre tests manuels et automatisés permet de réduire et sécuriser les mises en production afin d’obtenir une qualité d'application optimale pour satisfaire le plus grand nombre d’utilisateurs. La rapidité des mises en production permet généralement aux entreprises d’avoir une longueur d’avance sur leurs concurrents.
Le sujet vous intéresse ? Nos experts vous répondent

Dans un contexte qui évolue en permanence, notre offre d'accompagnement au déploiement propose plus de 30 ans d'expérience dans le domaine et maintient une indépendance vis-à-vis des éditeurs et progiciels.
