SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Clean code
Capítulo 09
    Testes de Unidade
Grupo:
● Victor Carvalho
● Marco Aurélio
● Diogo Ribeiro
● Henrique Hirako
Testes de unidade
1. As 3 leis do TDD
  a. Não escrever código de produção sem ter criado
     seu teste antes;
  b. Não escrever mais de um teste de unidade do que o
     necessário para falhar;
  c. Não escrever mais código de produção do que o
     necessário para o teste.


2. Como manter os testes limpos

3. Testes e a evolução do Código
Testes limpos e Linguagem de
testes específica a domínio

- Utilização do padrão de codificação nos
testes;
- O código do testes devem seguir as regras de
nomenclatura auto-explicativa;
- Utilização de funções utilitárias e API's para
testes;
- Agiliza e flexibiliza o desenvolvimento e
aumenta a acurácia dos testes;
Um padrão duplo e Uma
confirmação por teste

- Ambiente de Produção X Ambiente de
Testes;
- Exemplo: StringBuffer;
- Uma assertiva por teste;
- Um único conceito por teste;
- Concisão e compreensão;
- Legibilidade, legibilidade...
Um único conceito por teste e F.I.R.
S.T.
1. Conceitos diferentes devem ser testados em
   testes diferentes
2. F.I.R.S.T - 5 regras para testes limpos
  a. Fast: Testes lentos não serão rodados com frequência
  b. Independent: Testes devem ser rodados independentemente
       e em qualquer ordem
  c.   Repeatable: Testes devem rodar em qualquer ambiente caso
       contrário existirá sempre uma desculpa para uma falha
  d.   Self-Validating: Testes devem ter uma saida booleana, ou
       seja, o testador não deve verificar manualmente a saida do
       teste
  e.   Timely: Testes unitários devem ser escritos antes do código
       em produção.

Contenu connexe

Tendances

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
 
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
 
Test Driven Development - Em busca de feedback util e concreto
Test Driven Development - Em busca de feedback util e concretoTest Driven Development - Em busca de feedback util e concreto
Test Driven Development - Em busca de feedback util e concretoHélio Medeiros
 
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
 
Incluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineIncluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineClaudio Romao
 
Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Bruno Maomeh
 
Desenvolvimento orientado a testes - TDD
Desenvolvimento orientado a testes - TDDDesenvolvimento orientado a testes - TDD
Desenvolvimento orientado a testes - TDDwashingtonlslima
 
CBSoft 2013 - Descrição dos Problemas (CbE)
CBSoft 2013 - Descrição dos Problemas (CbE)CBSoft 2013 - Descrição dos Problemas (CbE)
CBSoft 2013 - Descrição dos Problemas (CbE)Wildtech
 
Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.Rômulo Augusto Santos
 
Multidisciplinaridade - Desconstruindo especialistas e construindo times
Multidisciplinaridade - Desconstruindo especialistas e construindo timesMultidisciplinaridade - Desconstruindo especialistas e construindo times
Multidisciplinaridade - Desconstruindo especialistas e construindo timesHélio Medeiros
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de softwareHeider Lopes
 
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
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 

Tendances (20)

Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016
 
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
 
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
 
Test Driven Development - Em busca de feedback util e concreto
Test Driven Development - Em busca de feedback util e concretoTest Driven Development - Em busca de feedback util e concreto
Test Driven Development - Em busca de feedback util e concreto
 
Introdução a TDD
Introdução a TDDIntrodução a TDD
Introdução a 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
 
Python tdc2019
Python tdc2019 Python tdc2019
Python tdc2019
 
Incluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineIncluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no Pipeline
 
Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016
 
Desenvolvimento orientado a testes - TDD
Desenvolvimento orientado a testes - TDDDesenvolvimento orientado a testes - TDD
Desenvolvimento orientado a testes - TDD
 
CBSoft 2013 - Descrição dos Problemas (CbE)
CBSoft 2013 - Descrição dos Problemas (CbE)CBSoft 2013 - Descrição dos Problemas (CbE)
CBSoft 2013 - Descrição dos Problemas (CbE)
 
TDD com Python
TDD com PythonTDD com Python
TDD com Python
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.
 
Multidisciplinaridade - Desconstruindo especialistas e construindo times
Multidisciplinaridade - Desconstruindo especialistas e construindo timesMultidisciplinaridade - Desconstruindo especialistas e construindo times
Multidisciplinaridade - Desconstruindo especialistas e construindo times
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software
 
RealDay: Introduction to TDD
RealDay: Introduction to TDDRealDay: Introduction to TDD
RealDay: Introduction to TDD
 
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
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Tdd na veia
Tdd na veiaTdd na veia
Tdd na veia
 

En vedette

El ciclismo en colombia 1
El ciclismo en colombia 1El ciclismo en colombia 1
El ciclismo en colombia 1jairosanque
 
Presentation
Presentation Presentation
Presentation sidiator
 
Camilo y Abril
Camilo y AbrilCamilo y Abril
Camilo y AbrilTICICEI
 
Fútbol+la..[1]
Fútbol+la..[1]Fútbol+la..[1]
Fútbol+la..[1]fefomo
 
Lista zgloszen uakt.
Lista zgloszen uakt.Lista zgloszen uakt.
Lista zgloszen uakt.RRV96
 

En vedette (7)

El ciclismo en colombia 1
El ciclismo en colombia 1El ciclismo en colombia 1
El ciclismo en colombia 1
 
LAWEBCAM
LAWEBCAMLAWEBCAM
LAWEBCAM
 
Presentation
Presentation Presentation
Presentation
 
Camilo y Abril
Camilo y AbrilCamilo y Abril
Camilo y Abril
 
Inverno Suizo
Inverno SuizoInverno Suizo
Inverno Suizo
 
Fútbol+la..[1]
Fútbol+la..[1]Fútbol+la..[1]
Fútbol+la..[1]
 
Lista zgloszen uakt.
Lista zgloszen uakt.Lista zgloszen uakt.
Lista zgloszen uakt.
 

Similaire à Clean code TDD

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
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Thiago Barradas
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec ComIgor Rozani
 
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe munizMatheus de Lara Calache
 
TDD com Código Legado
TDD com Código LegadoTDD com Código Legado
TDD com Código LegadoCesar Romero
 
Desenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesDesenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesAndre Carlucci
 
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? - LadyTalksDiana Ungaro Arnos
 
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
 
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
 
TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"Cesar Romero
 
Testes Unitários - 1 Sessão beiraJUG
Testes Unitários - 1 Sessão beiraJUGTestes Unitários - 1 Sessão beiraJUG
Testes Unitários - 1 Sessão beiraJUGbeiraJUG
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testeselliando dias
 

Similaire à Clean code TDD (20)

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
 
Codigo limpo.pptx
Codigo limpo.pptxCodigo limpo.pptx
Codigo limpo.pptx
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
 
Code Review
Code ReviewCode Review
Code Review
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec Com
 
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
 
TDD com Código Legado
TDD com Código LegadoTDD com Código Legado
TDD com Código Legado
 
Desenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por TestesDesenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por Testes
 
Desenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesDesenvolvimento Orientado a Testes
Desenvolvimento Orientado a Testes
 
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
 
Refatoração de Código Legado
Refatoração de Código LegadoRefatoração de Código Legado
Refatoração de Código Legado
 
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
 
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...
 
TDD na Prática
TDD na PráticaTDD na Prática
TDD na Prática
 
TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"
 
Testes Unitários - 1 Sessão beiraJUG
Testes Unitários - 1 Sessão beiraJUGTestes Unitários - 1 Sessão beiraJUG
Testes Unitários - 1 Sessão beiraJUG
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 
Khomp testes complexos!
Khomp   testes complexos!Khomp   testes complexos!
Khomp testes complexos!
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
 

Plus de Inael Rodrigues

Artigo Monitoramento de Pastagem
Artigo Monitoramento de PastagemArtigo Monitoramento de Pastagem
Artigo Monitoramento de PastagemInael Rodrigues
 
Arquiteturas de sistemas reais
Arquiteturas de sistemas reaisArquiteturas de sistemas reais
Arquiteturas de sistemas reaisInael Rodrigues
 
Codigo limpo: Nomes Significativos Cap 2
Codigo limpo:  Nomes Significativos Cap 2Codigo limpo:  Nomes Significativos Cap 2
Codigo limpo: Nomes Significativos Cap 2Inael Rodrigues
 
Código limpo: Comentários
Código limpo:   ComentáriosCódigo limpo:   Comentários
Código limpo: ComentáriosInael Rodrigues
 
Código limpo: Funções Capítulo 3
Código limpo: Funções  Capítulo 3Código limpo: Funções  Capítulo 3
Código limpo: Funções Capítulo 3Inael Rodrigues
 
Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6Inael Rodrigues
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Inael Rodrigues
 
Livro Código limpo: Classes
Livro Código limpo:  ClassesLivro Código limpo:  Classes
Livro Código limpo: ClassesInael Rodrigues
 
Teste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiTeste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiInael Rodrigues
 
TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android Inael Rodrigues
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityInael Rodrigues
 
Ferramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilFerramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilInael Rodrigues
 
Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2Inael Rodrigues
 
Android bootcamp 06-01-2012 Part 1
Android bootcamp  06-01-2012 Part 1Android bootcamp  06-01-2012 Part 1
Android bootcamp 06-01-2012 Part 1Inael Rodrigues
 

Plus de Inael Rodrigues (18)

Artigo Monitoramento de Pastagem
Artigo Monitoramento de PastagemArtigo Monitoramento de Pastagem
Artigo Monitoramento de Pastagem
 
Map Reduce
Map ReduceMap Reduce
Map Reduce
 
Arquiteturas de sistemas reais
Arquiteturas de sistemas reaisArquiteturas de sistemas reais
Arquiteturas de sistemas reais
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Codigo limpo: Nomes Significativos Cap 2
Codigo limpo:  Nomes Significativos Cap 2Codigo limpo:  Nomes Significativos Cap 2
Codigo limpo: Nomes Significativos Cap 2
 
Código limpo: Limites
Código limpo: LimitesCódigo limpo: Limites
Código limpo: Limites
 
Código limpo: Comentários
Código limpo:   ComentáriosCódigo limpo:   Comentários
Código limpo: Comentários
 
Código limpo: Funções Capítulo 3
Código limpo: Funções  Capítulo 3Código limpo: Funções  Capítulo 3
Código limpo: Funções Capítulo 3
 
Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7
 
Livro Código limpo: Classes
Livro Código limpo:  ClassesLivro Código limpo:  Classes
Livro Código limpo: Classes
 
Paa algoritmos gulosos
Paa  algoritmos gulososPaa  algoritmos gulosos
Paa algoritmos gulosos
 
Teste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiTeste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta Jabuti
 
TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android University
 
Ferramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilFerramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento Ágil
 
Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2
 
Android bootcamp 06-01-2012 Part 1
Android bootcamp  06-01-2012 Part 1Android bootcamp  06-01-2012 Part 1
Android bootcamp 06-01-2012 Part 1
 

Clean code TDD

  • 1. Clean code Capítulo 09 Testes de Unidade
  • 2. Grupo: ● Victor Carvalho ● Marco Aurélio ● Diogo Ribeiro ● Henrique Hirako
  • 3. Testes de unidade 1. As 3 leis do TDD a. Não escrever código de produção sem ter criado seu teste antes; b. Não escrever mais de um teste de unidade do que o necessário para falhar; c. Não escrever mais código de produção do que o necessário para o teste. 2. Como manter os testes limpos 3. Testes e a evolução do Código
  • 4. Testes limpos e Linguagem de testes específica a domínio - Utilização do padrão de codificação nos testes; - O código do testes devem seguir as regras de nomenclatura auto-explicativa; - Utilização de funções utilitárias e API's para testes; - Agiliza e flexibiliza o desenvolvimento e aumenta a acurácia dos testes;
  • 5. Um padrão duplo e Uma confirmação por teste - Ambiente de Produção X Ambiente de Testes; - Exemplo: StringBuffer; - Uma assertiva por teste; - Um único conceito por teste; - Concisão e compreensão; - Legibilidade, legibilidade...
  • 6. Um único conceito por teste e F.I.R. S.T. 1. Conceitos diferentes devem ser testados em testes diferentes 2. F.I.R.S.T - 5 regras para testes limpos a. Fast: Testes lentos não serão rodados com frequência b. Independent: Testes devem ser rodados independentemente e em qualquer ordem c. Repeatable: Testes devem rodar em qualquer ambiente caso contrário existirá sempre uma desculpa para uma falha d. Self-Validating: Testes devem ter uma saida booleana, ou seja, o testador não deve verificar manualmente a saida do teste e. Timely: Testes unitários devem ser escritos antes do código em produção.