PRINCÍPIOS  DE AUTOMAÇÃO DE TESTE DE SOFTWARE UTILIZANDO O FRAMEWORK CAKEPHP JOÃO JOSÉ PEDRINI Testes automatizados no cakephp
João José Pedrini Desenvolvedor PHP a 4 anos Desenvolvedor CakePHP a 2 anos Pseudo-Formado em Computação  na UEL – Londrina Paraná Pesquisador CNPq de Metodologias de Desenvolvimentos Fundador da usoSim e souÁgil Um dos escritores do blog kiss.souagil.com.br [email_address]
Programação Onde está inserido o Testes Automatizados Os tipos de testes automatizados Princípios  Framework de teste do CakePHP Conceitos importantes Maiores dificuldades Testando o MVC CakeAutoTest Perguntas
Onde está inserido?
Metodologias Rígidas
Metodologias Ágeis
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 é)
Automação de Testes
Programados
Princípios
Princípios
Uma condição por Teste Crie um teste para cada condição que existe no seu método
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
Teste conceitos separadamente Muito comum nos framework MVC Não entender realmente o que a classe ou método faz
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
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
Framework de Teste do CakePHP Testes Unitários Testes de Integração Testes de Aceitação
SimpleTest Asserções TestSuite WebTestCase Objeto Dublê (Mock)
Asserções Métodos de verificação Base dos testes
Suíte de Testes Estrutura básica para realização dos testes automatizados Responsável por gerenciar a execução dos teste
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
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
CakeTestSuite Execução de teste via Browser Execução de teste via Linha de Comando Fixtures Visualização da Cobertura de teste TestAction
Execução pelo navegador
Execução pela linha de comando
Fixtures É a garantia que o seu testes é repetível e independente  Reinicializa os dados a cada teste realizado
Maiores dificuldades O principal motivo das pessoas sentirem dificuldades na hora de testar são
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
MOSTRAR AO VIVO Testando
CakeAutoTest

Testes Automatizados No Cakephp

  • 1.
    PRINCÍPIOS DEAUTOMAÇÃO DE TESTE DE SOFTWARE UTILIZANDO O FRAMEWORK CAKEPHP JOÃO JOSÉ PEDRINI Testes automatizados no cakephp
  • 2.
    João José PedriniDesenvolvedor PHP a 4 anos Desenvolvedor CakePHP a 2 anos Pseudo-Formado em Computação na UEL – Londrina Paraná Pesquisador CNPq de Metodologias de Desenvolvimentos Fundador da usoSim e souÁgil Um dos escritores do blog kiss.souagil.com.br [email_address]
  • 3.
    Programação Onde estáinserido o Testes Automatizados Os tipos de testes automatizados Princípios Framework de teste do CakePHP Conceitos importantes Maiores dificuldades Testando o MVC CakeAutoTest Perguntas
  • 4.
  • 5.
  • 6.
  • 7.
    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 é)
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
    Uma condição porTeste Crie um teste para cada condição que existe no seu método
  • 13.
    Não modifique osistema 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
  • 14.
    Teste conceitos separadamenteMuito comum nos framework MVC Não entender realmente o que a classe ou método faz
  • 15.
    Comunique a intençãodo Teste Teste, antes de tudo, é documentação Ela será a melhor base para saber o que o sistema realmente faz
  • 16.
    Minimize código nãotestado Código não testado quer dizer que pode estar errado Code Coverage existe para isto Mas veja o custo benefício
  • 17.
    Framework de Testedo CakePHP Testes Unitários Testes de Integração Testes de Aceitação
  • 18.
    SimpleTest Asserções TestSuiteWebTestCase Objeto Dublê (Mock)
  • 19.
    Asserções Métodos deverificação Base dos testes
  • 20.
    Suíte de TestesEstrutura básica para realização dos testes automatizados Responsável por gerenciar a execução dos teste
  • 21.
    MockObject Dublê deObjetos 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
  • 22.
    WebTestCase Teste deaceitaçã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
  • 23.
    CakeTestSuite Execução deteste via Browser Execução de teste via Linha de Comando Fixtures Visualização da Cobertura de teste TestAction
  • 24.
  • 25.
  • 26.
    Fixtures É agarantia que o seu testes é repetível e independente Reinicializa os dados a cada teste realizado
  • 27.
    Maiores dificuldades Oprincipal motivo das pessoas sentirem dificuldades na hora de testar são
  • 28.
    Testando Modelos Dicade 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
  • 29.
  • 30.