Facilitando o desenvolvimento orientado a testes em aplicações PHP
-
Upload
pedro-chaves -
Category
Software
-
view
68 -
download
5
Transcript of Facilitando o desenvolvimento orientado a testes em aplicações PHP
![Page 1: Facilitando o desenvolvimento orientado a testes em aplicações PHP](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/1.jpg)
Facilitando o desenvolvimento orientado a testes em aplicações PHPPedro Chaves
![Page 2: Facilitando o desenvolvimento orientado a testes em aplicações PHP](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/2.jpg)
✓ 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](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/3.jpg)
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](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/4.jpg)
✓ 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](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/5.jpg)
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](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/6.jpg)
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](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/7.jpg)
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](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/8.jpg)
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](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/9.jpg)
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](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/10.jpg)
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](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/11.jpg)
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](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/12.jpg)
Hora da demonstração!
![Page 13: Facilitando o desenvolvimento orientado a testes em aplicações PHP](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/13.jpg)
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](https://reader030.fdocumentos.tips/reader030/viewer/2022020106/55b3c867bb61ebc0548b46d7/html5/thumbnails/14.jpg)
Obrigado!
github.com/pedrochaves/tdd-developer-week
slideshare.net/pedrochaves_