Testando
sua aplicação
com BDD
Behavior Driven Development
Leonn Leite
Lenon Leite Lenin Leite
Castelo de areia espectativa
Expectativa
Castelo de areia espectativa
Expectativa mínima
realidade
Realidade
Testando sua aplicação com BDD - conf.phprs
Indecisão
Clientes também são
indecisos
Tudo já
nasce atrasado
Sempre há
Problema
na comunicação
No RS
No DF
Metodologia Ágil
Porque é importante usar
testes?
Sem testes Com testes
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Qual seria a solução?!
•Definir os valores do negócio (backlog)
•Priorizar as coisas baseando nas necessidades
•Descrever os cenários
•Só depois, implementar
User Stories
Ubiquitous Language
gherkin
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Dan
North
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
TDD
TDD
BDD
Testando sua aplicação com BDD - conf.phprs
“Behaviour” is a more useful
word, than “test” - Dan North,
2003
Escrevendo uma
feature
Escrevendo uma
historia
Com linguagem
gherkin
Testando sua aplicação com BDD - conf.phprs
Pode ser escrito à mão
O que vamos fazer?!
Como queremos?!
•Escolhemos a operação
•Adicionamos números
Ex: somar. 1,2,4,5,6…
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
getcomposer.org
composer require behat/behat
download behat.phar
Iniciando o projeto com behat
vendor/bin/behat --init
Testando sua aplicação com BDD - conf.phprs
Executando os testes
vendor/bin/behat
Testando sua aplicação com BDD - conf.phprs
Resultado dos testes
• Passed
• Failed
• Pending
• Undefined
• Skipped
Jeito fácil
vendor/bin/behat --append-snippets
Annotations
@given
@when
@then
@and
@but
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
E também temos:
@BeforeSuite, @AfterSuite
@BeforeFeature, @AfterFeature
@BeforeScenario, @AfterScenario
@BeforeStep, @AfterStep
Testando sua aplicação com BDD - conf.phprs
E como ficou nos
testes?
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Resultado dos testes
• Passed
• Failed
• Pending
• Undefined
• Skipped
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
Mas você não usa os assets?
Cade o TDD?
Não, mas é possivel
composer require phpunit/phpunit
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
E se eu quiser adicionar mais
features…
Vou ter que colocar tudo no
FeatureContext.php?
|> Daqui
|> Para cá
Configurar o
behat.yml
Testando sua aplicação com BDD - conf.phprs
Seria legal se eu conseguisse
garantir que minha feature
está de acordo com o
esperado.
Backend e frontend…
"One of the most important
parts in the web is a browser.”
behat/mink
Goutte
Selenium
Selenium2
BrowserKit
Zombie
Sahi
WUnit
behat/mink
composer require
behat/mink-goutte-driver
Testando sua aplicação com BDD - conf.phprs
composer require
behat/mink-extension
Testando sua aplicação com BDD - conf.phprs
phprs.feature
Testando sua aplicação com BDD - conf.phprs
Testando sua aplicação com BDD - conf.phprs
BDD não é
bala de prata
Obrigato
Dúvidas?
https://github.com/Sylius/Sylius
Ótimo exemplo
Leonn Leite
@leonnleite
/leonnleite
+leonnleite
Github.com/leonnleite/behat-talk
Ps: nunca fui para Las Vegas

Mais conteúdo relacionado

PPTX
Continuous Inspection - An effective approch towards Software Quality Product...
PDF
WP Composer
PPTX
TDD e BDD - Developers-SP - Abril/2017
ODP
Testes automatizados (2)
PPTX
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
PPTX
Behavior-Driven Development (BDD) - Abril/2017
PDF
BDD em Ação
PPTX
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...
Continuous Inspection - An effective approch towards Software Quality Product...
WP Composer
TDD e BDD - Developers-SP - Abril/2017
Testes automatizados (2)
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
Behavior-Driven Development (BDD) - Abril/2017
BDD em Ação
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...

Semelhante a Testando sua aplicação com BDD - conf.phprs (20)

PPTX
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
PPTX
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
PDF
Demoiselle Behave - Parte 1
PPTX
BDD - Integrando regras de negócio e programação
ODP
Testes automatizados cp
PPTX
Behaviour driven development, com jbehave
PPTX
Apresentação de BDD com SpecFlow e Selenium
PPTX
BDD com specflow e selenium webdriver
PPTX
Todas as abordagens de testes dentro do ágil
PPTX
Introdução à BDD (Behavior-driven Development)
PDF
Não deixe para testar depois o que você pode testar antes.
PPTX
Behavior-Driven Development (BDD) - DevOps Summit 2016
PPTX
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
PPTX
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetos
PDF
Test First, TDD e outros Bichos
PDF
Teste sua aplicação antes que ela teste você
PDF
Desenvolvimento BDD
PPTX
Qualidade nas entregas
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
Demoiselle Behave - Parte 1
BDD - Integrando regras de negócio e programação
Testes automatizados cp
Behaviour driven development, com jbehave
Apresentação de BDD com SpecFlow e Selenium
BDD com specflow e selenium webdriver
Todas as abordagens de testes dentro do ágil
Introdução à BDD (Behavior-driven Development)
Não deixe para testar depois o que você pode testar antes.
Behavior-Driven Development (BDD) - DevOps Summit 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetos
Test First, TDD e outros Bichos
Teste sua aplicação antes que ela teste você
Desenvolvimento BDD
Qualidade nas entregas
Anúncio

Mais de Leonn Leite (6)

PDF
Do legado ao DDD
PDF
As maravilhas do service worker
PDF
Como progressive web apps pode mudar a vida do seu site
PPTX
Identifique brechas, proteja sua aplicação | Php avenger e octopus
PDF
Programando Melhor - Flisol
PDF
O poder do crowdfunding
Do legado ao DDD
As maravilhas do service worker
Como progressive web apps pode mudar a vida do seu site
Identifique brechas, proteja sua aplicação | Php avenger e octopus
Programando Melhor - Flisol
O poder do crowdfunding
Anúncio

Último (17)

PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PDF
Jira Software projetos completos com scrum
PPT
Aula de Engenharia de Software principais caracteristicas
PPTX
Tipos de servidor em redes de computador.pptx
PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PPTX
ccursoammaiacursoammaiacursoammaia123456
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PPT
Conceitos básicos de Redes Neurais Artificiais
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PDF
Banco de Dados 2atualização de Banco de d
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Processos no SAP Extended Warehouse Management, EWM100 Col26
Jira Software projetos completos com scrum
Aula de Engenharia de Software principais caracteristicas
Tipos de servidor em redes de computador.pptx
SEMINÁRIO DE IHC - A interface Homem-Máquina
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
ccursoammaiacursoammaiacursoammaia123456
Processamento da remessa no SAP ERP, SCM610 Col15
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Analise Estatica de Compiladores para criar uma nova LP
Conceitos básicos de Redes Neurais Artificiais
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Banco de Dados 2atualização de Banco de d
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Proposta de Implementação de uma Rede de Computador Cabeada.pptx

Testando sua aplicação com BDD - conf.phprs

Notas do Editor

  • #2: Para quem não conhece, esse é o Manny Wilson Ele também é frances Vou falar um pouco de BDD – Behavior Driver Developer (ingles sulafricano) 1)
  • #3: -Arquitetos -Lenin e do Lenon (depois eu te explico o porque). -Certificado zend. Além disso sou certificado scrum master pela Scrum Alliance . - Sou evangelista php e phpDF - Mais que raios é BDD?
  • #4: Mas para isso… vamos começar devagar
  • #5: Podemos aceitar isso
  • #6: Isso acontece por inumeros motivos Vamos ver alguns deles aqui… Exemplificar
  • #7: Para você pode ser facil decidir entre o Xerife Woody, aquele velho e querido brinquedo Ou o Buzz Light ear, do comando estelar um tem um chapeu maneiro, puxa a corda e fala. O outro solta laser pelo braço e voa… Para você pode ser facil, mas não para Andy.
  • #9: Não sabem o que querem E mudam toda hora os requisitos.
  • #10: TUDO É PRA ONTEM Sistemas ja nascem atrasados Quando não tem tempo, a primeira coisa que corta é o que? TESTES
  • #11: Um outro problema é o telefone sem fio MAS É SÓ ISSO?
  • #12: Um outro problema é o telefone sem fio MAS É SÓ ISSO?
  • #13: Um outro problema é o telefone sem fio MAS É SÓ ISSO?
  • #19: Equilibrio entre pouco tempo e muita mudança. Diminui interlocutores – Melhora a comunicação (telefone sem fio) XP foi um dos primeiros a incentivar testes unitários automatizados
  • #20: User story Como <a> Eu quero <b> Para que <c> Podem ser escritas a mão
  • #21: Vamos fazer um acordo? Unificar a linguagem? Vamos ubiquitous language (linguagem ubíqua) Linguagem baseada no domínio
  • #25: Dan North, criador do BDD – behavor drive developer jbehave desenvolvimento orientado a comportamento
  • #26: Tá Mas e no PHP? O que isso tem a ver? Como faremos?
  • #28: Framework de BDD para php Funciona com php 5.3+ Ele é inspirado no cucumber do ruby
  • #29: Red – Green – Refactor Escreva um teste falho Escreva um teste de sucesso Identifique pontos de melhora
  • #34: Não é mais feature É história
  • #35: Não é mais feature É história #language: pt Funcionalidade: Descrição da feature Com o objetivo de … Como … Eu preciso … Cenário: título do primeiro cenário Dado algum contexto inicial, Quando ocorre um evento, Então verifique alguns resultados. Cenário: título do segundo cenário Dado algum contexto inicial, Quando ocorre um evneto, Então verifique alguns resultados.
  • #37: O cliente mesmo pode escrever as features Pode ser escrito a mão E esse documento, já vai ser a documentação do sistema O sistema nasce documentado :) Vamos instalar o behat?
  • #44: Instalando Composer.phar require behat/behat
  • #45: Download do behat.phar
  • #46: Iniciando um projeto
  • #47: Feature
  • #48: Como se executa? Simples assim
  • #50: Resultado dos testes
  • #52: Annotations @given @when @then @and @but
  • #53: Feature
  • #54: Feature
  • #55: Feature
  • #56: Feature
  • #57: Feature
  • #58: Feature
  • #59: Feature
  • #60: Feature
  • #61: Feature
  • #62: Feature
  • #63: Feature
  • #65: E também temos: @BeforeFeature, @AfterFeature @BeforeScenario, @AfterScenario @BeforeStep, @AfterStep
  • #69: Feature
  • #70: Resultado dos testes
  • #71: Lembram das cores? Existe 2 skipped e dois pendentes
  • #75: Exemplo de transaction com @beforeFeature e @afterFeature
  • #76: adicionando o velho e querido phpunit
  • #77: se observamos, o metodo traráONomero faz um assets o segundo cenário, traz um erro proposital
  • #86: adicionando o velho e querido phpunit
  • #88: adicionando o velho e querido phpunit
  • #94: obrigado