Cadre d'automatisation des tests agiles
⚡ Résumé intelligent
L'automatisation des tests agiles applique des contrôles automatisés au sein de sprints courts, où les exigences changent chaque semaine et où une suite de tests conçue pour une publication stable en cascade devient rapidement un fardeau de maintenance plutôt qu'un filet de sécurité.
Tests d'automatisation agiles
Tests d'automatisation agiles L'automatisation des tests consiste à utiliser l'automatisation des tests au sein d'un processus de développement Agile. Son objectif est de rendre le développement logiciel plus efficace et efficient tout en garantissant la qualité et en maîtrisant le temps et les ressources consommés par une version. Les tests étant écrits en parallèle du développement des fonctionnalités, cette pratique repose fortement sur la coordination entre développeurs et testeurs.
Depuis que la méthodologie Agile a entrepris de se débarrasser des réalités laborieuses du modèle en cascade, son influence s'est fait sentir dans tests d'automatisation Les deux disciplines doivent également être combinées délibérément :
Automatisation en cascade vs automatisation en mode agile
Dans un cycle de vie de test logiciel traditionnel, les tests automatisés deviennent possibles une fois que l'application est stable et les exigences sont régléesIl suppose un une quantité considérable de tempsCette solution nécessite des spécialistes en automatisation hautement qualifiés et un coût de mise en place non négligeable. Son objectif principal est de réduire les coûts à long terme et de s'assurer qu'aucun nouveau défaut n'a été introduit dans les cas de test existants.
Les tests automatisés ne sont pas exploratoires par nature.En effet, son rôle principal est de gagner du temps et de réduire les coûts. Il n'est pas conçu pour détecter des défauts nouveaux et innovants. Les tests automatisés confirment principalement des comportements déjà existants.
Les deux contextes imposent donc des exigences très différentes à une suite de tests :
| Facteur | Automatisation en cascade | L'automatisation dans l'agilité |
|---|---|---|
| État de l'application | Stable et validé avant le début de la programmation | Je change à chaque sprint, souvent pendant la phase de script. |
| Le temps disponible | Une phase d'automatisation dédiée | Tout ce qui tient dans un sprint d'une à quatre semaines |
| Qui écrit | Une équipe distincte de spécialistes en automatisation | L'équipe de livraison, les testeurs et les développeurs ensemble |
| Objectif principal | Réduction des coûts à long terme sur une vaste suite de régressions | Retour d'information rapide sur l'incrément qui vient d'être créé |
| Risque de maintenance | Faible, car les exigences évoluent lentement. | Élevée, car les exigences évoluent constamment. |
Comment automatiser dans une méthodologie agile
Par définition, la méthodologie Agile élimine la documentation fastidieuse afin que les nouvelles idées puissent être mises en œuvre rapidement et que les personnes puissent interagir librement. Elle privilégie le travail exploratoire à la paperasserie.
Il existe une réelle contradiction entre les principes fondamentaux de la méthodologie Agile et les tests automatisés. Les équipes Agile la résolvent en restreignant l'objet de leur automatisation plutôt qu'en réduisant son volume : les tests sont écrits lors du même sprint que la fonctionnalité, déployés au niveau unitaire et API où leur maintenance est la moins coûteuse, et exécutés à chaque compilation.
Points fondamentaux pour l'automatisation des tests agiles
Avant de consacrer la capacité d'un sprint à l'automatisation, évaluez les points qui déterminent si un script peut être mené à terme :
- Temps de conception et de codage : Chaque script doit être conçu, codé et revu comme un code de production.
- Validation par rapport aux données de test : Le script final doit être validé avec les données de test existantes avant que quiconque puisse lui faire confiance.
- Objectif du test : Les tests fonctionnels et les tests de régression engendrent des coûts de maintenance et des durées de vie différents.
- Sprint longueur: Un sprint dure de une à quatre semaines, le plus souvent deux, ce qui laisse rarement la place à un effort de script important.
Un deuxième facteur est l'évolution des exigences. L'approche agile est, par définition, une technique permettant de répondre aux changements impulsés par le client ; elle se prête donc à des ajustements fréquents tout au long du développement.
En revanche, les tests automatisés sont surtout utiles face à des exigences stables. Ils se prêtent mal à l'évolution constante d'une méthodologie Agile, c'est pourquoi le choix des éléments à automatiser est plus important que la quantité automatisée.
Outils d'automatisation agiles
La sélection d'un élément pertinent outil d'automatisation Un autre facteur important dans l'adoption des tests automatisés au sein d'une méthodologie Agile est la sécurité. Les outils d'automatisation sous licence, par exemple, imposent des critères d'accès stricts aux différents types et niveaux d'utilisateurs, limitant ainsi l'accès aux ressources du framework de test automatisé.
La méthodologie agile, en revanche, privilégie la collaboration ouverte et les échanges libres entre les membres de l'équipe. Les politiques d'accès restrictives nuisent à cette cohésion et peuvent engendrer des résultats contre-productifs, voire nuisibles à la réussite du projet.
L'objectif prioritaire est de fournir des scripts d'automatisation de qualité dans les délais impartis par une méthodologie Agile. Il convient de choisir avec soin les cas de test candidats afin que les scripts obtenus puissent être réutilisés ultérieurement et finalisés dans les temps.
Même dans un contexte Agile, certains tests restent indispensables, notamment les tests de régression. La section suivante examine les situations où les tests automatisés trouvent leur place et comment chacun s'intègre aux tests Agile.
Tests d'automatisation Concepts Lorsqu'elle est appliquée à l'agilité
Le tableau ci-dessous reprend les sept conditions classiques justifiant l'automatisation d'un test et propose une solution Agile pour chacune d'elles. Seules trois se traduisent directement en un sprint Agile, et toutes trois présentent une structure de type régression :
| # | concept de test d'automatisation | Réponse à la méthodologie Agile |
|---|---|---|
| 1 | Le test doit être répété souvent. | C’est là qu’intervient le concept de tests de régression. |
| 2 | Le déroulement du test et sa validation évoluent et changent lentement au fil du temps. | Inutile pour les tests agiles, car les tests agiles impliquent des changements fréquents dans les exigences. |
| 3 | Le test valide un processus métier ou un flux de travail, et non l'apparence, les couleurs ou la mise en page des tableaux. | Ce scénario peut être considéré comme impliquant des tests manuels. |
| 4 | Le test produit des résultats destinés à un organisme de réglementation qui exige que ces résultats soient enregistrés et archivés électroniquement comme preuve formelle de conformité. | Ne convient pas à la méthodologie Agile, car un niveau de documentation exhaustif ne fait pas partie de cette méthodologie. |
| 5 | Le test est très répétitif ou comporte de nombreuses étapes qui doivent être effectuées exactement de la même manière à chaque fois, ce qui nécessite d'éviter la fatigue de l'opérateur manuel. | Ne convient pas à la méthodologie Agile. |
| 6 | Le résultat (réussite ou échec) du test est relativement facile à déterminer et à enregistrer avec l'outil d'automatisation sélectionné. | Convient aux tests de régression effectués lors des tests Agile, qui nécessitent des compétences répétitives et laborieuses. |
| 7 | Le test doit générer une quantité importante de données pour l'application. | Peut être intégré comme test de régression. |

.jpg)


