Automatisation de test vs Test Manuel

5 Avril 2019
Testing
AUSY participera à la Journée Française des Tests Logiciels le 9 avril prochain. A cette occasion, nous vous proposons un retour d’expérience sur les tests automatiques, la solution d’automatisation choisie ainsi que les coûts d’investissement de cette nouvelle méthode de travail.

L’évolution des méthodes de développement grâce à l’agilité et plus récemment DevOps nécessite de se poser de nouvelles questions sur les processus de tests. Il est nécessaire de tester plus pour suivre les itérations de développement, et mieux, compte tenu du périmètre élargi.

Automatiser les tests permet ainsi de limiter les coûts d’exécution et les risques. L’automatisation réduit également les délais grâce à une plus grande rapidité d’exécution et une parallélisation des tests.

Les bonnes pratiques DevOps et l’agilité impliquent effectivement cette réduction de délai entre l’expression du besoin par le Métier et son ouverture en exploitation. L’automatisation des tests et donc la réduction de leur délai d’exécution participe à la réduction globale du délai de livraison. A cela s’ajoute la possibilité de jouer les tests en dehors des heures ouvrables.

De plus, la qualité applicative globale des tests n’en est qu’améliorée grâce à une couverture fonctionnelle plus large et mieux adaptée, une exécution de tests à chaque livraison et une diminution des erreurs humaines de répétitions et d’interprétation. Les testeurs peuvent être lassés par ce rejeu perpétuel, qui est évité grâce à l’automatisation. Le temps disponible des testeurs serait ainsi redistribué et alloué à des tests à forte valeur-ajoutée (tests de bout en bout, tests aux limites, tests métier complexes…).

Tout cela engendre un gain pour le projet dans son entièreté car certains scripts automatisés peuvent être utilisés par les autres équipes intervenantes et lors de plusieurs phases du projet. Par exemple, les équipes de développement et intégration peuvent réutiliser les scripts automatisés pour les tests d’intégration, les tests vitaux ou des tests de charge. De leur côté, les équipes de production/pré-production les réutiliseront pour leurs tests de performance ou tests de charge et des tests de validation. Plus un script est réutilisé pour d’autres tests, plus le retour sur investissement est important.

 

Solution d’automatisation de test

AUSY préconise la solution RobotFramework pour l’automatisation des tests.

Schéma Robotframework

 

En effet, cette solution, puissante et complète du fait de sa capacité à intégrer des bibliothèques tierces, bénéficie d’une IDE (interface de développement) qui n’est pas restreinte. Il est donc possible de développer les tests sur plusieurs outils différents (RIDE, Eclipse, etc). Multiplateformes, RobotFramework dispose d’une architecture permettant de mélanger plusieurs technologies dans le même test (mots clés, python, java, etc). De plus, sa communauté importante aide à la recherche de solutions pour des problèmes techniques et en fait un outil connu et usité.

Cette solution d’automatisation peut être intégrée facilement aux outils de test tels que Squash ou JIRA. Des rapports et bilans de campagne de tests automatisés (tests de non-régression) pourront ainsi être intégrés automatiquement dans le référentiel de test global.

 

Stratégie d’automatisation

L’intérêt d’automatiser un test est plus élevé s’il est souvent joué, c’est-à-dire en cas d’exécution lors de multiples livraisons, sur plusieurs environnements, ou avec différentes bases de données par exemple.

Avant d’automatiser un test, il faut ainsi se questionner sur la faisabilité technique du périmètre fonctionnel à automatiser. Le testeur évalue cela lors de la phase de cadrage et de conception des tests. Les raisons de ne pas automatiser un cas de test peuvent être liées à la complexité métier du cas, au développement spécifique nécessaire ou à la pertinence de la fonctionnalité à tester en production (volumétrie, fréquence…).

Nos retours d’expériences en automatisation de test permettent de souligner l’importance des prérequis à l’automatisation des tests.

La première attention est à porter au préalable sur la stabilité de l’environnement de test. En effet, dans une volonté d’améliorer l’efficacité des tests automatisés, un environnement stable dédié à chaque campagne garanti l’intégrité des résultats. Un environnement « copie de production » (pré-production) est de plus préconisé pour les tests de non-régression (TNR).

Le second point d’attention porte sur la fiabilité et la stabilité des données de test pour la construction de la population de test. Des données de tests fiables sont nécessaires pour garantir la conformité des résultats de tests obtenus lors des campagnes de TNR. Une base de données dédiée aux tests automatisés garantit la non-corruption des données par les tests manuels.

Enfin, il est important de se conformer aux prérequis sur les développements applicatifs :

  • Les équipes de développement doivent avoir conscience des tests automatisés effectués sur l’application qu’elles développent.
  • Les bonnes pratiques de codage des applications doivent être généralisées et appliquées par tous.
  • Le partage d’informations entre développeurs et testeurs est également essentiel au quotidien, pour l’analyse d’impact des modifications applicatives sur les scripts d’automatisation.

 

En connaissance de cause, AUSY met de plus en place des bonnes pratiques sur ses projets d’automatisation comme la maîtrise du processus manuel de test avant d’automatiser. Ces tests manuels permettent d’appréhender les difficultés fonctionnelles, techniques ou celles concernant les données.

AUSY préconise enfin la mise en place d’une équipe complète pour ses projets d’automatisation. D’un côté, l’automaticien va participer aux études d’impact, développer et maintenir les scripts, exécuter les campagnes de test automatisées et être garant du bon fonctionnement technique de la solution d’automatisation et des environnements de test. Le pilote de test va organiser, planifier et suivre l’avancement des projets d’automatisation. Il doit avoir une forte connaissance des enjeux de l’automatisation des tests pour remonter et exploiter au mieux les indicateurs d’efficacité. Enfin, le référent fonctionnel et Métier peut assister le pilote de test pour analyser les résultats et aider l’automaticien pour assurer la bonne exécution des tests automatisés.

 

Les collaborateurs AUSY, dans le souci d’augmenter leur niveau de maturité sur le sujet, sont régulièrement sensibilisés aux nouvelles méthodes et outils de test et d’automatisation. De plus, étant constamment en veille technique et participant activement à la diffusion de l’information sur les sujets les concernant, ils sont en mesure de contribuer à la montée en compétence de l’ensemble des équipes intervenant sur des projets d’automatisation (client, autres…).

 

Comparaison des coûts entre tests manuels et automatisés

Un aspect essentiel à prendre en compte lorsque l’on souhaite estimer le coût effectif des tests automatiques est l’implémentation de la solution d’automatisation, de son infrastructure, du coût de formation et du coût initial de l’implémentation.

Comment concevoir un produit qualitatif à forte valeur ajoutée tout en réduisant le time to market ?

Parmi les coûts pris en compte dans ce calcul, on retrouve les coûts directs et indirects. Les coûts directs regroupent le coût de licence des outils d’automatisation, le coût de l’infrastructure, de formation de l’équipe et le coût spécifique de l’automaticien, de la création éventuelle du Framework de test, de la création des jeux de données, de la création des scripts et de leurs maintenances. Quant aux coûts indirects, on y inclue les anomalies non détectées et la gestion des faux positifs.

 

Ci-dessous, un exemple de calcul de coûts pour l’automatisation de 100 cas de test sur un périmètre de test stable :

 

Tableau comparatif de coûts J/H

  1. Calcul du coût de test manuel
  • Conception des tests

100 cas de test (20 cas simples, 60 cas moyens, 20 cas complexes)

Selon des abaques pris en retour d’expériences sur les projets AUSY, le coût de la conception = 48 j/h

  • Exécution des tests manuels

Selon les mêmes hypothèses, une campagne de test exécutée manuellement revient à 31 j/h

  • Maintenance des tests

Le coût de mise à jour de la conception des tests est évaluée à 1 j/h par campagne de test

  1. Calcul du coût de test automatique
  • Conception des tests

Il s’agit ici de créer les scripts automatisés. Selon les mêmes hypothèses que pour les tests manuels, le coût de création des scripts automatisés est évalué à 168 j/h

  • Exécution des tests automatiques

La première campagne de test exécutée en automatique est évaluée à 12 j/h

Une campagne de test exécutée automatiquement revient à 7 j/h à partir de la seconde exécution

  • Maintenance des scripts automatisés

Le coût de mise à jour des scripts automatisés est évalué à 5 j/h par campagne de test

Courbes de coûts tests manuels vs tests autos

Sur la base de ces hypothèses et des calculs effectués, et sans tenir compte du coût d’installation et de paramétrage de la solution d’automatisation, nous pouvons estimer que l’on atteint un coût égal aux coûts en situation de test manuel à la 6ème campagne de tests automatisés.

AUSY évalue, en retour d’expérience, à 30% le gain de productivité au bout de la 12ème campagne. Si on réalise 1 campagne de test par mois, nous obtenons donc 30% de gain à la fin de l’année.

 

En conclusion, dans un monde où les projets sont de plus en plus flexibles et agiles, il est nécessaire d’envisager l’automatisation des tests, sur un environnement stable, comme un investissement qui permettra une amélioration de la qualité et une réduction du time to market.

 

Aussi n’hésitez pas à visiter notre page web dédiée aux Tests Logiciels.

Parlons ensemble de vos projets.

contact