Behavior Driven
Development
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
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
Introdução - Por quê?
- Documentação viva e testável das funcionalidades
Introdução - Por quê?
- Independente de linguagem ou framework
- Pode ser implantado em qualquer momento no projeto
- 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...
Contexto ->
Ação ->
Resultado ->
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)
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
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 ;)
Mão na massa!
Código em:
https://github.com/thiagoferreiraw/bdd-talk
Obrigado!

Behavior driven development

  • 1.
  • 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 - Porquê? - 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 - Porquê? - Documentação viva e testável das funcionalidades
  • 5.
    Introdução - Porquê? - Independente de linguagem ou framework - Pode ser implantado em qualquer momento no projeto
  • 6.
    - Features - Funcionalidades/requisitosdo 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...
  • 7.
  • 8.
    Desvantagens - Necessita colaboraçãodos 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 indicadopara 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 oTDD? - 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 ;)
  • 11.
    Mão na massa! Códigoem: https://github.com/thiagoferreiraw/bdd-talk
  • 12.