SlideShare uma empresa Scribd logo
Desenvolvimento Orientado a Testes com PHP
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
PHPHEDERAL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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.
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).
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.
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.
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.
Ferramentas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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
Iniciando ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Iniciando ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lidando com dependências ,[object Object],[object Object]
Dúvidas? Perguntas?
Obrigado!

Mais conteúdo relacionado

Mais procurados

PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDDPHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
Diana Ungaro Arnos
 
PHPExperience 2016 - Pirâmide de Testes
PHPExperience 2016 - Pirâmide de TestesPHPExperience 2016 - Pirâmide de Testes
PHPExperience 2016 - Pirâmide de Testes
Diana Ungaro Arnos
 
Automação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumAutomação de Teste Funcionais - Selenium
Automação de Teste Funcionais - Selenium
Israel Santiago
 
Behavior-Driven Development (BDD) - DevOps Summit 2016
Behavior-Driven Development (BDD) - DevOps Summit 2016Behavior-Driven Development (BDD) - DevOps Summit 2016
Behavior-Driven Development (BDD) - DevOps Summit 2016
Renato Groff
 
Testes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalksTestes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalks
Diana Ungaro Arnos
 
Teste de aplicações web com selenium
Teste de aplicações web com seleniumTeste de aplicações web com selenium
Teste de aplicações web com selenium
Mayron Cachina
 
Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDD
Kleber Bernardo
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao teste
Rafaela Prado
 
Teste Unitários e TDD
Teste Unitários e TDDTeste Unitários e TDD
Teste Unitários e TDD
Diogo Damiani
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Renato Groff
 
Testando Aplicações ExtJS 4 com Siesta
Testando Aplicações ExtJS 4 com SiestaTestando Aplicações ExtJS 4 com Siesta
Testando Aplicações ExtJS 4 com Siesta
Loiane Groner
 
Selenium: visão geral
Selenium: visão geralSelenium: visão geral
Selenium: visão geral
Marcelo Andrade
 
Hands On Selenium
Hands On SeleniumHands On Selenium
Hands On Selenium
Elias Nogueira
 
Mocking Test - GDG-SP - Setembro/2016
Mocking Test - GDG-SP - Setembro/2016Mocking Test - GDG-SP - Setembro/2016
Mocking Test - GDG-SP - Setembro/2016
Renato Groff
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
André Thiago
 
Teste de software
Teste de softwareTeste de software
Teste de software
Claudio Eckert
 
Testes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoTestes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de Código
Aricelio Souza
 
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO TESTES DE SOFTWARE
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO TESTES DE SOFTWARECST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO TESTES DE SOFTWARE
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO TESTES DE SOFTWARE
Os Fantasmas !
 
Mocking Test
Mocking TestMocking Test
Mocking Test
Renato Groff
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Otavio Augusto
 

Mais procurados (20)

PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDDPHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
 
PHPExperience 2016 - Pirâmide de Testes
PHPExperience 2016 - Pirâmide de TestesPHPExperience 2016 - Pirâmide de Testes
PHPExperience 2016 - Pirâmide de Testes
 
Automação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumAutomação de Teste Funcionais - Selenium
Automação de Teste Funcionais - Selenium
 
Behavior-Driven Development (BDD) - DevOps Summit 2016
Behavior-Driven Development (BDD) - DevOps Summit 2016Behavior-Driven Development (BDD) - DevOps Summit 2016
Behavior-Driven Development (BDD) - DevOps Summit 2016
 
Testes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalksTestes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalks
 
Teste de aplicações web com selenium
Teste de aplicações web com seleniumTeste de aplicações web com selenium
Teste de aplicações web com selenium
 
Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDD
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao teste
 
Teste Unitários e TDD
Teste Unitários e TDDTeste Unitários e TDD
Teste Unitários e TDD
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
 
Testando Aplicações ExtJS 4 com Siesta
Testando Aplicações ExtJS 4 com SiestaTestando Aplicações ExtJS 4 com Siesta
Testando Aplicações ExtJS 4 com Siesta
 
Selenium: visão geral
Selenium: visão geralSelenium: visão geral
Selenium: visão geral
 
Hands On Selenium
Hands On SeleniumHands On Selenium
Hands On Selenium
 
Mocking Test - GDG-SP - Setembro/2016
Mocking Test - GDG-SP - Setembro/2016Mocking Test - GDG-SP - Setembro/2016
Mocking Test - GDG-SP - Setembro/2016
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Testes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoTestes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de Código
 
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO TESTES DE SOFTWARE
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO TESTES DE SOFTWARECST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO TESTES DE SOFTWARE
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO TESTES DE SOFTWARE
 
Mocking Test
Mocking TestMocking Test
Mocking Test
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 

Semelhante a PHPHEDERAL - Desenvolvimento Orientado a Testes com PHP

Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
Cloves da Rocha
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
paulo peres
 
XII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreXII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do Mestre
Cloves da Rocha
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
Aline Ferreira
 
Teste Driven Development
Teste Driven DevelopmentTeste Driven Development
Teste Driven Development
Eduardo Carvalho
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
Camilo Ribeiro
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
Taís Dall'Oca
 
SLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptxSLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptx
GustavoRondini
 
Apresentação tcc final
Apresentação tcc finalApresentação tcc final
Apresentação tcc final
Jhool Flores
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
Mauricio Cesar Santos da Purificação
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
tdc-globalcode
 
Test day 2012
Test day 2012Test day 2012
Test day 2012
Wellington Marion
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
Roberto Nunes
 
Instituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitáriosInstituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela (Florianópolis-SC, Brasil)
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
Mário Pravato Junior
 
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdfINTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
RonaldAlves15
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
Engenharia de Software Ágil
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
João Lourenço
 
Tdd x testes unidades
Tdd x testes unidadesTdd x testes unidades
Tdd x testes unidades
Simone Pittner
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de software
Joyce Bastos
 

Semelhante a PHPHEDERAL - Desenvolvimento Orientado a Testes com PHP (20)

Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
 
XII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreXII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do Mestre
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
Teste Driven Development
Teste Driven DevelopmentTeste Driven Development
Teste Driven Development
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
SLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptxSLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptx
 
Apresentação tcc final
Apresentação tcc finalApresentação tcc final
Apresentação tcc final
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
 
Test day 2012
Test day 2012Test day 2012
Test day 2012
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
Instituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitáriosInstituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitários
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
 
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdfINTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
Tdd x testes unidades
Tdd x testes unidadesTdd x testes unidades
Tdd x testes unidades
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de software
 

Último

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 

Último (8)

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 

PHPHEDERAL - 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.
  • 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.
  • 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.
  • 12.
  • 13.