Comment adapter les tests dans les sprints Scrum et comment écrire des user stories dans Scrum

15

Je suis le chef d'équipe de développement d'un nouveau projet dans mon entreprise. Il s'agit du premier projet où l'entreprise utilisera Scrum. Nous avons une cascade / SDLC itérative. Les BA rédigent des documents sur les exigences, passent la main au développeur et au test, le développeur commence à développer et publiera les tests en itérations. Les testeurs prennent beaucoup de temps pour tester une version par laquelle les développeurs continuent le développement, mais aussi des corrections de bugs pour la version actuelle. J'ai quelques questions

  1. Dans un sprint avec disons 5 histoires quand sortez-vous pour le test? Est-ce dès qu'une histoire est terminée par le développeur ou après que toutes les histoires sont terminées, mais avant la fin du sprint, donnant au test le temps requis pour le tester.
  2. Si le BA écrit des user stories, quels devraient être les détails. Traditionnellement, il faut beaucoup de temps pour écrire une spécification avec l'ensemble de la mise en page, du comportement, du texte, etc. de l'interface utilisateur à finaliser. Je suppose que ma question est de savoir comment écrire des histoires qui sont implémentables et testables.
  3. Notre équipe de test n'est pas technique. Combien il est important d'avoir des tests d'interface utilisateur automatisés pour Scrum. L'interface utilisateur est basée sur WPF.

J'ai une solide expérience en développement utilisant des méthodes agiles (TDD, revues de code, refactoring, etc.) mais nouveau dans Scrum.

modifier: Par itérations, je veux dire que s'il y a 100 exigences, nous pouvons passer aux tests lorsque nous avons terminé 30, 35, 35 exigences plutôt que d'attendre que les 100 exigences soient terminées.

softveda
la source
4
We have a waterfall/iterative SDLC.Élaborez à ce sujet. La cascade est, par définition, un processus séquentiel, pas un processus itératif. Bien qu'il existe des cascades modifiées (comme le modèle sashimi ou cascade avec sous-projets), elles sont toutes séquentielles. Essayez-vous d'évoluer vers des processus itératifs à partir de votre processus séquentiel actuel?
Thomas Owens
1
@Pratik comment les choses se sont-elles passées pour vous? Avez-vous réussi à mieux coopérer avec l'équipe QA?
flup

Réponses:

11

Si le test est distinct du développement, vous avez deux équipes Scrum distinctes. C'est une mauvaise idée de travailler d'une main sur l'autre.

Vos développeurs doivent écrire leurs propres tests, séparés de cette autre équipe. Vous devez traiter cette autre équipe de "test" comme vos clients.

Dans un sprint ... quand sortez-vous pour les tests?

Quand le sprint est terminé. Complètement fait. Cela signifie que vous avez fait vos propres tests unitaires et êtes sûr que cela fonctionne. Une fois votre équipe de développement terminée, vous la communiquez à d'autres équipes pour «test» ou «déploiement» ou tout autre événement dans l'organisation.

Je suppose que ma question est de savoir comment écrire des histoires qui sont implémentables et testables.

Cela varie d'une équipe à l'autre. Le BA fait partie de l'équipe de développement. Vous devez y travailler en équipe (BA plus développeurs) pour obtenir la bonne quantité de détails. C'est un effort d'équipe pour obtenir les bonnes informations de BA au reste de l'équipe.

Combien il est important d'avoir des tests d'interface utilisateur automatisés pour Scrum.

Essentiel. Complètement requis pour tout développement d'interface utilisateur. Les développeurs doivent effectuer tous les tests eux-mêmes avant de les remettre à "l'équipe de test". S'il y a une interface utilisateur, ils doivent la tester. S'il n'y a pas d'interface utilisateur, les tests d'interface utilisateur automatisés ne sont pas nécessaires. Un test est requis et une interface utilisateur doit être testée. Les tests automatisés sont la meilleure pratique actuelle.


Bottom line. Une équipe "test" séparée et un BA qui écrit chaque petit détail n'est pas une organisation optimale pour Scrum. Scrum signifie que vous devez repenser votre organisation ainsi que vos processus.

S.Lott
la source
6
After you're development team is done, you release it to other teams for "testing" or "deployment" or whatever else happens in the organization. En quoi est-ce différent de la cascade itérative? Dans ce cas, le sprint est juste une itération de cascade très courte. Ce genre de défait l'une des plus grandes forces d'Agile et Scrum IMO, que tous les BA, développeurs et QA sont ensemble dans la même équipe et qu'ils possèdent tous collectivement le sprint qu'ils libèrent. Il brise les barrières qui se produisent dans les projets.
maple_shaft
4
Pouvez-vous expliquer pourquoi les tests d'interface utilisateur automatisés sont essentiels? Scrum est un cadre de gestion de projet qui ne dicte aucune pratique technique. Les seules références aux tests que je peux trouver en ce qui concerne Scrum que l'équipe Scrum est une équipe interfonctionnelle. Bien que je préfère les tests automatisés, Scrum ne nécessite aucun test automatisé ni aucun test, bien que les tests réussis devraient faire partie de la définition de Terminé. Il indique simplement que tout test effectué est effectué par l'équipe. Votre résultat est exact - la structure organisationnelle actuelle n'est pas bien adaptée à Scrum.
Thomas Owens
2
La question est, copiée directement à partir du message d'origine, l'accent a été ajouté: "Il est important d'avoir des tests d'interface utilisateur automatisés pour Scrum ." Pour Scrum, ce n'est pas important du tout.
Thomas Owens
2
Le libellé de votre réponse donne l'impression que le test automatisé de l'interface utilisateur fait partie du processus Scrum, et ce n'est pas le cas. Mais cela ne signifie pas que ce n'est pas une bonne chose que l'équipe de développement devrait faire pour améliorer la qualité. Je suis d'accord que c'est une question mal formulée, mais la distinction doit être faite entre "est-ce requis pour Scrum" et "si la réalisation de tests d'interface utilisateur automatisés fait partie de ma définition de fait pour une histoire". En fin de compte, la réponse ne change pas, mais devient plus claire quant à pourquoi elle est requise.
Thomas Owens
9
Essential. Completely required.doit être modifié pour refléter qu'il n'est pas "essentiel" ou "complètement requis" par le cadre du processus Scrum. À l'heure actuelle, un lecteur non informé lirait cette réponse et conclurait que si vous n'effectuez pas de test d'interface utilisateur automatisé, vous n'effectuez pas Scrum. C'est une fausse conclusion, mais tout à fait compréhensible étant donné le libellé de cette réponse. Il y a une distinction claire entre «quelque chose que vous devez faire» et «quelque chose de obligatoire».
Thomas Owens
9

La plupart des réponses que je vais donner concernent une méthode Agile de développement logiciel par rapport à une méthode Iterative Waterfall. Scrum se trouve être une implémentation Agile populaire.

  1. Dans Scrum typique, il n'y a pas de phase de test séparée, car des tests formels doivent avoir lieu tout au long du sprint. Lorsqu'un développeur termine une User Story, la ressource QA doit déjà avoir ses cas de test préparés et commencer les tests à ce stade. Si leurs cas de test réussissent, ils acceptent la user story et passent à la suivante. Une fois toutes les User Stories terminées et acceptées, le sprint est terminé et vous commencez la suivante. Tout cela dépend bien sûr de l'intégration continue, donc les changements de développement sont immédiatement disponibles pour QA. Les développements ultérieurs doivent suivre les directives TDD pour garantir que les tests de régression sont aussi rapides et indolores que possible.

  2. C'est une bonne idée pour les BA d'écrire des user stories, mais pour un contrôle plus détaillé et spécifique, les User Stories peuvent accompagner les documents formels des exigences. La User Story doit être écrite du point de vue d'un seul utilisateur par rôle. Il exprime un besoin du point de vue de l'utilisateur, donc tout naturellement si le logiciel satisfait actuellement tous les aspects de ce besoin, alors l'histoire de l'utilisateur est satisfaite. Les user stories peuvent être composées de user stories enfants et de tâches assignables. Il peut y avoir un chevauchement dans les tâches pour plusieurs user stories.

  3. Les tests automatisés de l'interface utilisateur peuvent être une bonne chose, mais je pense personnellement que plus d'efforts sur les méthodes TDD et la couverture à 100% des tests unitaires de toute la logique applicative sont plus importants. La plupart des équipes de développement logiciel ne semblent pas atteindre une couverture à 100% de Business Logic, donc à mon avis, les tests automatisés de l'interface utilisateur seraient une perte de temps précieux qui pourrait être utilisée pour écrire plus de tests unitaires pour BL. C'est un luxe pas un besoin à mon avis.

maple_shaft
la source
Une véritable question concernant 1: si QA teste chaque User Story dès qu'elle est terminée, puis passe à la suivante, comment vérifiez-vous qu'une dernière histoire dans le même sprint n'a pas cassé (peut-être de manière subtile) l'une des les User Stories déjà testées? Une sorte de "régression au sein d'un même sprint". Je parle d'AQ manuel, pas de suites de tests automatisés, bien sûr.
Andres F.
@AndresF. Si vous suivez le processus TDD avec CI, alors si un enregistrement interrompt la fonctionnalité existante, les tests unitaires échoueront et les gens seront avertis. Bien sûr, cela n'est efficace que si une couverture de test à 100% de la logique métier est en place, mais des problèmes simples de logique, d'environnement ou d'intégration, et la logique de présentation peuvent encore potentiellement présenter des défauts dans le développement de nouvelles user stories qui ne sont pas détectés. Les tests automatisés de l'interface utilisateur, comme suggéré par S.Lott, permettent de détecter la plupart d'entre eux, mais en fin de compte, un peu plus qu'un test de fumée rapide devrait détecter ces problèmes. suite ...
maple_shaft
... suite Si vous trouvez que c'est un problème récurrent, vous pouvez avoir des défauts de conception plus profonds ou des problèmes qui devraient être résolus tels qu'un couplage serré et une faible cohésion qui rendent votre code particulièrement fragile.
maple_shaft
@maple_shaft: C'est facile à dire, mais QA n'aime pas une version au milieu de leurs tests. Nous archivons également fréquemment avec la construction CI, mais la libération se fait uniquement sur demande. L'équipe de test actuelle n'est pas capable d'écrire un test d'interface utilisateur automatique. Ils font des tests purement manuels. Ce serait difficile pour moi de changer.
softveda
@Pratik Je comprends à quel point c'est difficile, croyez-moi. Je connais la douleur. Peut-être pouvez-vous étendre le sprint mais avoir trois ou quatre versions de l'environnement de test par sprint? De cette façon, l'équipe de test peut partir pour la journée au milieu d'un scénario de test et être assuré que l'environnement n'a pas été changé du jour au lendemain.
maple_shaft
4
  1. Dans Scrum, vous êtes censé produire un incrément logiciel potentiellement livrable à la fin de chaque sprint. En conséquence, Scrum promeut le concept d' équipe entière ou d' équipe interfonctionnelle où chaque compétence requise pour mener une user story donnée à faire doit être présente dans l'équipe.

    Dans mon projet actuel, étant donné qu'une histoire entièrement testée fait partie de notre définition du fait, nous avons intégré des testeurs dans les équipes. Pendant les premiers jours d'un sprint, pendant que les développeurs commencent à travailler sur les premières user stories, les testeurs prépareront des scénarios de test et configureront certaines données de test. Dès que le développement de l'une des user stories est terminé, ils le testent.

  2. C'est l'une des plus grandes difficultés de Scrum IMO. Vous devez trouver la bonne quantité de spécifications nécessaires pour obtenir une histoire d'utilisateur implémentable et testable. Une analyse, une documentation et des spécifications trop poussées aboutiront à un plan rigide qui se révélera inévitablement faux au cours du sprint. Inversement, une user story qui n'a pas été clairement définie et exprimée par le Product Owner entraînera une bande passante de communication saturée entre les développeurs et le PO pendant le Sprint et des retards de développement tandis que le PO prend des décisions sur les user stories à mi-parcours du sprint. .

    Dans notre cas, nous avons défini la bonne quantité de détails pour une user story comme 1 / une description sous la forme "comme un ... je veux ... pour que ..." et 2 / une série d'acceptation Critères. Nous faisons rarement des maquettes de l'interface utilisateur à l'avance, cela peut se produire pendant les plannings de sprint, mais ce sont davantage des esquisses qui sont rejetées par la suite.

  3. D'après mon expérience, les tests automatisés de l'interface utilisateur sont extrêmement chronophages et extrêmement fragiles. Il existe des moyens de le faire dans WPF, mais je réfléchirais soigneusement au coût d'entretien de ces tests avec les avantages avant de procéder de cette façon.

guillaume31
la source
2

Travailler dans des itérations de plus en plus courtes rend tous ces transferts de plus en plus coûteux. Vous pouvez réduire ces coûts en suivant une règle stupide et simple: réduire de moitié la taille des lots, modifier la façon dont vous travaillez pour le rendre confortable, répétez jusqu'à ce que vous soyez heureux.

Prenez votre exemple de sprint à 5 étages. Si vos équipes sont habituées à écrire le code pour les 5 histoires, puis à tester les 5 histoires, la taille du lot est de 5 histoires. Coupez ça en deux. Dans le prochain sprint, travaillez d'abord sur les 3 histoires les plus urgentes, en les préparant pour les tests le plus tôt possible. Pendant que les testeurs testent ces 3 histoires, les autres peuvent préparer les 2 histoires restantes pour le test. Cela provoquera des douleurs de croissance. Changez votre façon de travailler afin de rendre cela plus confortable.

Par exemple, plus de personnes travailleront ensemble sur chaque histoire, alors essayez plus de jumelage et voyez si cela vous aide à travailler plus régulièrement. Ou, peut-être, les testeurs trouveront des problèmes dans l'histoire 2 qui distraient certains programmeurs pendant qu'ils essaient de travailler sur l'histoire 5, alors encouragez les programmeurs et les testeurs à sprinter suivant pour discuter plus tôt comment tester l'une des histoires dans le "premier lot" "afin que les programmeurs soient moins susceptibles de faire une erreur qu'un testeur peut facilement détecter avec un test.

Cela peut prendre quelques sprints pour résoudre les gros problèmes associés aux testeurs testant un petit lot d'histoires tandis que les programmeurs travaillent sur le prochain lot d'histoires. Une fois que cela devient confortable, coupez à nouveau la taille du lot de moitié. Et encore. Dans un an environ, l'équipe testera confortablement les histoires car les programmeurs pensent qu'ils ont fini avec eux et font probablement moins d'erreurs en cours de route. Chaque histoire se fera plus tôt.

Bien sûr, à ce stade, vous pouvez maintenant faire la même chose avec les lots que l'équipe reçoit des propriétaires de produits ou que l'équipe expédie à l'organisation des opérations. Etc. À ce stade, vous pouvez aborder la question «combien de détails les BA devraient-ils écrire pour les histoires?» problème.

Soit dit en passant: pour que les testeurs puissent réduire leur délai d'exécution, ils devront adopter une certaine automatisation, par une combinaison d'apprentissage de l'automatisation et de programmeurs les aidant à automatiser. Lorsque vous essayez de réduire la taille des lots, vous découvrirez quand vous devez résoudre ces problèmes. N'ajoutez pas d'automatisation simplement parce qu'un livre en dit que vous en avez besoin.

J'espère que cela vous aide.

JB Rainsberger
la source
0

Je veux juste partager quelques expériences comme ci-dessous, j'espère que cela vous sera utile.

Dans un sprint avec disons 5 histoires quand sortez-vous pour le test? Est-ce dès qu'une histoire est terminée par le développeur ou après que toutes les histoires sont terminées, mais avant la fin du sprint, donnant au test le temps requis pour le tester.

Pour chaque grande histoire d'utilisateur, elle doit être décomposée en plusieurs sous-tâches et lorsque les sous-tâches sont entièrement effectuées par le développeur, elles doivent être publiées sur QC pour être testées immédiatement. Le défaut doit être corrigé après le test pour ces sous-tâches terminer le test.

Si le BA écrit des user stories, quels devraient être les détails. Traditionnellement, il faut beaucoup de temps pour écrire une spécification avec l'ensemble de la mise en page, du comportement, du texte, etc. de l'interface utilisateur à finaliser. Je suppose que ma question est de savoir comment écrire des histoires qui sont implémentables et testables.

Dans Scrum, les user stories doivent être dans n'importe quel format tant que les conversations entourant les stories se produisent et ne devraient pas être terminées ou statiques. Une petite histoire, appelée simplement une histoire d'utilisateur, est une histoire bien comprise et qui peut être mise en œuvre dans un sprint. La priorité d'une histoire peut être basée sur le retour sur investissement, la valeur commerciale ou tout autre élément que l'utilisateur estime important. Il s'agit des activités de PO.

Notre équipe de test n'est pas technique. Combien il est important d'avoir des tests d'interface utilisateur automatisés pour Scrum. L'interface utilisateur est basée sur WPF

L'application des tests d'automatisation dans Scrum est une activité assez difficile. Parce que toutes les fonctions sont implémentées de manière incomplète et pas vraiment stable pour permettre à QC d'implémenter le cas de test par un outil d'auto-test. Cela devrait être fait pour un sprint appelé: régression.

Danh
la source