Especificação por meio de exemplos (BDD, testes de aceitação, ...)
-
Upload
fabio-nogueira-de-lucena -
Category
Technology
-
view
749 -
download
1
description
Transcript of Especificação por meio de exemplos (BDD, testes de aceitação, ...)
![Page 1: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/1.jpg)
Especificação por meio de exemplosUMA INTRODUÇÃO
Fábio Nogueira de Lucena
![Page 2: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/2.jpg)
Referência
Specification By Example: How successful teams deliver the right softwareGojko Adzic, Manning, 2011
http://specificationbyexample.com/
![Page 3: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/3.jpg)
Créditos para o autor e sua obra
Specification By Example: How successful teams deliver the right softwareGojko Adzic, Manning, 2011
Frases, citações e excertos obtidosdeste livro.
![Page 4: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/4.jpg)
Aviso
As informações aqui contidas são uma interpretação do conteúdo do livro indicado no slide anterior.
Consulte o original para detalhes.
![Page 5: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/5.jpg)
Esteja alerta!
Tecnologias são propostas e criadas continuamente para resolver problemas. Duas questões surgem:
A estratégia realmente contribui? O problema resolvido é parecido com o meu?
![Page 6: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/6.jpg)
Orientações
Conhecimento de cerca de 50 projetos.
Alguns pequenos, outros envolvendo equipes espalhadas por diversos continentes.
Processos executados: XP, Scrum, Kanban e similares.
Outros nomes Testes de aceitação ágil
Behavior-Driven Development
Specification by Example, ...
Apresentado por meio de padrões
![Page 7: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/7.jpg)
Tradicionalmente, ...
Desenvolver software exige extensas especificações funcionais e longas fases de testes.
O que não é compatível com liberações semanais.
![Page 8: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/8.jpg)
O que precisamos?
Evitar especificação “exagerada” Documentação confiável que explica o que o sistema
faz Verificar de forma eficiente se o sistema faz o que a
especificação diz. Manter documentação relevante e confiável com o
mínimo de custo de manutenção.
Especificação por meio de exemplos é uma estratégia dirigida para atingir estes objetivos.
![Page 9: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/9.jpg)
Especificação por meio deexemplos é um conjunto de
padrões de processo.
![Page 10: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/10.jpg)
“Ao revelar os padrões de processos empregados por equipes de sucesso,eu espero ajudar outros a implementar estas ideias deliberadamente.”Gojko AdzicSpecification By ExampleManning, 2011.
![Page 11: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/11.jpg)
Padrões de processos
Derivar escopo de objetivos
Especificar de forma colaborativa
Ilustrar usando exemplos
Refinar a especificação
Automatizar a validação sem alterar especificações
Validar frequentemente
Evoluir o sistema de documentação
![Page 12: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/12.jpg)
Derivar escopo de objetivos
![Page 13: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/13.jpg)
Derivar escopo de objetivos
Domínio da solução
Domínio do problema
![Page 14: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/14.jpg)
Derivar escopo de objetivos(contexto)
Escopo é solução para problema do domínio.
Escopo é um meio de se atingir um objetivo de negócio.
Muitos esperam a definição do escopo pelo cliente, product owner ou usuário antes de iniciar a implementação.
Tudo que ocorre antes da implementação é geralmente ignorado pela equipe de desenvolvimento.
Após a especificação, desenvolvedores implementam a solução.
![Page 15: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/15.jpg)
Derivar escopo de objetivos
Se clientes definem o escopo, então o projeto não se beneficia do conhecimento das pessoas na equipe de desenvolvimento.
O software fará o que o cliente pediu, mas não necessariamente o que precisava.
![Page 16: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/16.jpg)
O Código de Trânsito Brasileiro foi alterado(Lei nº 11.910 de 18 de março de 2009)
“Art. 105. São equipamentos obrigatórios dos veículos, entre outros a serem estabelecidos pelo CONTRAN: (...)
VII - equipamento suplementar de retenção – air bag frontal para o condutor e o passageiro do banco dianteiro. (...)
CONTRAN, Resolução no. 312, instituiu a obrigatoriedade do sistema antitravamento das rodas (freio ABS).
ESCOPO
![Page 17: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/17.jpg)
SegurançaOBJETIVO
![Page 18: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/18.jpg)
“Eu quero um carro com vido elétrico, ... Sério?
ESCOPO
Ah, conforto.OBJETIVO
![Page 19: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/19.jpg)
Posso indicar o carro com as características, mas comoespecialista em automóveis, se eu conhecesse o real objetivo, possivelmente seria mais útil, efetivo, ...
RESUMO
![Page 20: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/20.jpg)
Derivar escopo de objetivos
‘Em vez de “cegamente” aceitar requisitos como a solução para um problema desconhecido, equipes de sucesso derivam escopo de objetivos.’Gojko Adzic
![Page 21: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/21.jpg)
Derivar escopo de objetivos
Inicia-se com objetivo de negócio do cliente.
Todos colaboram para definir o escopo que atinge o objetivo.
A equipe trabalha com os usuários do negócio na determinação da solução.
Aqueles do negócio concentram-se no objetivo de uma característica desejável e no valor que esperam extrair dela.
A equipe então sugere uma solução que é mais barata, mais rápida, ...
![Page 22: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/22.jpg)
Especificar de forma colaborativa
![Page 23: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/23.jpg)
Em vez de contar com uma única pessoa para obter as especificações corretamente, equipes de sucesso colaboram com entendidos no negócio para especificar a solução.
![Page 24: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/24.jpg)
Cria uma “propriedade compartilhada”das especificações, tornando a equipe mais engajada.
![Page 25: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/25.jpg)
Ilustrar usando exemplos
![Page 26: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/26.jpg)
Em vez de esperar pelo registro preciso deespecificações em uma linguagem de programaçãodurante a implementação, equipes de sucessoilustram especificações usando exemplos.
![Page 27: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/27.jpg)
Equipe trabalha com especialistas do negóciopara identificar “exemplos chave” quedescrevem a funcionalidade esperada.
Desenvolvedores sugerem exemplos queilustram casos “problemáticos”.
Todos têm uma compreensão compartilhadado que precisa ser produzido.
![Page 28: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/28.jpg)
Exemplos chave servem como alvo paradesenvolvedores e como critério de avaliaçãoobjetivo para checar se o desenvolvimentoestá concluído.
Se os exemplos são fáceis de entender,então podem ser empregados comorequisitos detalhados e não ambíguos.
![Page 29: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/29.jpg)
Refinar a especificação
![Page 30: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/30.jpg)
Especialistas no negócio tendem a pensarda perspectiva da interface com o usuário.
Detalhar como algo deve ser feito é emvez do que é exigido é um desperdício.
![Page 31: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/31.jpg)
Muitos detalhes tornam exemplos difíceisde comunicar e compreender.
![Page 32: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/32.jpg)
Equipes de sucesso, ao refinar a especificação,removem informações “não essenciais”e criam um contexto preciso e concretopara o desenvolvimento e testes.
![Page 33: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/33.jpg)
Equipes de sucesso especificamo que é suposto que o softwarefaça, em vez de como ele faz.
Cucumber (exemplo)
Especificação com exemplos é uma especificação de trabalho, é um teste de aceitação, é um teste funcional.
![Page 34: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/34.jpg)
Automatizar a validaçãosem alterar especificações
![Page 35: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/35.jpg)
Verificação rápida é essencial para o desenvolvimentode software em iterações curtas.
Ou seja, é preciso tornar o processo de validação barato e eficiente.
Solução óbvia: automação.
![Page 36: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/36.jpg)
Automação sim, mas como?
Rhino Mocks
Especificações automatizadastecnicamente são inacessíveis aos especialistas do negócio.
![Page 37: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/37.jpg)
Várias versões
Versão desenvolvedor Versão mais legível
Sincronização???!!!
![Page 38: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/38.jpg)
Equipes de sucesso não correm o risco de“tradução entre formatos”.
Exemplos chave que são compreensíveis eacessíveis a toda a equipe tornam-seespecificações executáveis.
Cucumber (exemplo)
![Page 39: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/39.jpg)
Se é preciso alterar, então há um único lugar.
Única fonte
Consumida pordesenvolvedores,
responsáveis por testes,especialistas no domínio,
e outros.
![Page 40: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/40.jpg)
Fitnesse
Wiki
![Page 41: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/41.jpg)
Concordion
![Page 42: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/42.jpg)
Concordion
![Page 43: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/43.jpg)
Cucumber
![Page 44: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/44.jpg)
specFlow
![Page 45: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/45.jpg)
codeeffects http://rule.codeeffects.com/
![Page 46: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/46.jpg)
OpenRules
![Page 47: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/47.jpg)
Validar frequentemente
![Page 48: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/48.jpg)
Um suporte eficiente de software exige sabermos o quê ele faz e o porquê.
Em muitos casos, a única formade fazer isto é recorrer ao código ou encontrar alguém que possa fazer para nós.
![Page 49: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/49.jpg)
Código é, frequentemente, a única coisa em quepodemos confiar; muita documentação é desatualizada antes do término do projeto.
Desenvolvedores são oráculos de conhecimentoe gargalos de informação.
![Page 50: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/50.jpg)
Evoluir o sistema dedocumentação
![Page 51: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/51.jpg)
Ao longo do tempo, mudanças ocorrem eprovocam atualizações na“documentação viva”.
![Page 52: Especificação por meio de exemplos (BDD, testes de aceitação, ...)](https://reader033.fdocument.pub/reader033/viewer/2022061116/5466193caf7959642f8b5ec1/html5/thumbnails/52.jpg)
Créditos para o autor e sua obra(agradecimentos finais)
Specification By Example: How successful teams deliver the right softwareGojko Adzic, Manning, 2011
Frases, citações e excertos obtidosdeste livro.