SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Desenvolvimento
orientado a testes
TEST DRIVEN DEVELOPMENT (TDD)
Conceitos
Os problemas de requisitos são reduzidos quando utiliza-se de metodologias
ágeis
O TDD é um estilo de desenvolvimento de software ágil derivado do método
Extreme Programming (XP)
Kent Beck, considerado o criador ou o 'descobridor' da técnica
Deve-se primeiro escrever os testes, antes de implementar o sistema
Bem segundo Freeman,
você não tem nada a perder, a não ser os seus
bugs.
Conceitos
Imagine você adquirindo um carro
...de repente você está andando e nota que na curva o carro não é
eficiente.
O TDD se baseia em um ciclo curto de repetições de testes
O mesmo acontece com o cliente
de um software
Conceitos
“Qualidade de software é um processo
sistemático que focaliza todas as etapas e
artefatos produzidos com o objetivo de garantir
a conformidade de processos e
produtos, prevenindo e eliminando defeitos”.
Bartié
Segundo Myers,
quanto mais tardiamente
descobrirmos os erros, mais caros
estes se tornam.
- Regra dos 10
Desenvolvimento orientado a testes - TDD
O TDD
Os testes são utilizados para facilitar no entendimento do
projeto
- A criação de teste unitários ou de componentes é parte crucial para o TDD
- Cada componente é testado independentemente
- É necessário testar o sistema como um todo
“Os componentes individuais são testados
para garantir que operem
corretamente...” Presmann
Benefícios
E qual o benefício em utilizar o TDD?
- torna o processo mais confiável
- reduz custos
- código seguro e sem complexidades
- evita retrabalho
Redução na quantidade de
defeitos
Ciclo do TDD
O Ciclo do TDD é simples
1 criamos um teste
2 Fazemos a codificação para passar no teste
3 Refatoramos nosso código
Ciclo do TDD
Ciclo do TDD
O vermelho é a escrita do primeiro
teste antes mesmo da lógica existir
O verde é o ponto em que a lógica
para que o teste previamente criado
passe
O refatora é a melhoria do código.
Modelo F.I.R.S.T.
F (Fast) - Rápidos: devem ser rápidos, pois testam apenas uma
unidade;
I (Isolated) - Testes unitários são isolados, testando individualmente
as unidades e não sua integração;
R (Repeateble) - Repetição nos testes, com resultados de
comportamento constante;
S (Self-verifying) - A auto verificação deve verificar se passou ou se
deu como falha o teste;
T (Timely) - O teste deve ser oportuno, sendo um teste por unidade.
Implementação do TDD
Unit: O JUnit é um framework de teste para Java;
TesteNG: Outra ferramenta de teste unitária, disponível para Java;
PHPUnit: Framework XUnit para teste unitário em PHP;
SimpleTest: Outra ferramenta para realização de teste para PHP;
NUnit: Framework de teste no molde XUnit para a plataforma .NET;
Jasmine: Framework para teste unitário de JavaScript;
CUnit: Ferramenta para os testes unitários disponível para Linguagem C;
PyUnit: Framework Xunit para testes na linguagem Python.
Conclusão
Por que não uso?
- O começo
-O tempo

Weitere ähnliche Inhalte

Was ist angesagt?

design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introduçãoelliando dias
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequenciaItalo Costa
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturaisthaisedd
 
Programação em Banco de Dados - Aula 23/08/2018
Programação em Banco de Dados - Aula 23/08/2018Programação em Banco de Dados - Aula 23/08/2018
Programação em Banco de Dados - Aula 23/08/2018Elaine Cecília Gatto
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageCloves da Rocha
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de softwareNorton Guimarães
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Diagrama de classe
Diagrama de classeDiagrama de classe
Diagrama de classeSuissa
 
Tcc ii curso análise e desenvolvimento de sistemas
Tcc ii curso análise e desenvolvimento de sistemasTcc ii curso análise e desenvolvimento de sistemas
Tcc ii curso análise e desenvolvimento de sistemasCarlos Eduardo Kadu
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentElias Nogueira
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development CodeOps Technologies LLP
 

Was ist angesagt? (20)

design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
Uml
UmlUml
Uml
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequencia
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Princípios SOLID
Princípios SOLIDPrincípios SOLID
Princípios SOLID
 
Uml ppoint
Uml ppointUml ppoint
Uml ppoint
 
Programação em Banco de Dados - Aula 23/08/2018
Programação em Banco de Dados - Aula 23/08/2018Programação em Banco de Dados - Aula 23/08/2018
Programação em Banco de Dados - Aula 23/08/2018
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de software
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Aula 06 - Diagrama de classes
Aula 06 - Diagrama de classesAula 06 - Diagrama de classes
Aula 06 - Diagrama de classes
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Diagrama de classe
Diagrama de classeDiagrama de classe
Diagrama de classe
 
Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
 
clean code
clean codeclean code
clean code
 
Tcc ii curso análise e desenvolvimento de sistemas
Tcc ii curso análise e desenvolvimento de sistemasTcc ii curso análise e desenvolvimento de sistemas
Tcc ii curso análise e desenvolvimento de sistemas
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
 

Ähnlich wie Desenvolvimento orientado a testes - TDD

Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareDextra Sistemas / Etec Itu
 
TDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software ÁgilTDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software ÁgilBruno Eustáquio
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de UnidadeAline Ferreira
 
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
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
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
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Desenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeDesenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeUniversidade Tiradentes
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoflavio1110
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27Hélio Medeiros
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testeselliando dias
 

Ähnlich wie Desenvolvimento orientado a testes - TDD (20)

Teste automatizados e tdd
Teste automatizados e tddTeste automatizados e tdd
Teste automatizados e tdd
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de software
 
TDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software ÁgilTDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software Ágil
 
Teste Driven Development
Teste Driven DevelopmentTeste Driven Development
Teste Driven Development
 
Tdd x testes unidades
Tdd x testes unidadesTdd x testes unidades
Tdd x testes unidades
 
RealDay: Introduction to TDD
RealDay: Introduction to TDDRealDay: Introduction to TDD
RealDay: Introduction to TDD
 
TDD
TDDTDD
TDD
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
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
 
Desenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por TestesDesenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por Testes
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
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
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Desenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeDesenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por teste
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojo
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 
TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
TDD com Python
TDD com PythonTDD com Python
TDD com Python
 

Kürzlich hochgeladen

O papel da automação de processos no mundo do trabalho pós-moderno
O papel da automação de processos no mundo do trabalho pós-modernoO papel da automação de processos no mundo do trabalho pós-moderno
O papel da automação de processos no mundo do trabalho pós-modernoDenis Pereira Raymundo
 
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...Priscila Ribeiro Chagas
 
Knowtree - Extração de Dados com o KAPE.
Knowtree - Extração de Dados com o KAPE.Knowtree - Extração de Dados com o KAPE.
Knowtree - Extração de Dados com o KAPE.Thiago lindolfo
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 
TI EXAMES - NIST Cybersecurity Framework.pdf
TI EXAMES - NIST Cybersecurity Framework.pdfTI EXAMES - NIST Cybersecurity Framework.pdf
TI EXAMES - NIST Cybersecurity Framework.pdfRodrigoMori7
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 

Kürzlich hochgeladen (7)

O papel da automação de processos no mundo do trabalho pós-moderno
O papel da automação de processos no mundo do trabalho pós-modernoO papel da automação de processos no mundo do trabalho pós-moderno
O papel da automação de processos no mundo do trabalho pós-moderno
 
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
 
Knowtree - Extração de Dados com o KAPE.
Knowtree - Extração de Dados com o KAPE.Knowtree - Extração de Dados com o KAPE.
Knowtree - Extração de Dados com o KAPE.
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
TI EXAMES - NIST Cybersecurity Framework.pdf
TI EXAMES - NIST Cybersecurity Framework.pdfTI EXAMES - NIST Cybersecurity Framework.pdf
TI EXAMES - NIST Cybersecurity Framework.pdf
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 

Desenvolvimento orientado a testes - TDD

  • 1. Desenvolvimento orientado a testes TEST DRIVEN DEVELOPMENT (TDD)
  • 2. Conceitos Os problemas de requisitos são reduzidos quando utiliza-se de metodologias ágeis O TDD é um estilo de desenvolvimento de software ágil derivado do método Extreme Programming (XP) Kent Beck, considerado o criador ou o 'descobridor' da técnica Deve-se primeiro escrever os testes, antes de implementar o sistema Bem segundo Freeman, você não tem nada a perder, a não ser os seus bugs.
  • 3. Conceitos Imagine você adquirindo um carro ...de repente você está andando e nota que na curva o carro não é eficiente. O TDD se baseia em um ciclo curto de repetições de testes O mesmo acontece com o cliente de um software
  • 4. Conceitos “Qualidade de software é um processo sistemático que focaliza todas as etapas e artefatos produzidos com o objetivo de garantir a conformidade de processos e produtos, prevenindo e eliminando defeitos”. Bartié
  • 5. Segundo Myers, quanto mais tardiamente descobrirmos os erros, mais caros estes se tornam. - Regra dos 10
  • 7. O TDD Os testes são utilizados para facilitar no entendimento do projeto - A criação de teste unitários ou de componentes é parte crucial para o TDD - Cada componente é testado independentemente - É necessário testar o sistema como um todo “Os componentes individuais são testados para garantir que operem corretamente...” Presmann
  • 8. Benefícios E qual o benefício em utilizar o TDD? - torna o processo mais confiável - reduz custos - código seguro e sem complexidades - evita retrabalho Redução na quantidade de defeitos
  • 9. Ciclo do TDD O Ciclo do TDD é simples 1 criamos um teste 2 Fazemos a codificação para passar no teste 3 Refatoramos nosso código
  • 11. Ciclo do TDD O vermelho é a escrita do primeiro teste antes mesmo da lógica existir O verde é o ponto em que a lógica para que o teste previamente criado passe O refatora é a melhoria do código.
  • 12. Modelo F.I.R.S.T. F (Fast) - Rápidos: devem ser rápidos, pois testam apenas uma unidade; I (Isolated) - Testes unitários são isolados, testando individualmente as unidades e não sua integração; R (Repeateble) - Repetição nos testes, com resultados de comportamento constante; S (Self-verifying) - A auto verificação deve verificar se passou ou se deu como falha o teste; T (Timely) - O teste deve ser oportuno, sendo um teste por unidade.
  • 13. Implementação do TDD Unit: O JUnit é um framework de teste para Java; TesteNG: Outra ferramenta de teste unitária, disponível para Java; PHPUnit: Framework XUnit para teste unitário em PHP; SimpleTest: Outra ferramenta para realização de teste para PHP; NUnit: Framework de teste no molde XUnit para a plataforma .NET; Jasmine: Framework para teste unitário de JavaScript; CUnit: Ferramenta para os testes unitários disponível para Linguagem C; PyUnit: Framework Xunit para testes na linguagem Python.
  • 14. Conclusão Por que não uso? - O começo -O tempo