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
- 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.
- 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.
- 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.
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?Réponses:
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.
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.
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.
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.
la source
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.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».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.
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.
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.
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.
la source
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.
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.
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.
la source
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.
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.
la source
Je veux juste partager quelques expériences comme ci-dessous, j'espère que cela vous sera utile.
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.
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.
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.
la source