Test Agile - Outils
Dans les projets Agile, les testeurs sont responsables des tâches quotidiennes suivantes -
Soutenir les développeurs dans le codage, avec des clarifications sur le comportement attendu du système.
Aider les développeurs à créer des tests unitaires efficaces et efficients.
Développer des scripts d'automatisation.
Intégrez des outils / scripts de test d'automatisation avec une intégration continue pour les tests de régression.
Pour une mise en œuvre efficace et rapide de ces tâches, un système d'intégration continue (CI) qui prend en charge le CI de code et les composants de test est utilisé dans la plupart des projets Agile.
Les testeurs et les développeurs de projets agiles peuvent bénéficier de différents outils pour gérer les sessions de test et pour créer et soumettre des rapports d'anomalies. En plus des outils spécialisés pour les tests agiles, les équipes agiles peuvent également bénéficier d'outils d'automatisation et de gestion des tests.
Note - Les solutions d'automatisation d'enregistrement et de lecture, de dernier test, de poids lourd et de test ne sont pas agiles car -
Le flux de travail test-last encouragé par de tels outils ne fonctionne pas pour les équipes Agile.
Les scripts non maintenables créés avec de tels outils deviennent un obstacle au changement
Ces outils spécialisés créent un besoin de spécialistes de l'automatisation des tests et favorisent ainsi les silos
Les outils largement utilisés sont -
S.No. | Outil et objectif |
---|---|
1 | Hudson Cadre CI |
2 | Selenium Test fonctionnel - intégré à Hudson |
3 | CruiseControl Cadre CI |
4 | Junit Test unitaire Java |
5 | Nunit Test d'unité .Net |
6 | Cobertura / JavaCodeCoverage / JFeature / JCover / Couverture des tests Java |
sept | Jester Java - Test de mutation / amorçage automatique des erreurs |
8 | Gretel Outil de surveillance de la couverture des tests Java |
9 | TestCocoon C / C ++ ou C # - réduit le nombre de tests en trouvant des tests redondants et trouve du code mort |
dix | JAZZ Java - Branche, Node et Defuse Coverage et implémente une interface graphique, des planificateurs de test, une instrumentation dynamique et un analyseur de test |
11 | Ant Java - Construction d'automatisation |
12 | Nant .Net - Construction d'automatisation |
13 | Bonfire Module complémentaire Agile Testing pour JIRA |
Outils d'automatisation de tests agiles
Prise en charge des outils d'automatisation de test Agile efficaces -
Automatisation précoce des tests en utilisant une approche test-first.
Rédaction de code d'automatisation de test en utilisant des langages réels, des langages spécifiques au domaine.
Se concentrer sur le comportement attendu du système.
Séparer l'essence du test des détails de mise en œuvre, le rendant ainsi indépendant de la technologie.
Favoriser la collaboration.
Les tests unitaires automatisés (utilisant Junit ou NUnit) prennent en charge l'approche test-first pour le codage. Ce sont des tests en boîte blanche et garantissent que la conception est saine et qu'il n'y a aucun défaut. Ces tests sont élaborés par des développeurs avec le soutien de testeurs et peuvent être indépendants de la fonctionnalité requise. Cela se traduit par la livraison d'un produit qui peut ne pas répondre aux exigences des clients et donc sans valeur commerciale.
Ce problème est résolu par l'automatisation des tests d'acceptation qui sont rédigés avec la collaboration du client, d'autres parties prenantes, des testeurs et des développeurs. Les tests d'acceptation automatisés sont rédigés par les clients ou les propriétaires de produits / analystes commerciaux reflétant le comportement attendu du produit. L'implication des développeurs assure la production de code selon les exigences. Cependant, si le test se concentre uniquement sur l'acceptation, le code résultant peut rester non extensible.
Ainsi, les tests unitaires automatisés et les tests d'acceptation automatisés sont complémentaires et tous deux sont nécessaires dans le développement Agile.
Les outils et cadres agiles qui prennent en charge les tests d'acceptation automatisés sont:
- Fit
- Fitnesse
- Concordion
- Ruby
- Cucumber
En forme
Ward Cunningham a développé l'outil Fit qui peut être utilisé pour l'automatisation des tests d'acceptation. L'ajustement permet -
Les clients ou les propriétaires de produits pour donner des exemples de comportement de produit à l'aide de Microsoft Word et Microsoft Excel
Les programmeurs peuvent facilement transformer ces exemples en tests automatisés.
Fit 1.1 prend en charge Java et .NET.
FitNesse
FitNesse est un wiki, qui est un style de serveur Web qui permet à tout visiteur d'apporter des modifications, y compris la modification de pages existantes et la création de nouvelles pages. Un langage de balisage simple vous permet de créer facilement des en-têtes, de mettre du texte en gras, de souligner et d'italique, de créer des listes à puces et d'effectuer d'autres types de mise en forme simple.
Dans FitNesse, l'automatisation des tests d'acceptation est la suivante -
Exprimez les tests sous forme de tableaux de données d'entrée et de données de sortie attendues.
Utilisez FitNesse pour placer le tableau de test sur la page que vous pouvez modifier.
Vous pouvez également placer le tableau de test dans Microsoft Excel, copier dans le presse-papiers, puis utiliser le Spreadsheet to FitNesse commande pour que FitNesse formate votre tableau correctement
Lancer le test
Vous obtenez les résultats du test par codage couleur des cellules dans la table de test
les cellules vertes indiquent que les valeurs attendues sont obtenues
les globules rouges indiquent qu'une valeur différente de celle attendue est obtenue
les cellules jaunes indiquent qu'une exception a été levée
Concombre
Cucumber est un outil basé sur le framework BDD (Behavior Driven Development). Les principales caractéristiques sont -
Est utilisé pour écrire des tests d'acceptation pour les applications Web.
Permet l'automatisation de la validation fonctionnelle dans un format facilement lisible et compréhensible comme l'anglais simple.
A été implémenté dans Ruby puis étendu au framework Java. Les deux prennent en charge Junit.
Prend en charge d'autres langages comme Perl, PHP, Python, .Net, etc.
Peut être utilisé avec Selenium, Watir, Capybara, etc.