testes automatizados no cakephp
DESCRIPTION
Uma introdução a testes automatizados em CakePHPTRANSCRIPT
![Page 1: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/1.jpg)
PRINCÍPIOS DE AUTOMAÇÃO DE TESTE DE SOFTWARE UTILIZANDO O FRAMEWORK CAKEPHP
JOÃO JOSÉ PEDRINI
Testes automatizados no cakephp
![Page 2: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/2.jpg)
João José Pedrini
Desenvolvedor PHP a 4 anosDesenvolvedor CakePHP a 2 anosPseudo-Formado em Computação na UEL –
Londrina ParanáPesquisador CNPq de Metodologias de
DesenvolvimentosFundador da usoSim e souÁgilUm dos escritores do blog [email protected]
![Page 3: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/3.jpg)
Programação
Onde está inserido o Testes AutomatizadosOs tipos de testes automatizadosPrincípios Framework de teste do CakePHPConceitos importantesMaiores dificuldadesTestando o MVCCakeAutoTestPerguntas
![Page 4: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/4.jpg)
Onde está inserido?
![Page 5: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/5.jpg)
Metodologias Rígidas
![Page 6: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/6.jpg)
Metodologias Ágeis
![Page 7: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/7.jpg)
Teste de Software
É uma área muito vasta e com bastante conteúdo
Há quem diga que é importantíssimo a permanência de pelo menos um profissional de teste numa equipe de desenvolvimento
Nem sempre é um desenvolvedor (na maioria das vezes não é)
![Page 8: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/8.jpg)
Automação de Testes
![Page 9: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/9.jpg)
Programados
![Page 10: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/10.jpg)
Princípios
![Page 11: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/11.jpg)
Princípios
![Page 12: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/12.jpg)
Uma condição por Teste
Crie um teste para cada condição que existe no seu método
![Page 13: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/13.jpg)
Não modifique o sistema
Não modifique seu sistema para facilitar o seu teste
Mas há exceção
Sistemas facilmente testáveis normalmente demonstram que possuem uma boa arquitetura
![Page 14: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/14.jpg)
Teste conceitos separadamente
Muito comum nos framework MVC
Não entender realmente o que a classe ou método faz
![Page 15: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/15.jpg)
Comunique a intenção do Teste
Teste, antes de tudo, é documentação
Ela será a melhor base para saber o que o sistema realmente faz
![Page 16: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/16.jpg)
Minimize código não testado
Código não testado quer dizer que pode estar errado
Code Coverage existe para isto
Mas veja o custo benefício
![Page 17: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/17.jpg)
Framework de Teste do CakePHP
Testes Unitários
Testes de Integração
Testes de Aceitação
![Page 18: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/18.jpg)
SimpleTest
Asserções
TestSuite
WebTestCase
Objeto Dublê (Mock)
![Page 19: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/19.jpg)
Asserções
Métodos de verificação
Base dos testes
![Page 20: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/20.jpg)
Suíte de Testes
Estrutura básica para realização dos testes automatizados
Responsável por gerenciar a execução dos teste
![Page 21: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/21.jpg)
MockObject
Dublê de Objetos
Facilita a remoção de dependência de outras classes
Permite testar um único conceito por vez
Muito usado em TDD para criar testes “dependentes” sem a necessidade de criar novas classes
Em alguns casos, um método de uma classe é dependente de outras
Isto dificulta a manter o encapsulamento dos testes
Mock elimina este problema
![Page 22: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/22.jpg)
WebTestCase
Teste de aceitação do SimpleTest
Manipulação de ações via programação
“Um Navegador Programável”
Permite testar se o fluxo de uma aplicação esta correto
![Page 23: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/23.jpg)
CakeTestSuite
Execução de teste via Browser
Execução de teste via Linha de Comando
Fixtures
Visualização da Cobertura de teste
TestAction
![Page 24: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/24.jpg)
Execução pelo navegador
![Page 25: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/25.jpg)
Execução pela linha de comando
![Page 26: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/26.jpg)
Fixtures
É a garantia que o seu testes é repetível e independente
Reinicializa os dados a cada teste realizado
![Page 27: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/27.jpg)
Maiores dificuldades
O principal motivo das pessoas sentirem dificuldades na hora de testar são
![Page 28: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/28.jpg)
Testando Modelos
Dica de sempre: nunca acesse as funções do core do Model pelo Controller, crie funções próprias
Use e abuse dos Fixtures
Evite testar métodos do core do CakePHP, elas já estão testadas
![Page 29: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/29.jpg)
MOSTRAR AO VIVO
Testando
![Page 30: Testes Automatizados No Cakephp](https://reader035.vdocuments.com.br/reader035/viewer/2022081720/557e0c43d8b42ae6458b4f0f/html5/thumbnails/30.jpg)
CakeAutoTest