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,428 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

×