Post on 15-Jun-2015
description
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 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 kiss.souagil.com.brjoaojosepedrini@gmail.com
Programação
Onde está inserido o Testes AutomatizadosOs tipos de testes automatizadosPrincípios Framework de teste do CakePHPConceitos importantesMaiores dificuldadesTestando o MVCCakeAutoTestPerguntas
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