Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

✓ 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

Slide 3

Slide 3 text

TDD RED GREEN REFACTOR 1. Escrever um teste que falha 2. Escrever código que passe no teste 3. Melhorar o código

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Testes devem ✓ …ser rápidos; ✓ …ser independentes; ✓ …ter foco; ✓ …evitar interação com serviços externos (HTTP, banco de dados);

Slide 6

Slide 6 text

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;

Slide 7

Slide 7 text

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;

Slide 8

Slide 8 text

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;

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Codeception ✓ Open source; ✓ Construído sobre componentes do Symfony e PHPUnit; ✓ É o "PHPUnit com esteróides”; ✓ Simplifica gerenciamento de suítes de teste;

Slide 11

Slide 11 text

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;

Slide 12

Slide 12 text

Hora da demonstração!

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Obrigado! github.com/pedrochaves/tdd-developer-week slideshare.net/pedrochaves_