O documento discute a aplicação de Behavior Driven Development (BDD) para testar aplicações. Ele explica como usar ferramentas como Behat e Gherkin para escrever testes em linguagem natural que descrevem funcionalidades desejadas (features) e cenários de uso (stories). Também aborda a importância de testes automatizados e como BDD pode melhorar a comunicação entre times de desenvolvimento e negócios.
18. 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
Para quem não conhece, esse é o Manny Wilson
Ele também é francesVou falar um pouco de BDD – Behavior Driver Developer (ingles sulafricano)
1)
-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?
Mas para isso… vamos começar devagar
Podemos aceitar isso
Isso acontece por inumeros motivos
Vamos ver alguns deles aqui…
Exemplificar
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.
Não sabem o que querem
E mudam toda hora os requisitos.
TUDO É PRA ONTEM
Sistemas ja nascem atrasados
Quando não tem tempo, a primeira coisa que corta é o que?
TESTES
Um outro problema é o telefone sem fio
MAS É SÓ ISSO?
Um outro problema é o telefone sem fio
MAS É SÓ ISSO?
Um outro problema é o telefone sem fio
MAS É SÓ ISSO?
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
User story
Como <a>
Eu quero <b>
Para que <c>
Podem ser escritas a mão
Vamos fazer um acordo?
Unificar a linguagem? Vamos
ubiquitous language (linguagem ubíqua)
Linguagem baseada no domínio
Dan North, criador do BDD – behavor drive developer jbehave
desenvolvimento orientado a comportamento
Tá
Mas e no PHP?
O que isso tem a ver? Como faremos?
Framework de BDD para php
Funciona com php 5.3+
Ele é inspirado no cucumber do ruby
Red – Green – Refactor
Escreva um teste falho
Escreva um teste de sucesso
Identifique pontos de melhora
Não é mais feature
É história
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.
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?
Instalando
Composer.phar require behat/behat
Download do behat.phar
Iniciando um projeto
Feature
Como se executa? Simples assim
Resultado dos testes
Annotations
@given
@when
@then
@and
@but
Feature
Feature
Feature
Feature
Feature
Feature
Feature
Feature
Feature
Feature
Feature
E também temos:
@BeforeFeature, @AfterFeature
@BeforeScenario, @AfterScenario
@BeforeStep, @AfterStep
Feature
Resultado dos testes
Lembram das cores?
Existe 2 skipped e dois pendentes
Exemplo de transaction com @beforeFeature e @afterFeature
adicionando o velho e querido phpunit
se observamos, o metodo traráONomero faz um assets
o segundo cenário, traz um erro proposital