SlideShare una empresa de Scribd logo
1 de 16
Test Driven Development
(Desenvolvimento Guiado ao
Teste)
Otávio Augusto
oaugusto.com
Agenda
● Sobre mim
● Testes
● Testes de softwares
○ Cenário de teste
○ Fases de um processo de testes
● Testes tradicionais
TDD - Test Driven Development
(Desenvolvimento Guiado por
Teste)
Por que utilizar TDD?
Exemplos práticos
Dúvidas
Referências bibliográficas
Sobre mim
● Graduando de Engenharia da Computação pela Universidade Federal do Pará.
○ 9º Semestre.
● Graduação sanduíche pela Portland State University.
○ Foco em engenharia de software.
● SAEST – Superintendência de Assistência Estudantil
○ Desenvolvimento de Aplicações Web - Foco em Front-end/UX
○ 2016 – Atualmente
● Ezpeed - Startup para soluções de logística
Teste
Qualquer meio para verificar ou testar a
qualidade ou a veracidade de algo; prova,
exame, verificação.
Teste de Software
É o processo de execução de um produto
para determinar se ele atingiu suas
especificações e funcionou corretamente no
ambiente para o qual foi projetado.
Teste de Software - Cenário
Legenda:
D(P) = Domínio de
entrada do programa;
T = Domínio de Caso de
Testes;
P = Programa;
S(P) = Especificação do
Programa;
Teste de Software - Fases do Processo
Testes Tradicionais
Quase sempre realizada no final de cada
versão, onde se analisa os requisitos a
partir das especificações e das
documentações geradas.
Teste de Sistema
Teste Integrado
Teste
Unitário
Testes Ágeis
É um processo empírico, sendo realizado
em todas as fases do projeto, do início ao
fim, validando os requisitos desde sua
criação até a entrega final. Teste de
Sistema
Teste Integrado
Teste Unitário
Diferenças entre Testes tradicionais e ágeis
Tradicional Ágil
Ocorre após o desenvolvimento Ocorre durante o desenvolvimento em ciclo
contínuos
Realizado por uma equipe independente Realizado por todos os membros
Enfoque em meios manuais e automáticos Enfoque por meios automáticos
Enfoque em caixa preta na GUI Enfoque em caixa preta e branca
Roteiros para a execução manual Complementação de requisitos
Test Driven Development
● Prática ágil de engenharia de software.
● Escrever o teste da funcionalidade antes
de se codificar a funcionalidade.
● Desenvolvimento dirigido por testes.
Por que utilizar TDD?
1. Apenas codificação necessária para que o teste passe.
2. Garantia da qualidade de código.
3. Garantia de cada unidade de funcionalidade seja testada.
4. Todos os requisitos documentados de forma automatizada.
5. Arquitetura do software vai aparecer de forma emergente.
TDD - Exemplo prático
● Criar teste de funcionalidade para somar dois números.
○ 2 + 3 = 5.
● Testar a funcionalidade.
○ Teste irá falhar, pois não há tal funcionalidade.
● Criar a funcionalidade para que o teste passe.
Dúvidas?
Referências Bibliográficas
● ELGRABLY, Isaac Souza. Aula Expositiva: Testes de software Ágeis e TDD. Belém:
UFPA, 2017.
● BECK, Kent. TDD - Desenvolvimento Guiado por Testes.
Test Driven Development
(Desenvolvimento Guiado ao
Teste)
Otávio Augusto
oaugusto.com

Más contenido relacionado

La actualidad más candente

Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilElias Nogueira
 
Final Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applicationsFinal Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applicationsLuiz Henrique
 
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 carreiraTaís Dall'Oca
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilElias Nogueira
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Daniel Carvalhinho
 
Integrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareIntegrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareConviso Application Security
 
Facilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHPFacilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHPPedro Chaves
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville minastestingconference
 
Panorama geral sobre testes e qualidade de software
Panorama geral sobre testes e qualidade  de softwarePanorama geral sobre testes e qualidade  de software
Panorama geral sobre testes e qualidade de softwareAriane Izac
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)Renato Groff
 
Testes de software
Testes de softwareTestes de software
Testes de softwareVitor Castro
 
Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)
Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)
Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)Júlio de Lima
 
Como se tornar Agile Tester
Como se tornar Agile TesterComo se tornar Agile Tester
Como se tornar Agile TesterElias Nogueira
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeRafaela Prado
 

La actualidad más candente (20)

Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
Cultura de testes
Cultura de testesCultura de testes
Cultura de testes
 
Final Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applicationsFinal Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applications
 
Automação de Testes - How to do It Right
Automação de Testes - How to do It RightAutomação de Testes - How to do It Right
Automação de Testes - How to do It Right
 
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
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágil
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
 
Integrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareIntegrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de software
 
Facilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHPFacilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHP
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville
 
QA Ninja Conference 2017
QA Ninja Conference 2017QA Ninja Conference 2017
QA Ninja Conference 2017
 
Panorama geral sobre testes e qualidade de software
Panorama geral sobre testes e qualidade  de softwarePanorama geral sobre testes e qualidade  de software
Panorama geral sobre testes e qualidade de software
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
TDD
TDDTDD
TDD
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)
Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)
Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Como se tornar Agile Tester
Como se tornar Agile TesterComo se tornar Agile Tester
Como se tornar Agile Tester
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao teste
 

Similar a 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 IJoão Lourenço
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
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.pptxRoberto Nunes
 
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 SoftwareCloves da Rocha
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfHoctairBernardino
 
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
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de softwareFelipe Bugov
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 
T@rget trust curso de introdução ao processo de teste de software
T@rget trust   curso de introdução ao processo de teste de softwareT@rget trust   curso de introdução ao processo de teste de software
T@rget trust curso de introdução ao processo de teste de softwareTargettrust
 
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 MestreCloves da Rocha
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testeselliando dias
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de UnidadeAline Ferreira
 
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Renato Groff
 

Similar a Test Driven Development (20)

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
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
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
 
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
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdf
 
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
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
T@rget trust curso de introdução ao processo de teste de software
T@rget trust   curso de introdução ao processo de teste de softwareT@rget trust   curso de introdução ao processo de teste de software
T@rget trust curso de introdução ao processo de teste de software
 
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
 
AppTesting
AppTestingAppTesting
AppTesting
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de software Teste de software
Teste de software
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 
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
 
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
 

Test Driven Development

  • 1. Test Driven Development (Desenvolvimento Guiado ao Teste) Otávio Augusto oaugusto.com
  • 2. Agenda ● Sobre mim ● Testes ● Testes de softwares ○ Cenário de teste ○ Fases de um processo de testes ● Testes tradicionais TDD - Test Driven Development (Desenvolvimento Guiado por Teste) Por que utilizar TDD? Exemplos práticos Dúvidas Referências bibliográficas
  • 3. Sobre mim ● Graduando de Engenharia da Computação pela Universidade Federal do Pará. ○ 9º Semestre. ● Graduação sanduíche pela Portland State University. ○ Foco em engenharia de software. ● SAEST – Superintendência de Assistência Estudantil ○ Desenvolvimento de Aplicações Web - Foco em Front-end/UX ○ 2016 – Atualmente ● Ezpeed - Startup para soluções de logística
  • 4. Teste Qualquer meio para verificar ou testar a qualidade ou a veracidade de algo; prova, exame, verificação.
  • 5. Teste de Software É o processo de execução de um produto para determinar se ele atingiu suas especificações e funcionou corretamente no ambiente para o qual foi projetado.
  • 6. Teste de Software - Cenário Legenda: D(P) = Domínio de entrada do programa; T = Domínio de Caso de Testes; P = Programa; S(P) = Especificação do Programa;
  • 7. Teste de Software - Fases do Processo
  • 8. Testes Tradicionais Quase sempre realizada no final de cada versão, onde se analisa os requisitos a partir das especificações e das documentações geradas. Teste de Sistema Teste Integrado Teste Unitário
  • 9. Testes Ágeis É um processo empírico, sendo realizado em todas as fases do projeto, do início ao fim, validando os requisitos desde sua criação até a entrega final. Teste de Sistema Teste Integrado Teste Unitário
  • 10. Diferenças entre Testes tradicionais e ágeis Tradicional Ágil Ocorre após o desenvolvimento Ocorre durante o desenvolvimento em ciclo contínuos Realizado por uma equipe independente Realizado por todos os membros Enfoque em meios manuais e automáticos Enfoque por meios automáticos Enfoque em caixa preta na GUI Enfoque em caixa preta e branca Roteiros para a execução manual Complementação de requisitos
  • 11. Test Driven Development ● Prática ágil de engenharia de software. ● Escrever o teste da funcionalidade antes de se codificar a funcionalidade. ● Desenvolvimento dirigido por testes.
  • 12. Por que utilizar TDD? 1. Apenas codificação necessária para que o teste passe. 2. Garantia da qualidade de código. 3. Garantia de cada unidade de funcionalidade seja testada. 4. Todos os requisitos documentados de forma automatizada. 5. Arquitetura do software vai aparecer de forma emergente.
  • 13. TDD - Exemplo prático ● Criar teste de funcionalidade para somar dois números. ○ 2 + 3 = 5. ● Testar a funcionalidade. ○ Teste irá falhar, pois não há tal funcionalidade. ● Criar a funcionalidade para que o teste passe.
  • 15. Referências Bibliográficas ● ELGRABLY, Isaac Souza. Aula Expositiva: Testes de software Ágeis e TDD. Belém: UFPA, 2017. ● BECK, Kent. TDD - Desenvolvimento Guiado por Testes.
  • 16. Test Driven Development (Desenvolvimento Guiado ao Teste) Otávio Augusto oaugusto.com