Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Melhore suas User Stories com Specification by Example

334 Aufrufe

Veröffentlicht am

Specification by Example é uma técnica ágil para definir requisitos de forma colaborativa, por meio de exemplos reais do domínio do negócio. Assim, permitindo um melhor entendimento e repasse dos requisitos pelos stakeholders ligados ao negócio.
Nesta talk, vamos ver como utilizar essa técnica para melhorar as user stories e como ela apoia outras práticas ágeis como Backlog Grooming e BDD

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

Melhore suas User Stories com Specification by Example

  1. 1. Melhore suas User Stories com Specification by Example Bruno Corrêa brunocorrea@ufpa.br
  2. 2. Nesta talk você.... Perceberá a importância da colaboração do team com pessoas do business; Como funciona a Specification by Example; Como esta técnica apoia outras práticas ágeis como Backlog Grooming e BDD.
  3. 3. O porquê ....
  4. 4. Gap de comunicação!!!
  5. 5. Shared Understanding!!
  6. 6. Utilizar Exemplos do domínio do negócio!!
  7. 7. Exemplo O frete grátis é oferecido para clientes VIP, que compram no mínimo 5 livros. O Frete grátis não é oferecido para clientes Regulares, nem para clientes VIP que compram qualquer outro produto. Regras de Negócio: Feature: Informar, antes de realizar o pagamento, quando se tem direito ao frete grátis para um cliente.
  8. 8. Exemplo Examples: Tipo Cliente Conteúdo do carrinho Frete VIP 5 livros Grátis VIP 4 livros Padrão Regular 10 livros Padrão VIP 5 celulares Padrão VIP 5 livros, 1 celular Padrão
  9. 9. A ideia é... “Eliminar especificações abstratas”
  10. 10. A ideia é... “Building the right software”
  11. 11. Fonte: Specification by Example, Gojko Adzic (2011). Aproxima as áreas...
  12. 12. Situada no quadrante... Fonte: Let's break the Agile Testing Quadrants, Gojko Adzic (2013).
  13. 13. Specification by Example!! Uma técnica ágil para definir requisitos de forma colaborativa, por meio de exemplos reais do domínio do negócio.
  14. 14. Como representar Examples? Gherkin language!! É uma Linguagem Específica de Domínio (DSL) que descreve comportamentos do software por meio da “Syntax Given-When-Then”. Given <pré-condição> When <ação do papel> Then <resultado para validação>
  15. 15. User Story ”Uma representação do requisito”
  16. 16. Exemplo 1 Narrativa: O sistema deve permitir que o usuário insira dados para calcular o IMC (Índice de Massa Corporal) desse usuário, mostrando na tela qual o grau de obesidade desse usuário.
  17. 17. Exemplo 1 Narrativa: O sistema deve permitir que o usuário input dados para calcular o IMC (Índice de Massa Corporal) desse usuário, mostrando na tela qual o grau de obesidade desse usuário. Abstrato!
  18. 18. 1) IMC para grau de obesidade “Peso normal” Given usuário está na página “Descubra seu IMC” When preenche o peso com “80” And preenche a altura com “1,80” Then deve ser exibido o IMC= “24,69” And a situação deve ser “Peso normal” User Story: Como usuário do HealthCare Eu quero calcular meu Índice de Massa Corporal (IMC) Para saber se estou com peso normal. Cenários de Aceitação: Exemplo 1
  19. 19. 2) IMC para grau de obesidade “Abaixo do peso” Given usuário está na página “Descubra seu IMC” When preenche o peso com “58” And preenche a altura com “1,80” Then deve ser exibido o IMC= “17,90” And a situação deve ser “Abaixo do peso normal” 3) IMC para grau de obesidade “Acima do peso” Given usuário está na página “Descubra seu IMC” When preenche o peso com “100” And preenche a altura com “1,80” Then deve ser exibido o IMC= “30,86” And a situação deve ser “Acima do peso normal” Exemplo 1
  20. 20. User Story: Como Maria (usuária do whatsApp) Eu quero adicionar pessoas em um grupo existente Para poder conversar com todas elas em apenas uma conversa. Exemplo 2
  21. 21. 1) Usuário é Admin Given Maria é Admin do grupo When adiciona ao grupo a pessoa “Bruno” Then a pessoa recebe a msg “Mãe adicionou você ao grupo Família” Cenários de Aceitação: Exemplo 2
  22. 22. 2) Usuário não é Admin Given Maria não é Admin do grupo When tenta adicionar ao grupo a pessoa “Bruno” Then o whatsapp informa ao usuário ”Você não pode adicionar pessoas, pois não é Admin do grupo” Exemplo 2 3) Grupo com número máx. de pessoas Given Maria é Admin do grupo When tenta adicionar ao grupo a pessoa “Bruno” Then o whatsapp informa ao usuário ”Este grupo já possui o limite máximo de 50 integrantes”
  23. 23. User Story: Como Titular de Conta Corrente Eu quero realizar um saque no caixa eletrônico Para poder ter dinheiro em cash. Exemplo 3 Cenários de Aceitação: 1) Conta Corrente tem limite suficiente Given ”João” insere um cartão válido And a conta corrente possui saldo “500,00” When “João” solicita o saque no valor ”300,00” And preenche a senha válida “5321” Then o sistema informa ”saque realizado com sucesso” And exibe o saldo da conta “200” And entrega o dinheiro para “João” And o cartão é devolvido
  24. 24. Exemplo 3 2) Conta Corrente sem limite suficiente Given ”João” insere um cartão válido And a conta corrente possui saldo “500,00” When “João” solicita o saque no valor ”700,00” And preenche a senha válida “5321” Then o sistema informa ”Você não possui limite suficiente“ And o Cartão é devolvido
  25. 25. Exemplo 3 3) Caixa Eletrônico não possui dinheiro Given ”João” insere um cartão válido And a conta corrente possui saldo “500,00” And o caixa eletrônico não possui dinheiro When “João” solicita o saque no valor ”700,00” Then o sistema informa ”O caixa eletrônico não possui dinheiro, favor se dirigir a outro caixa eletrônico“ And o Cartão é devolvido
  26. 26. Onde Utilizar?? -Workshops/Brainstorming de elicitação de user stories -Reuniões informais antes de cerimônias de planejamento (Sprint Planning, Planning Game...) -Three Amigos -Cerimônias de Backlog Grooming -BDD (Behavior-Driven Development) Dentre outros...
  27. 27. Backlog Grooming “Refinamento do Product Backlog”
  28. 28. Backlog Grooming “Refinamento do Product Backlog” Definition of Ready (DOR)
  29. 29. BDD “Automatizar comportamentos do software” Produto Certo x Construir Certo
  30. 30. BDD “Automatizar comportamentos do software” From Customer Examples to Living Documentation
  31. 31. BDD “Automatizar comportamentos do software”
  32. 32. Living Documentation!! Fonte: Specification by Example, Gojko Adzic (2011).
  33. 33. Referências... Gojko Adzic. Let's break the Agile Testing Quadrants. Disponível em: <https://gojko.net> 2013; Gojko Adzic. Specification by Example: How Successful Teams Deliver the Right Software. 1th Ed, Manning. 2011. Ryan Thomas. Introducing the Three Amigos. Disponível em: <https://www.scrumalliance.org/community/articles/2013/2013-april/introducing-the- three-amigos> Agile Alliance. Backlog Grooming. Disponível em: <https://www.agilealliance.org/glossary/backlog-grooming/> Dan North, Aslak Hellesøy, Bryan Helmkamp, et al. The RSpec Book: Behaviour-Driven Development with RSpec, Cucumber, and Friends. 1th Ed., 2012.
  34. 34. Obrigado!! Perguntas...? Bruno Corrêa brunocorrea@ufpa.br

×