SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Projeto de Software com Testes Unitários e TDD Lucas Nazário dos Santos
Apesar do seu nome, “ test driven ” ou “ test first ” development não é na realidade uma técnica de teste. TDD força o programador a pensar em vários aspectos da funcionalidade antes de implementá-la. Muitas equipes utilizam “ customer facing ”, ou “ story ”  tests  para ajudar no desenvolvimento do código. Esses testes ilustram os requisitos e regras de negócio. Programadores escrevem código para fazer os testes passarem, o que mostra ao cliente que o código entregue endereça suas expectativas. TDD produz código com muito menos  unit-level bugs , menos  bugs  funcionais e uma probabilidade exponencial de endereçar as expectativas dos  stakeholders .
TDD foca a atenção do programador na interface e no comportamento do software. Organizações reconhecerão os benefícios do TDD tanto como uma técnica de teste como de projeto de software. Quando se escreve o teste antes do código, o programador decide não somente sobre a interface do software, mas também sobre o seu comportamento. TDD foca em como a técnica guia a análise, projeto e decisões de programação.
É uma estratégia de desenvolvimento que endereça tanto o projeto quanto o teste. TDD afeta a qualidade interna do projeto de software.
 
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object]
Teste unitário é simples. Qualquer um pode utilizar. Teste unitário
Você não precisa de nada sofisticado. Teste unitário
Os testes unitários cooperam com a gerência de risco Teste unitário
Os testes unitários exercitam o software Teste unitário
Os testes unitários documentam as funcionalidades Teste unitário
Teste unitário
Test-driven development Red Green Refactor Adiciona um teste que falha Adiciona qualquer código Refatora o código conforme necessário
Test-driven development: exemplo
Test-driven development: exemplo
Test-driven development: exemplo
Test-driven development: exemplo
Test-driven development: exemplo
Projetando software com TDD Durante os primeiros dias de cada iteração, nós  discutimos as  stories com o cliente . Nós utilizamos toda a informação  capturada através das interações com  os clientes para  escrever  high-level test  cases  para cada  story . Quando o desenvolvedor inicia a  codificação de uma story, ele  estuda os  test cases  para garantir que as  funcionalidades básicas foram  entendidas. Assim que a codificação inicia, é  escrito um teste executável simples  para a  story . O programador escreve código para  fazer o teste passar  e então  mais testes  unitários podem ser adicionados  para  adequar a cobertura.
Projetando software com TDD Etapa 1: Análise Disponibilizar uma opção para ordenação dos itens do carrinho de compras (por ordem de inserção e alfabética). High-level test cases User stories
Etapa 2: Projeto Projetando software com TDD Disponibilizar uma opção para ordenação dos itens do carrinho de compras (por ordem de inserção e alfabética).
Projetando software com TDD Etapa 2: Projeto
Projetando software com TDD Etapa 2: Projeto
Projetando software com TDD Etapa 2: Projeto - programação pelos pares
Projetando software com TDD Etapa 2: Projeto - revisão pelos pares
Projetando software com TDD Etapa 3: Codificação – 1º cenário Projeta Codifica Projetista/Programador
Projetando software com TDD Etapa 3: Codificação – 2º cenário Projeta Codifica Projetista Programador
Projetando software com TDD Etapa 4: Teste Recebe Testa Testador
Projetando software com TDD Etapa 4: Teste “ Estudos revelaram que programadores utilizando TDD produzem código que passam com sucesso entre 18% e 50% mais casos de uso externo do que código produzido por grupos que não utilizam TDD.” Software Architecture Improvement through Test-Driven Development (ACM Press, 2005)
Limitações Projeto de interfaces
Limitações Projeto de componentes intimamente relacionados a  containers
Onde procurar a partir daqui? http://retriever.stela.org.br/
Onde procurar a partir daqui? http://www.junit.org/
Onde procurar a partir daqui?
Onde procurar a partir daqui? Referência para os artigos
MUITO OBRIGADO! Lucas Nazário dos Santos TDD foca a atenção do programador na interface e no comportamento do software. Quando se escreve o teste antes do código, o programador decide não somente sobre a interface do software, mas também sobre o seu comportamento. Conclusão

Contenu connexe

Tendances

TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)Renato Groff
 
Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDDKleber Bernardo
 
DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?Kamilla Queiroz Xavier
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...Rafael Chiavegatto
 
Automação de testes em projetos ágeis
Automação de testes em projetos ágeisAutomação de testes em projetos ágeis
Automação de testes em projetos ágeisCristiano Caetano
 
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de códigoSeu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de códigoChristiane Morais Silva
 
Ferramentas Case de Teste
Ferramentas Case de TesteFerramentas Case de Teste
Ferramentas Case de TesteBeatriz Marques
 
Apresentação TDC2015
Apresentação TDC2015Apresentação TDC2015
Apresentação TDC2015Bruno Murawski
 
XP Programming
XP ProgrammingXP Programming
XP ProgrammingCJR, UnB
 
Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingPedro Pereira Martins
 
SEMINFO 2014 - Teste de software, uma área, uma carreira, um novo perfil.
SEMINFO 2014 -  Teste de software, uma área, uma carreira, um novo perfil.SEMINFO 2014 -  Teste de software, uma área, uma carreira, um novo perfil.
SEMINFO 2014 - Teste de software, uma área, uma carreira, um novo perfil.João Clineu - CTFL, CSM, CSD
 
Tech talk clean architecture and_pyramid_test
Tech talk clean architecture and_pyramid_testTech talk clean architecture and_pyramid_test
Tech talk clean architecture and_pyramid_testVictor Yuri Alves Tripeno
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeKamilla Queiroz Xavier
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Developer Academy
 
Programe a eficácia do seu código
Programe a eficácia do seu códigoPrograme a eficácia do seu código
Programe a eficácia do seu códigoAna Claudia Nogueira
 
Qualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saberQualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saberKamilla Queiroz Xavier
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeRafaela Prado
 

Tendances (19)

TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDD
 
DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
 
Automação de testes em projetos ágeis
Automação de testes em projetos ágeisAutomação de testes em projetos ágeis
Automação de testes em projetos ágeis
 
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de códigoSeu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
 
Ferramentas Case de Teste
Ferramentas Case de TesteFerramentas Case de Teste
Ferramentas Case de Teste
 
Apresentação TDC2015
Apresentação TDC2015Apresentação TDC2015
Apresentação TDC2015
 
XP Programming
XP ProgrammingXP Programming
XP Programming
 
Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCasting
 
SEMINFO 2014 - Teste de software, uma área, uma carreira, um novo perfil.
SEMINFO 2014 -  Teste de software, uma área, uma carreira, um novo perfil.SEMINFO 2014 -  Teste de software, uma área, uma carreira, um novo perfil.
SEMINFO 2014 - Teste de software, uma área, uma carreira, um novo perfil.
 
Tech talk clean architecture and_pyramid_test
Tech talk clean architecture and_pyramid_testTech talk clean architecture and_pyramid_test
Tech talk clean architecture and_pyramid_test
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a Qualidade
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Programe a eficácia do seu código
Programe a eficácia do seu códigoPrograme a eficácia do seu código
Programe a eficácia do seu código
 
RealDay: Introduction to TDD
RealDay: Introduction to TDDRealDay: Introduction to TDD
RealDay: Introduction to TDD
 
Qualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saberQualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saber
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao teste
 

Similaire à TDD: Programação guiada por testes

TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27Hélio Medeiros
 
Behavior Driven Development - Unificando propostas de negócio com testes e có...
Behavior Driven Development - Unificando propostas de negócio com testes e có...Behavior Driven Development - Unificando propostas de negócio com testes e có...
Behavior Driven Development - Unificando propostas de negócio com testes e có...Rafael Prallon
 
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...Renato Groff
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwareAdolfo Neto
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaRogerio Fontes
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasKleitor Franklint Correa Araujo
 
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.pdfRonaldAlves15
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareEmerson Henrique
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareLuciano Almeida
 
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003
Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003Edgar Silva
 
Cobertura de Código: Testes de Unidade
Cobertura de Código: Testes de UnidadeCobertura de Código: Testes de Unidade
Cobertura de Código: Testes de UnidadeThiago Bertuzzi
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareAndré Dias
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 
Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosDionatan default
 

Similaire à TDD: Programação guiada por testes (20)

TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Subm_SamuelPereira_FINAL
Subm_SamuelPereira_FINALSubm_SamuelPereira_FINAL
Subm_SamuelPereira_FINAL
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
Behavior Driven Development - Unificando propostas de negócio com testes e có...
Behavior Driven Development - Unificando propostas de negócio com testes e có...Behavior Driven Development - Unificando propostas de negócio com testes e có...
Behavior Driven Development - Unificando propostas de negócio com testes e có...
 
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
 
Bdd&tdd
Bdd&tddBdd&tdd
Bdd&tdd
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
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 x testes unidades
Tdd x testes unidadesTdd x testes unidades
Tdd x testes unidades
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003
Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003
 
Cobertura de Código: Testes de Unidade
Cobertura de Código: Testes de UnidadeCobertura de Código: Testes de Unidade
Cobertura de Código: Testes de Unidade
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anos
 

Plus de Instituto Stela (Florianópolis-SC, Brasil)

Plus de Instituto Stela (Florianópolis-SC, Brasil) (6)

Instituciones de I+D - Agentes de la Relación Universidad-Empresa y de la vi...
Instituciones de I+D - Agentes de la Relación Universidad-Empresa y de la vi...Instituciones de I+D - Agentes de la Relación Universidad-Empresa y de la vi...
Instituciones de I+D - Agentes de la Relación Universidad-Empresa y de la vi...
 
Currículo Lattes e Portal Inovação: Oportunidades para o especialista e a ins...
Currículo Lattes e Portal Inovação: Oportunidades para o especialista e a ins...Currículo Lattes e Portal Inovação: Oportunidades para o especialista e a ins...
Currículo Lattes e Portal Inovação: Oportunidades para o especialista e a ins...
 
Perspectivas para la construcción de indicadores en plataformas de gobierno e...
Perspectivas para la construcción de indicadores en plataformas de gobierno e...Perspectivas para la construcción de indicadores en plataformas de gobierno e...
Perspectivas para la construcción de indicadores en plataformas de gobierno e...
 
Instituto Stela S&T#006, Visão sistêmica segundo Bunge
Instituto Stela S&T#006, Visão sistêmica segundo BungeInstituto Stela S&T#006, Visão sistêmica segundo Bunge
Instituto Stela S&T#006, Visão sistêmica segundo Bunge
 
Instituto Stela S&T#004, ITIL e governança de TI
Instituto Stela S&T#004, ITIL e governança de TIInstituto Stela S&T#004, ITIL e governança de TI
Instituto Stela S&T#004, ITIL e governança de TI
 
Instituto Stela S&T#002, So you're Canadian, eh?
Instituto Stela S&T#002, So you're Canadian, eh?Instituto Stela S&T#002, So you're Canadian, eh?
Instituto Stela S&T#002, So you're Canadian, eh?
 

TDD: Programação guiada por testes

  • 1. Projeto de Software com Testes Unitários e TDD Lucas Nazário dos Santos
  • 2. Apesar do seu nome, “ test driven ” ou “ test first ” development não é na realidade uma técnica de teste. TDD força o programador a pensar em vários aspectos da funcionalidade antes de implementá-la. Muitas equipes utilizam “ customer facing ”, ou “ story ” tests para ajudar no desenvolvimento do código. Esses testes ilustram os requisitos e regras de negócio. Programadores escrevem código para fazer os testes passarem, o que mostra ao cliente que o código entregue endereça suas expectativas. TDD produz código com muito menos unit-level bugs , menos bugs funcionais e uma probabilidade exponencial de endereçar as expectativas dos stakeholders .
  • 3. TDD foca a atenção do programador na interface e no comportamento do software. Organizações reconhecerão os benefícios do TDD tanto como uma técnica de teste como de projeto de software. Quando se escreve o teste antes do código, o programador decide não somente sobre a interface do software, mas também sobre o seu comportamento. TDD foca em como a técnica guia a análise, projeto e decisões de programação.
  • 4. É uma estratégia de desenvolvimento que endereça tanto o projeto quanto o teste. TDD afeta a qualidade interna do projeto de software.
  • 5.  
  • 6.
  • 7. Teste unitário é simples. Qualquer um pode utilizar. Teste unitário
  • 8. Você não precisa de nada sofisticado. Teste unitário
  • 9. Os testes unitários cooperam com a gerência de risco Teste unitário
  • 10. Os testes unitários exercitam o software Teste unitário
  • 11. Os testes unitários documentam as funcionalidades Teste unitário
  • 13. Test-driven development Red Green Refactor Adiciona um teste que falha Adiciona qualquer código Refatora o código conforme necessário
  • 19. Projetando software com TDD Durante os primeiros dias de cada iteração, nós discutimos as stories com o cliente . Nós utilizamos toda a informação capturada através das interações com os clientes para escrever high-level test cases para cada story . Quando o desenvolvedor inicia a codificação de uma story, ele estuda os test cases para garantir que as funcionalidades básicas foram entendidas. Assim que a codificação inicia, é escrito um teste executável simples para a story . O programador escreve código para fazer o teste passar e então mais testes unitários podem ser adicionados para adequar a cobertura.
  • 20. Projetando software com TDD Etapa 1: Análise Disponibilizar uma opção para ordenação dos itens do carrinho de compras (por ordem de inserção e alfabética). High-level test cases User stories
  • 21. Etapa 2: Projeto Projetando software com TDD Disponibilizar uma opção para ordenação dos itens do carrinho de compras (por ordem de inserção e alfabética).
  • 22. Projetando software com TDD Etapa 2: Projeto
  • 23. Projetando software com TDD Etapa 2: Projeto
  • 24. Projetando software com TDD Etapa 2: Projeto - programação pelos pares
  • 25. Projetando software com TDD Etapa 2: Projeto - revisão pelos pares
  • 26. Projetando software com TDD Etapa 3: Codificação – 1º cenário Projeta Codifica Projetista/Programador
  • 27. Projetando software com TDD Etapa 3: Codificação – 2º cenário Projeta Codifica Projetista Programador
  • 28. Projetando software com TDD Etapa 4: Teste Recebe Testa Testador
  • 29. Projetando software com TDD Etapa 4: Teste “ Estudos revelaram que programadores utilizando TDD produzem código que passam com sucesso entre 18% e 50% mais casos de uso externo do que código produzido por grupos que não utilizam TDD.” Software Architecture Improvement through Test-Driven Development (ACM Press, 2005)
  • 31. Limitações Projeto de componentes intimamente relacionados a containers
  • 32. Onde procurar a partir daqui? http://retriever.stela.org.br/
  • 33. Onde procurar a partir daqui? http://www.junit.org/
  • 34. Onde procurar a partir daqui?
  • 35. Onde procurar a partir daqui? Referência para os artigos
  • 36. MUITO OBRIGADO! Lucas Nazário dos Santos TDD foca a atenção do programador na interface e no comportamento do software. Quando se escreve o teste antes do código, o programador decide não somente sobre a interface do software, mas também sobre o seu comportamento. Conclusão