$30 off During Our Annual Pro Sale. View Details »

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

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

Palestra sobre Desenvolvimento Orientado a Testes (TDD) em PHP utilizando o framework de testes Codeception. Apresentada no iMasters Developer Week de Belo Horizonte, ocorrido entre 26 e 28 de maio de 2015.

Pedro Chaves

May 27, 2015
Tweet

More Decks by Pedro Chaves

Other Decks in Programming

Transcript

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

    View Slide

  2. ✓ 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

    View Slide

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

    View Slide

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

    View Slide

  5. Testes devem
    ✓ …ser rápidos;

    ✓ …ser independentes;

    ✓ …ter foco;

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

    View Slide

  6. 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;

    View Slide

  7. 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;

    View Slide

  8. 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;

    View Slide

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

    View Slide

  10. Codeception
    ✓ Open source;

    ✓ Construído sobre componentes do Symfony e PHPUnit;

    ✓ É o "PHPUnit com esteróides”;

    ✓ Simplifica gerenciamento de suítes de teste;

    View Slide

  11. 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;

    View Slide

  12. Hora da demonstração!

    View Slide

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

    View Slide

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

    View Slide