Your SlideShare is downloading. ×
PHPHEDERAL - Desenvolvimento Orientado a Testes com PHP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

PHPHEDERAL - Desenvolvimento Orientado a Testes com PHP

4,025
views

Published on

Slides do mini de desenvolvimento orientado a testes com php no primeiro PHPHEDERAL. Julho de 2010.

Slides do mini de desenvolvimento orientado a testes com php no primeiro PHPHEDERAL. Julho de 2010.

Published in: Technology

2 Comments
4 Likes
Statistics
Notes
No Downloads
Views
Total Views
4,025
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
2
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Desenvolvimento Orientado a Testes com PHP
  • 2. PHPHEDERAL Marcelo Rodrigues Analista desenvolvedor nda Gradua Networks, em Brasília. Trabalha com internet a 10 anos. Possui experiência em desenvolvimento de sistemas web e sites baseados em PHP, especialmente em sistemas educacionais a distância. Atualmente, seu foco é a arquitetura e desenvolvimento de sistemas através do uso de metodologias de desenvolvimento ágil, com atenção especial ao TDD. [email_address] http://www.marcelomx.com http://twitter.com/marcelomx
  • 3. PHPHEDERAL
    • Conteúdo
      • O que é?
      • Vantagens
      • Tipos de teste
      • Ferramentas de teste
      • Iniciando
      • Lidando com dependências
      • Refatorando
      • Corrigindo bugs
  • 4. O que é? TDD – Test-Driven Development (TDD) ou simplesmente Desenvolvimento Orientado a Testes é uma maneira diferente de escrever software. Nele, você vai evoluindo o código aos poucos, explorando o problema com o uso de testes automatizados, escritos ANTES da implementação propriamente dita. A função do teste é especificar uma regra que o software deve implementar e, validar se a regra é, de fato, implementada.
  • 5. Vantagens Simplicidade Você só codifica o necessário para atender a especificação. Código bom é código funcional. Confiança no código Ao final de tudo, seu código estará pronto para ser usado (funcional). Os únicos testes esperados no final são testes voltados a conserto de bugs (se houverem).
  • 6. Vantagens Documentação O teste é uma especificação, um exemplo de como funciona o software. É uma documentação natural, nunca envelhece  Refatoração ( refactoring ) Precisa refazer, apagar, melhorar alguma coisa? Refez? Apagou? Melhorou? O teste é seu amigo e ele lhe diz se tudo continua funcionando como se deseja.
  • 7. Tipos de Teste Testes Unitários Testar uma classe e seus métodos ou funções, ou simplesmente, uma unidade de código. Nenhum recurso externo deve ser utilizado (banco de dados, recursos de rede etc). Testes Funcionais Testam as funcionalidades na visão do usuário, ou seja, a interação de fato de um usuário com uma interface visual do sistema. Exemplo: um formulário de cadastro.
  • 8. Tipos de Teste Testes de integração Também são testes unitários, porém, sem restrições de acesso recursos externos. Geralmente, são poucos, pois são muitos específicos e geralmente são desenvolvidos levando em consideração o recurso externo utilizado. São executados esporadicamente.
  • 9. Ferramentas
    • Ferramentas para testes em PHP:
    • Testes unitários
    • PHPunit – http://www.phpunit.de
    • SimpleTest – http://www.simpletest.org
    • Testes funcionais
    • Selenium – http://seleniumhq.org
  • 10. Iniciando Instalando o PHPUnit Atualmente, o PHPUnit é a ferramenta padrão do mercado para implementar os testes em PHP. Instalação via PEAR: pear channel-discover pear.phpunit.de pear channel-discover pear.symfony-project.com pear install phpunit/PHPUnit
  • 11. Iniciando
    • Criando e rodando um teste com o PHPUnit
    • Criar um arquivo <NomeDaClasse>Test.php.
    • No arquivo, criar a classe:
    • class <NomeDaClasse>Test extends PHPUnit_Framework_TestCase
    • {
      • function testDeveFazerAlgumaCoisa() {
      • $this->assertEquals(5, (3 + 2));
      • }
    • }
    • Rodando o teste, via de linha de comando:
    • phpunit <NomeDaClasse>Test
  • 12. Iniciando
    • Fluxo do TDD:
      • Pense
      • Escreva o teste
      • Faça o teste falhar (vermelho)
      • Codifique
      • Faça o teste passar (verde)
      • Refatore
  • 13. Lidando com dependências
    • Falsificação de objetos
    • Injeção de dependência
  • 14. Dúvidas? Perguntas?
  • 15. Obrigado!