Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
PRINCÍPIOS  DE AUTOMAÇÃO DE TESTE DE SOFTWARE UTILIZANDO O FRAMEWORK CAKEPHP JOÃO JOSÉ PEDRINI Testes automatizados no cak...
João José Pedrini <ul><li>Desenvolvedor PHP a 4 anos </li></ul><ul><li>Desenvolvedor CakePHP a 2 anos </li></ul><ul><li>Ps...
Programação <ul><li>Onde está inserido o Testes Automatizados </li></ul><ul><li>Os tipos de testes automatizados </li></ul...
Onde está inserido?
Metodologias Rígidas
Metodologias Ágeis
Teste de Software <ul><li>É uma área muito vasta e com bastante conteúdo </li></ul><ul><li>Há quem diga que é importantíss...
Automação de Testes
Programados
Princípios
Princípios
Uma condição por Teste <ul><li>Crie um teste para cada condição que existe no seu método </li></ul>
Não modifique o sistema <ul><li>Não modifique seu sistema para facilitar o seu teste </li></ul><ul><li>Mas há exceção </li...
Teste conceitos separadamente <ul><li>Muito comum nos framework MVC </li></ul><ul><li>Não entender realmente o que a class...
Comunique a intenção do Teste <ul><li>Teste, antes de tudo, é documentação </li></ul><ul><li>Ela será a melhor base para s...
Minimize código não testado <ul><li>Código não testado quer dizer que pode estar errado </li></ul><ul><li>Code Coverage ex...
Framework de Teste do CakePHP <ul><li>Testes Unitários </li></ul><ul><li>Testes de Integração </li></ul><ul><li>Testes de ...
SimpleTest <ul><li>Asserções </li></ul><ul><li>TestSuite </li></ul><ul><li>WebTestCase </li></ul><ul><li>Objeto Dublê (Moc...
Asserções <ul><li>Métodos de verificação </li></ul><ul><li>Base dos testes </li></ul>
Suíte de Testes <ul><li>Estrutura básica para realização dos testes automatizados </li></ul><ul><li>Responsável por gerenc...
MockObject <ul><li>Dublê de Objetos </li></ul><ul><li>Facilita a remoção de dependência de outras classes </li></ul><ul><l...
WebTestCase <ul><li>Teste de aceitação do SimpleTest </li></ul><ul><li>Manipulação de ações via programação </li></ul><ul>...
CakeTestSuite <ul><li>Execução de teste via Browser </li></ul><ul><li>Execução de teste via Linha de Comando </li></ul><ul...
Execução pelo navegador
Execução pela linha de comando
Fixtures <ul><li>É a garantia que o seu testes é repetível e independente  </li></ul><ul><li>Reinicializa os dados a cada ...
Maiores dificuldades <ul><li>O principal motivo das pessoas sentirem dificuldades na hora de testar são </li></ul>
Testando Modelos <ul><li>Dica de sempre: nunca acesse as funções do core do Model  pelo Controller, crie funções próprias ...
MOSTRAR AO VIVO Testando
CakeAutoTest
Upcoming SlideShare
Loading in …5
×

Testes Automatizados No Cakephp

4,512 views

Published on

Uma introdução a testes automatizados em CakePHP

Published in: Technology, Education

Testes Automatizados No Cakephp

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

×