Upload
pedro-chaves
View
68
Download
5
Embed Size (px)
Citation preview
Facilitando o desenvolvimento orientado a testes em aplicações PHPPedro Chaves
✓ Desenvolvedor web desde 2007;
✓ PHP, Python e JavaScript;
✓ Qualidade de código e performance;
✓ 4 anos na Studio Sol, nos times do Cifra Club e Palco MP3;
✓ Organizador e ativista do PHP-MG;
✓ Desenvolvedor full-stack na Planet Expat;
Pedro Chaves
TDD
RED
GREENREFACTOR
1. Escrever um teste que falha
2. Escrever código que
passe no teste3. Melhorar o
código
✓ Melhora o design da aplicação;
✓ Garantia de que o código atende sua especificação;
✓ Evita regressão de bugs;
✓ Facilita refatoração de código;
✓ Documentação extra;
Por que TDD?
Testes devem
✓ …ser rápidos;
✓ …ser independentes;
✓ …ter foco;
✓ …evitar interação com serviços externos (HTTP, banco de dados);
Testes unitários
✓ Testam uma unidade de código (uma classe, uma função);
✓ Não interagem com outras unidades, mas podem interagir com outros sistemas;
✓ São as peças do nosso LEGO;
✓ São testes de caixa branca;
Testes funcionais
✓ São testes em relação à especificação do sistema;
✓ Verificam se um pedaço do sistema funciona;
✓ Descrevem o que o sistema faz;
✓ São testes de caixa branca;
Testes de aceitação
✓ Verifica se o software funciona como o esperado…
✓ …mas com o ponto de vista do usuário;
✓ São testes de caixa preta;
E quem disse que não dá pra fazer isso tudo com PHP?
Codeception
✓ Open source;
✓ Construído sobre componentes do Symfony e PHPUnit;
✓ É o "PHPUnit com esteróides”;
✓ Simplifica gerenciamento de suítes de teste;
Codeception
✓ Altamente extensível;
✓ Possui módulos integrando várias bibliotecas e frameworks;
✓ Permite Behaviour Driven Design;
✓ Permite simulação de objetos através de mocking e stubs;
Hora da demonstração!
Desenvolvimento Orientado a Testes não é fácil, mas a ferramenta certa pode ajudar a facilitar o processo.
Obrigado!
github.com/pedrochaves/tdd-developer-week
slideshare.net/pedrochaves_