2. Conteúdo
● Introdução
● BDD - O que é, como funciona, vantagens e desvantagens
● BDD - Descrevendo features e cenários
● Hands-on
● Experiências com BDD
● Piadas ruins
3. Introdução - Por quê?
- Ter uma linguagem clara e universal sobre as funcionalidades
- Ter requisitos de comportamento claros e descritos
- Melhorar a comunicação e colaboração entre envolvidos no projeto
4. Introdução - Por quê?
- Documentação viva e testável das funcionalidades
5. Introdução - Por quê?
- Independente de linguagem ou framework
- Pode ser implantado em qualquer momento no projeto
6. - Features
- Funcionalidades/requisitos do software
- Cenários
- Diferentes situações possíveis na mesma feature
- Contexto
- Dados de entrada
- Ações
- Ações efetuadas por usuário humanos e não humanos
- Resultados
- Verificação de saídas esperadas
Features, cenários, contexto...
8. Desvantagens
- Necessita colaboração dos analistas de negócio
- Teoricamente, mais lento para executar
- Mais difícil encontrar causa raiz de erros (teste de caixa preto)
9. Desvantagens
- Não indicado para cenários simples e diretos (opinião pessoal)
Ex:
Dado um usuário do sistema
Quando ele fizer digitar o usuário e senha e clicar em Login
Então deverá ser redirecionado para a página inicial
10. Mas e o TDD?
- TDD => Focado em design da aplicação e cobertura de testes
- BDD = > Focado em comportamento , comunicação e descoberta de requisitos
- Podem coexistir sem problemas ;)