30
PRINCÍPIOS DE AUTOMAÇÃO DE TESTE DE SOFTWARE UTILIZANDO O FRAMEWORK CAKEPHP JOÃO JOSÉ PEDRINI Testes automatizados no cakephp

Testes Automatizados No Cakephp

Embed Size (px)

DESCRIPTION

Uma introdução a testes automatizados em CakePHP

Citation preview

Page 1: Testes Automatizados No Cakephp

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

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

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

Onde está inserido?

Page 5: Testes Automatizados No Cakephp

Metodologias Rígidas

Page 6: Testes Automatizados No Cakephp

Metodologias Ágeis

Page 7: Testes Automatizados No Cakephp

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

Automação de Testes

Page 9: Testes Automatizados No Cakephp

Programados

Page 10: Testes Automatizados No Cakephp

Princípios

Page 11: Testes Automatizados No Cakephp

Princípios

Page 12: Testes Automatizados No Cakephp

Uma condição por Teste

Crie um teste para cada condição que existe no seu método

Page 13: Testes Automatizados No Cakephp

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

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

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

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

Framework de Teste do CakePHP

Testes Unitários

Testes de Integração

Testes de Aceitação

Page 18: Testes Automatizados No Cakephp

SimpleTest

Asserções

TestSuite

WebTestCase

Objeto Dublê (Mock)

Page 19: Testes Automatizados No Cakephp

Asserções

Métodos de verificação

Base dos testes

Page 20: Testes Automatizados No Cakephp

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

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

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

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

Execução pelo navegador

Page 25: Testes Automatizados No Cakephp

Execução pela linha de comando

Page 26: Testes Automatizados No Cakephp

Fixtures

É a garantia que o seu testes é repetível e independente

Reinicializa os dados a cada teste realizado

Page 27: Testes Automatizados No Cakephp

Maiores dificuldades

O principal motivo das pessoas sentirem dificuldades na hora de testar são

Page 28: Testes Automatizados No Cakephp

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

MOSTRAR AO VIVO

Testando

Page 30: Testes Automatizados No Cakephp

CakeAutoTest