14
Facilitando o desenvolvimento orientado a testes em aplicações PHP Pedro Chaves

Facilitando o desenvolvimento orientado a testes em aplicações PHP

Embed Size (px)

Citation preview

Page 1: Facilitando o desenvolvimento orientado a testes em aplicações PHP

Facilitando o desenvolvimento orientado a testes em aplicações PHPPedro Chaves

Page 2: Facilitando o desenvolvimento orientado a testes em aplicações PHP

✓ 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

Page 3: Facilitando o desenvolvimento orientado a testes em aplicações PHP

TDD

RED

GREENREFACTOR

1. Escrever um teste que falha

2. Escrever código que

passe no teste3. Melhorar o

código

Page 4: Facilitando o desenvolvimento orientado a testes em aplicações PHP

✓ 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?

Page 5: Facilitando o desenvolvimento orientado a testes em aplicações PHP

Testes devem

✓ …ser rápidos;

✓ …ser independentes;

✓ …ter foco;

✓ …evitar interação com serviços externos (HTTP, banco de dados);

Page 6: Facilitando o desenvolvimento orientado a testes em aplicações PHP

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;

Page 7: Facilitando o desenvolvimento orientado a testes em aplicações PHP

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;

Page 8: Facilitando o desenvolvimento orientado a testes em aplicações PHP

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;

Page 9: Facilitando o desenvolvimento orientado a testes em aplicações PHP

E quem disse que não dá pra fazer isso tudo com PHP?

Page 10: Facilitando o desenvolvimento orientado a testes em aplicações PHP

Codeception

✓ Open source;

✓ Construído sobre componentes do Symfony e PHPUnit;

✓ É o "PHPUnit com esteróides”;

✓ Simplifica gerenciamento de suítes de teste;

Page 11: Facilitando o desenvolvimento orientado a testes em aplicações PHP

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;

Page 12: Facilitando o desenvolvimento orientado a testes em aplicações PHP

Hora da demonstração!

Page 13: Facilitando o desenvolvimento orientado a testes em aplicações PHP

Desenvolvimento Orientado a Testes não é fácil, mas a ferramenta certa pode ajudar a facilitar o processo.

Page 14: Facilitando o desenvolvimento orientado a testes em aplicações PHP

Obrigado!

github.com/pedrochaves/tdd-developer-week

slideshare.net/pedrochaves_