Les tests automatiques: Introduction

Publié dans: 

L’exécution des scénarios de tests fonctionnels peut être manuelle ou automatique. Le choix du type de l’exécution dépend du produit, de la  fonctionnalité à tester, et de la stratégie de recette.
Pour trancher sur la nécessité de passer du manuel à l’automatique, il faut étudier la rentabilité de l’automatisation. Cela revient à étudier la charge nécessaire pour développer et exécuter le script d’automatisation par rapport à l’apport de l’automatisation.

Rentabilité

La rentabilité de l’automatisation peut être mesurée à travers le Retour Sur Investissement (RSI). La formule générale de calcul du RSI est indiquée ci-après :

RSI=  (gain de l’investissement – coût de l’investissement) / coût de l’investissement

Le calcul du RSI n’est pas assez évident pour les tests automatiques. En effet, le coût de l’investissement est calculable, mais le gain de l’investissement peut ne pas être tangible.

 

Le coût de l’investissement est l’addition des besoins hardware et software et de la charge de travail. Pour être concret dans les calculs, il faut tenir compte des coûts:

  • des outils de développement et d’exécution des scripts de tests.

  • des machines nécessaires pour l’exécution des scripts de tests.

  • de la charge de choix des scénarios à automatiser et leurs implémentations.

  • de la charge d’analyse et de reporting pour chaque campagne de tests lancée.

  • de la formation nécessaire pour l’équipe qualité sur l’automatisation des tests fonctionnels.

En revanche, le gain de l’automatisation des tests n’est pas palpable immédiatement et parfois non convertible en termes monétaires. Les bénéfices de l’automatisation s’étalent sur la durée de vie du produit logiciel en partant des premières itérations jusqu’à la sortie de la succession de versions et des mises à jours.

Avantages de l’automatisation

L’automatisation des tests fonctionnels est bénéfique pour toutes les parties prenantes et elle a un impact sur les différentes phases du produit logiciel.

Impact sur l’équipe qualité

Étant l’équipe la plus concernée par les tests automatiques, l’équipe qualité peut bénéficier le plus des avantages de l’automatisation des tests dans la gestion et planification des projets et ce à travers les différents facteurs détaillés ci-après.

  • Réutilisabilité des tests: les tests automatiques peuvent être paramétrés et modifiés selon les données du GUI du produit. Ainsi, le code ou le script de test peut être réutilisé si une approche se répète dans plusieurs modules du produit.

  • Réduction des charges: une fois mis en place, les tests automatiques peuvent être lancés sans aucune assistance humaine. Ainsi on aura gagné le temps nécessaire pour la réexécution manuelle des tests. Cette réduction de charges à travers un automate peut être traduite par un gain considérable dans le budget-projet.

  • Développement des capacités: déléguer des tâches répétitives à un automate permettra de libérer un temps considérable pour l’équipe qualité. Ceci pourra laisser plus de marges pour les membres de l’équipe pour plus de créativité dans la rédaction des tests et dans l’organisation de travail.

  • Construction de la base de tests: pour certains produits, l’équipe de qualité devrait réinitialiser la base de tests à chaque nouvelle livraison. Ceci présente parfois une charge non négligeable: création de plusieurs profils, de plusieurs éléments, etc.
    Pour ce faire, l’équipe de test peut exploiter les outils d’automatisation pour mettre en place une suite de tests dédiée à la construction d’une base de tests.

  • Traçabilité de la campagne de test: la qualité de l’exécution manuelle des tests dépend étroitement de son exécuteur. Cependant les automates exécutent les suites de tests conformément aux paramétrages et aux scripts, et préservent l’historique de l’exécution. Ainsi, les chefs d’équipes peuvent assurer un suivi fiable de la qualité d’exécution des tests.

Impact sur le produit

L’automatisation des tests peut avoir un impact sur le produit logiciel : son niveau de qualité, sa conformité aux attentes du client et de l’éditeur, etc. J'ai résumé les différents impacts dans les résultats détaillés ci-après. 

  • Amplifier la convergence: autant de fonctionnalités on teste, au mieux on aura intercepté les anomalies potentielles et par la suite on augmente la convergence du produit.
    Partons de ce fait, l’équipe de qualité pourra exécuter les suites de tests automatisées suite à toute modification susceptible de produire des régressions. Ainsi, elle pourra intercepter les anomalies et les fonctionnalités valides.

  • Détection précoce des anomalies: l’équipe de qualité pourra planifier l'exécution des tests automatiques pour chaque livraison de l’équipe R&D. Ceci permettra de détecter les éventuelles anomalies et régressions d’une façon précoce et offrir trois faveurs à l’équipe R&D :
    o   épargner l’équipe R&D des rollbacks lors du traitement des bugs.
    o   éviter le cumul des anomalies non détectées durant une succession de livraisons.
    o   éviter les bugs filés : un dysfonctionnement causé par plusieurs bugs.

  • Simulation des tests de charge: les scénarios de tests peuvent être exploités pour simuler une utilisation excessive du produit. Cette simulation peut être exploitée pour évaluer l’utilisabilité et la robustesse du produit dans les conditions effectives du produit.

Dans le prochain post, intitulé "Les tests automatiques: Best practices", je m’intéresserai aux recommandations pratiques pour les projets d’automatisation de tests fonctionnels.