Processus de test :
L’automatisation doit être considérée comme un projet en soit et doit suivre, comme pour le test manuel, un processus de test avec comme grandes étapes : la planification, la conception, l’exécution, l’observation ainsi que la gestion des anomalies.

L’automatisation des tests a pour principale fonction de réduire le temps d’exécution des tests entre les cycles de correction et de vérifier des éléments complexes et difficilement réalisables manuellement (exemples : complexité du code, % CPU utilisé, couverture des branchements, test de performance, etc.).
Il est essentiel de consacrer du temps à la planification, en identifiant les scénarios de test, les exigences et les objectifs. Ensuite, la conception des cas de test doit être minutieuse, en prenant en compte les différentes combinaisons de données et les chemins d’exécution possibles. Après l’exécution des tests, il est impératif d’évaluer les résultats obtenus, de vérifier s’ils correspondent aux attentes et de détecter d’éventuels faux-positifs et faux-négatifs. Enfin, toute anomalie doit être corrigée pour améliorer la qualité du logiciel testé. Donc, un test automatisé doit être planifié, conçu, évalué après son exécution, et corrigé s’il ne correspond pas aux résultats attendus.
- Faux positifs
Un faux positif se produit lorsqu’un test signale un défaut qui n’existe pas réellement dans l’objet de test.
En d’autres termes, c’est un test en échec alors qu’il devrait être en succès.
Les tests peu fiables et instables sont souvent sujets à des faux positifs. - Faux négatifs
Un faux négatif se produit lorsque le test ne détecte pas un défaut réellement présent dans l’objet de test.
Cela reflète généralement un défaut de conception.
Les faux négatifs sont plus dangereux que les faux positifs, car ils peuvent laisser passer des anomalies critiques.
À retenir :
Planification -> Conception -> Exécution -> Observation -> Correction
- Un cycle de développement mature permettra de réduire le temps de » planification et conception ».
- Les tests automatisés permettront de réduire le temps d’exécution ».
- Une meilleure qualité permettra rapidement de réduire le temps de » correction ».
Principales activités de test :
Voici un ensemble d’activités qui ne peut être couvert par l’automatisation et qui doit être considéré lors de l’élaboration d’un plan de test. Notez que ce sont aussi les principales responsabilités de l’équipe de test.
Définir les objectifs de test :
- Participer à la revue des besoins d’affaires (ADR - Advanced Design Review)
- Générer la liste des besoins d’affaires
- Identifier les objectifs de test
- Évaluer le plan de travail
- Organiser l’équipe de test
Développer le plan de test :
- Construire la matrice de test
- Rédiger le plan de test
- Définir les environnements de test
- Participer à la revue des exigences (SSR – Software Specification Review)
- Générer la liste des exigences logicielles
Développer les jeux de test :
- Rédiger les procédures de test
- Finaliser la matrice de traçabilité
- Rédiger les preuves de tests unitaires
- Rédiger le calendrier de test
- Participer à la revue de conception (PDR – Preliminary Design Review)
- Vérifier l’installation et/ou installer les environnements
- Amorcer le guide d’utilisation
- Amorcer le guide de formation
Exécuter les tests :
- Recevoir une formation sur le produit logiciel
- Finaliser la préparation aux tests
- Recevoir les preuves de tests unitaires
- Participer à la revue des tests (TRR – Test Readiness Review)
- Exécuter les tests intégrés (TI)
Rapporter les résultats :
- Compléter le registre de test
- Produire le rapport d’avancement
- Produire les métriques
- Générer le rapport de test (TI)
- Effectuer l’Acceptation de module (TI)
- Exécuter les tests de système (TS)
- Documenter les TS
Gérer les anomalies :
- Compiler les anomalies
- Attribuer la sévérité et la priorité
- Effectuer les tests de régression
- Mettre en production (déploiement)
Autres activités de tests :
- Suivi des tests d’acceptation
- Tests de santé
- Suivi post-implantation
- Automatisation (générer/codifier des scripts de test)
Bénéfices de l’automatisation des tests
En plus de réduire le temps d’exécution des tests entre les cycles de correction, de vérifier des éléments complexes et difficilement réalisables manuellement, l’automatisation apporte d’autres avantages indirects :
Le traitement expéditif : pendant que les testeurs vérifient les cas de tests et font la mise à jour, en parallèle le test suivant peut être exécuté par l’outil.
L’accent sur la validation des résultats : les testeurs peuvent prendre plus de temps à faire la validation des résultats du test.
La répétition : les scénarios de base s’exécutent toujours de la même façon.
La constance : l’exécution et les rapports sont constants à travers les différentes exécutions.
Il existe toutefois des inconvénients qui ne sont pas négligeables. L’automatisation des tests se solde souvent par un échec parce que :
- Coûts des outils et des licences élevés.
- L’absence de retour sur l’investissement (ROI).
- Temps de programmation et de configuration.
- Mise à jour de la programmation des scripts de test lorsque l’application est en constante évolution (Problèmes de maintenance).
- L’outil ne vient pas sans une réorganisation de travail (méthodologie de test).
- On exécute uniquement les tests, sans les analyser.
- La non-compréhension des résultats.
- Les faux positifs et les faux négatifs.
- Il faut prévoir des ressources à temps plein pour l’automatisation.
- Il faut prévoir du temps pour réaliser de l’automatisation, c’est un projet en soit.
Les outils doivent permettre aux testeurs de réaliser leur travail plus efficacement et non nuire à leur productivité.
Une sélection réfléchie des outils est nécessaire et doit être encadrée par des règles d’utilisation pour maximiser les chances de succès.
Un outil ne règle pas le problème de qualité d’un produit !
L’automatisation est un processus qui apporte de la valeur en améliorant l’efficacité et la productivité. Cependant, le retour sur investissement (ROI) ne devient vraiment perceptible qu’une fois que vous avez atteint environ 25 % d’automatisation et que vous réutilisez les cas d’essais. Avant ce seuil, les avantages peuvent être moins évidents. En d’autres termes, il faut un certain niveau d’automatisation pour que les bénéfices se manifestent pleinement.
Bien que l'automatisation des tests soit la plus grande tendance actuelle dans le domaine des tests de logiciels, concentrer uniquement votre stratégie sur l'automatisation ne vous garantira pas un processus d'assurance qualité sans faille.
En intégrant diverses méthodes à votre stratégie de test, vous aurez la possibilité de couvrir plus de terrain, notamment le code source non testé, et de mieux identifier les comportements inattendus de votre système ou produit logiciel.
Les tests exploratoires doivent être inclus dans votre stratégie de test, car ils vérifient l'efficacité de vos tests actuels. Ils permettent de découvrir les parties du code ou de votre système qui affectent les performances et l’efficacité d’utilisation ou occasionnent des interruptions du fonctionnement normal. Ils limitent l’accumulation de bogues ou de la dette technique.
Les tests automatisés devraient être :
- Faciles à exécuter
- Simples à écrire
- Simples à maintenir
Effectuer graduellement l’automatisation c’est payant sur le long terme.
Il faut choisir, coder pour développer ou bien coder pour automatiser.
Si vous n’êtes pas capable d’effectuer convenablement des tests manuels, oubliez l’automatisation.
Quels cas de test automatiser ?
Vous ne pouvez pas automatiser chaque scénario de test. D'une part, il est impossible de tout envisager ; d’autre part ce n'est tout simplement pas nécessaire. De plus, si vous utilisez les tests d’automatisation sans réfléchir, cela peut entraîner des coûts plus élevés et des échecs. Il est essentiel de planifier soigneusement l’automatisation pour garantir son succès
Pour les tests d’automatisation, les cas doivent être :
Répétitif en permanence
- Si vous testez une fonction une ou deux fois seulement, elle ne doit pas être automatisée.
- Sélectionnez les fonctions qui nécessitent une vérification et des tests continus.
- Les cas de test choisis pour l'automatisation doivent constituer la base de votre stratégie de tests de régression.
Associés à des risques élevés
- Les analyses de risques peuvent montrer la partie la plus vulnérable et les parties importantes d'un système.
- Les risques associés au facteur humain peuvent être automatisés.
Il peut s'agir de tâches de routine, avec un nombre élevé de données ou de pages à fort trafic Web, ou encore d'un processus de paiement.
Avec une grande variété de données :
- Dans un type de test tel que la régression, les testeurs doivent traiter une énorme quantité de données, car cela nécessite de vérifier les fonctions existantes d'un système après des modifications de code. Tester le code manuellement prendrait des mois, l'automatisation est donc une excellente solution pour les tests de régression.
Efficaces :
- Les tests d'automatisation sont coûteux et le retour sur investissement est un excellent moyen d'évaluer vos efforts et les valeurs de l'automatisation dans des cas particuliers. Le retour sur investissement comprend des mesures telles que :
- Le coût des outils de test logiciel et la formation des nouveaux employés,
- La durée globale des tests,
- Le nombre de bogues et le temps nécessaire à leur élimination.
- Avec le calcul ROI, vous saurez quelles activités de test vous devez automatiser pour obtenir des avantages à long terme.
Conclusion
L'automatisation dans le monde du logiciel est devenue un levier puissant pour accroître l'efficacité, la précision et la rapidité des processus de développement. En automatisant les tâches répétitives et complexes, les équipes peuvent se concentrer sur des activités à plus forte valeur ajoutée, réduisant les erreurs humaines et accélérant les cycles de livraison. Toutefois, pour maximiser ses bénéfices, l'automatisation doit être judicieusement intégrée dans une stratégie globale de test et de développement, en tenant compte des spécificités du projet et des besoins des utilisateurs. Bien utilisée, elle devient un moteur essentiel pour l'innovation et la qualité des logiciels.
Pour aller plus loin :
Qualité : bases et bonnes pratiques des tests logicielsQualité : planifier et exécuter vos activités de tests logiciels
Tests logiciels : implanter une équipe dans l'organisation
Tests logiciels : appliquer les bonnes pratiques en mode agile