Test Driven Development

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
1 de 16

Mais conteúdo relacionado

Mais procurados(20)

Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
Elias Nogueira5.7K visualizações
Cultura de testesCultura de testes
Cultura de testes
Cristiano Cunha130 visualizações
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
João Lucas Fernandes Coimbra225 visualizações
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
Elias Nogueira7.1K visualizações
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
Conviso Application Security775 visualizações
QA Ninja Conference 2017QA Ninja Conference 2017
QA Ninja Conference 2017
Igor Rosa Macedo383 visualizações
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
Renato Groff3.8K visualizações
TDDTDD
TDD
Daniel Fonseca Castro233 visualizações
Testes de softwareTestes de software
Testes de software
Vitor Castro7.5K visualizações
Teste de softwareTeste de software
Teste de software
Daniel Paulo de Assis1.5K visualizações
Como se tornar Agile TesterComo se tornar Agile Tester
Como se tornar Agile Tester
Elias Nogueira2.6K visualizações
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao teste
Rafaela Prado190 visualizações

Similar a Test Driven Development(20)

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ço6.1K visualizações
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
Camilo Ribeiro1.7K visualizações
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
Roberto Nunes53 visualizações
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
Cloves da Rocha257 visualizações
Automação de testes em projetos ágeisAutomação de testes em projetos ágeis
Automação de testes em projetos ágeis
Cristiano Caetano534 visualizações
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
Mauricio Cesar Santos da Purificação991 visualizações
4   engenharia de software4   engenharia de software
4 engenharia de software
Felipe Bugov499 visualizações
Teste de softwareTeste de software
Teste de software
Nylce Garcia167 visualizações
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 Rocha326 visualizações
AppTestingAppTesting
AppTesting
lucyverde225 visualizações
Teste de softwareTeste de software
Teste de software
Rodrigo Cardoso Alves Fonte528 visualizações
Teste de software Teste de software
Teste de software
Allan Almeida de Araújo121 visualizações
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
elliando dias449 visualizações
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
Aline Ferreira1.1K visualizações
Teste Driven DevelopmentTeste Driven Development
Teste Driven Development
Eduardo Carvalho909 visualizações
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012
Adriano Bertucci2.9K visualizações

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