Un peu de fond de moi - Je suis un testeur manuel depuis près de 2 ans dans un environnement Agile utilisant SCRUM (1-2 semaines de sprints). Je souhaite donc introduire les tests d'automatisation dans mon travail à l'aide de Selenium WebDriver (avec Java).
Ma question est de savoir quand dois-je tester les fonctionnalités manuellement et quand dois-je les convertir pour les tests d'automatisation?
J'ai lu et obtenu différentes approches, telles que:
- Lorsqu'un nouveau sprint démarre, convertissez les user stories en scripts automatisés du sprint précédent, OR;
- Convertissez les user stories dans le même sprint.
Tout conseil / s serait très apprécié. Merci d'avance.
Réponses:
L'automatisation des tests (et tous les autres tests) devrait faire partie de la définition de terminé . Ceci afin de faire un produit potentiellement livrable. Pouvez-vous expédier s'il n'a pas été testé?
Les tests doivent également être une approche d'équipe, donc l'automatisation des tests n'est pas la responsabilité des testeurs. Commencez à penser aux tests dès que possible dans le processus.
L'automatisation des tests est si importante dans Agile car:
Si vous retardez les tests jusqu'à une autre itération, vous serez toujours à la traîne. Il est plus difficile de changer la direction du produit car il est plus difficile de refaçonner et de protéger le comportement extérieur du produit. Avoir des tests manuels répétitifs est la clé pour vous ralentir, automatisez-le!
De nombreux testeurs vous diront que vous ne devez pas commencer à tester de bout en bout avant que l'interface du produit ne se soit stabilisée. N'attendez pas, utilisez plutôt PageObjects et assurez-vous que vos tests sont maintenables et faites-en la responsabilité du développeur de les créer et de les corriger.
la source
L'essentiel est que vous ne marquiez pas une histoire comme terminée à moins d'avoir écrit des tests automatisés pour cette histoire.
Donc, 1 semble être absent, car vous écrivez des tests pour une tâche terminée dans un sprint précédent. que faire si les tests échouent?
la source
Idéalement, vous devriez écrire des tests automatisés dans le même sprint que le code est écrit. Le code ne doit pas être considéré comme «terminé» tant que les tests automatisés n'ont pas été écrits, et vous devez mettre le code à l'état «terminé» à la fin d'un sprint.
Vous devez démarrer le processus le premier jour du sprint en travaillant avec le développeur pour comprendre le code et pour l'aider à comprendre vos besoins en tant que testeur. Par exemple, si vous créez des pages Web, vous pouvez les aider à comprendre la nécessité d'ajouter des identifiants uniques pour chaque élément de page avec lequel vous devez interagir.
N'oubliez pas qu'en scrum, votre travail n'est pas d'écrire des tests. Votre travail consiste à travailler avec l'équipe pour atteindre les objectifs de sprint. Cela signifie la communication et la collaboration, ce qui devrait se produire très tôt dans le sprint. Vous pouvez commencer à travailler sur les conceptions et les plans de test bien avant que le code ne soit prêt à être testé.
la source
Si vous allez tester automatiquement, vous pourriez aussi bien créer les tests à l'avance. Cela vous aidera à définir quel comportement vous attendez et vous stimulera à penser comme un client, cela devrait rendre votre logiciel plus utilisable à la fin. Et vous bénéficierez immédiatement du test lorsque vous implémenterez la fonctionnalité.
la source
Vous pouvez faire l'une ou l'autre, mais vous souhaitez généralement cibler les tests de régression avec des tests d'automatisation. Cela signifierait que je ferais du manuel jusqu'à ce que vous soyez sûr qu'il est suffisamment solide pour être un test de régression. Cela peut être au milieu d'un sprint pour certaines fonctionnalités et peut être dans un futur sprint pour d'autres fonctionnalités.
la source
Comme cela a été indiqué dans une autre réponse , lorsque les tests ont lieu, cela devrait faire partie de la définition de fait . Cependant, je ne suis pas d'accord avec certaines de ces réponses, donc je voulais développer les expériences que j'ai rencontrées.
Dans un environnement vraiment agile, tout le monde peut tout faire. Il n'y aurait pas quelqu'un à 100% dédié aux tests, vous développeriez également des compétences pour vous aider dans certains travaux de base sur l'interface utilisateur, ou autre chose. Cependant, nous vivons rarement dans un monde idéal.
Ce que je recommanderais serait de faire un peu une approche hybride. Pour votre définition de Terminé, je dirais que les tests manuels devraient faire partie du Sprint dans lequel le travail est codé. une. En vous concentrant sur les tests manuels, vous vous familiarisez avec ce que le code est censé faire. Au début du prochain Sprint, lorsque vous n'aurez peut-être pas autant à faire, vous pouvez configurer vos tests automatisés qui peuvent s'exécuter dans le cadre du processus de génération pour éviter les erreurs de régression.
la source