SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
Testes de unidade
Felipe Muniz | Igor Rozani
Apoio
Apoio
Compartilhar
#rpteccom
O que são testes de unidade?
• São testes de componentes individuais de um software com o
objetivo de validar se cada um deles está de acordo com o
que foi projetado.
• Em programação orientada a objetos, um teste de unidade irá
testar um e apenas um método do código de aplicação.
O que são testes de unidade?
Por que testar?
• Feedback rápido durante manutenções no sistema.
• Documentação técnica.
• Validação do design adotado no código.
• Validação de métodos isoladamente.
• Para deixar o cara da segunda palestra feliz.
Frameworks de teste
Test runners
Estrutura
• Os testes devem ser organizados em 3 etapas:
1. Arrange: preparação de variáveis e setup dos mocks.
2. Act: chamada ao método sendo testado.
3. Assert: verificação dos resultados obtidos em comparação ao
esperado.
Estrutura
Estrutura
Assert
• Verificação dos resultados obtidos em comparação ao
esperado.
• Fluxo de execução do teste é interrompido na primeira falha.
• Idealmente apenas um Assert por teste.
• Utilizar melhor tipo de Assert para o teste.
Assert
Ciclo de vida
• Preparação
o Setup antes do primeiro teste.
o Setup antes de cada teste.
• Execução
• Finalização
• TearDown depois de cada teste.
• TearDown depois do último teste.
Nomenclatura
• O nome do método de teste deve ser o mais expressivo
possível e é comum a utilização de nomes extensos.
Calculadora_Somar_Sucesso
Classe sendo testada
Método sendo testado
Cenário
Nomenclatura
• Descrever apenas o cenário:
SomarDoisNumerosComSucesso
BloquearDivisaoPorZero
• Descrever o método e o cenário:
Somar_Sucesso
Dividir_FalhaDivisorZero
Boas práticas
• A escrita dos testes deve seguir todas as boas práticas de
programação.
• Cada teste deve validar um cenário específico.
• Manter os testes pequenos.
• Dificuldades em implementar os testes indica que seu código
necessita de refatoração.
Inversão de controle (IoC)
• Desenvolvimento baseado em abstrações.
• Redução de acoplamento.
“Programe para uma interface e nunca
uma implementação”
Inversão de controle (IoC)
Inversão de controle (IoC)
Mock
• Objeto utilizado para substituir uma dependência e simular o
comportamento de um objeto real.
• Útil para isolar o comportamento do objeto sendo testado.
Mock
• Por meio da utilização dos mocks, é possível definir valores
para propriedades e comportamentos para métodos.
• Além disso, podemos verificar se determinado método ou
propriedade do mock foi chamado conforme esperado.
Framework de mock
MOX
Mock
Mock
Cobertura de testes
Cobertura de testes
Cobertura de testes
• Quantidade X Qualidade dos testes
• Cobertura 100% não é um objetivo.
• Quanto mais próximo ao Domínio da sua aplicação, mais
importante implementar testes.
Projetos legados
• Criar testes para as novas funcionalidades.
• Sempre que corrigir um bug, cobrir o cenário com testes.
Continuous Integration (CI)
• Execução automática de testes após commit e notificação em
caso de falha.
• Execução automática de testes antes de realizar pull request.
• Correção de testes é prioridade.
Test-Driven Development (TDD)
• Criação de testes antes do código de aplicação.
• Menor alteração(baby step) para fazer teste passar.
• Garantia de bom design para o código de aplicação.
Test-Driven Development (TDD)
Dúvidas?
Obrigado!
FelipeMuniz
felipemuniz09
@felipe.muniz
IgorRozani
IgorRozani
@IgorRozani
Igor RozaniFelipe Muniz

Contenu connexe

Tendances

DevOps: desenvolvedores e sysadmins cooperando na prática
DevOps: desenvolvedores e sysadmins cooperando na práticaDevOps: desenvolvedores e sysadmins cooperando na prática
DevOps: desenvolvedores e sysadmins cooperando na práticaAri Stopassola Junior
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSAmazon Web Services LATAM
 
Primeiros passos utilizando o AWS Mobile Hub
Primeiros passos utilizando o AWS Mobile HubPrimeiros passos utilizando o AWS Mobile Hub
Primeiros passos utilizando o AWS Mobile HubAmazon Web Services LATAM
 
Construindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsConstruindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsCamila Carrera
 
Webinar Melhores práticas e lições aprendidas com aplicações sem servidor
Webinar Melhores práticas e lições aprendidas com aplicações sem servidorWebinar Melhores práticas e lições aprendidas com aplicações sem servidor
Webinar Melhores práticas e lições aprendidas com aplicações sem servidorAmazon Web Services LATAM
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaAmazon Web Services LATAM
 
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...Dan El Pierre Rezende
 
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.Amazon Web Services LATAM
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAmazon Web Services LATAM
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 
Liderando inovação no mundo enterprise na velocidade das startups
Liderando inovação no mundo enterprise na velocidade das startupsLiderando inovação no mundo enterprise na velocidade das startups
Liderando inovação no mundo enterprise na velocidade das startupsAmazon Web Services LATAM
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsRicardo Martins ☁
 
Rodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemRodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemAmazon Web Services LATAM
 

Tendances (20)

JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
Jboss eap 6
Jboss eap 6Jboss eap 6
Jboss eap 6
 
ArcServe in the AWS Cloud - part II
ArcServe in the AWS Cloud - part IIArcServe in the AWS Cloud - part II
ArcServe in the AWS Cloud - part II
 
DevOps: desenvolvedores e sysadmins cooperando na prática
DevOps: desenvolvedores e sysadmins cooperando na práticaDevOps: desenvolvedores e sysadmins cooperando na prática
DevOps: desenvolvedores e sysadmins cooperando na prática
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
Primeiros passos utilizando o AWS Mobile Hub
Primeiros passos utilizando o AWS Mobile HubPrimeiros passos utilizando o AWS Mobile Hub
Primeiros passos utilizando o AWS Mobile Hub
 
Construindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsConstruindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOps
 
JavaEE
JavaEEJavaEE
JavaEE
 
Webinar Melhores práticas e lições aprendidas com aplicações sem servidor
Webinar Melhores práticas e lições aprendidas com aplicações sem servidorWebinar Melhores práticas e lições aprendidas com aplicações sem servidor
Webinar Melhores práticas e lições aprendidas com aplicações sem servidor
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínua
 
Como começar com Amazon EKS
Como começar com Amazon EKSComo começar com Amazon EKS
Como começar com Amazon EKS
 
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
 
ESX Tech Lives - DevOps
ESX Tech Lives - DevOpsESX Tech Lives - DevOps
ESX Tech Lives - DevOps
 
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 
Liderando inovação no mundo enterprise na velocidade das startups
Liderando inovação no mundo enterprise na velocidade das startupsLiderando inovação no mundo enterprise na velocidade das startups
Liderando inovação no mundo enterprise na velocidade das startups
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deployments
 
Rodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemRodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvem
 

Similaire à Testes unidade validam componentes

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
 
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
 
Testes Funcionais - Unidade IV
Testes Funcionais - Unidade IVTestes Funcionais - Unidade IV
Testes Funcionais - Unidade IVJoão Lourenço
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaScrumHalf Tool
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junitcejug
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 
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
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
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
 
Testes: existe vida antes do TDD
Testes: existe vida antes do TDDTestes: existe vida antes do TDD
Testes: existe vida antes do TDDDiana Ungaro Arnos
 
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
 
Desenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesDesenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesAndre Carlucci
 
TDD com Código Legado
TDD com Código LegadoTDD com Código Legado
TDD com Código LegadoCesar Romero
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 

Similaire à Testes unidade validam componentes (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
 
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
 
Testes Funcionais - Unidade IV
Testes Funcionais - Unidade IVTestes Funcionais - Unidade IV
Testes Funcionais - Unidade IV
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
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
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
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
 
Testes: existe vida antes do TDD
Testes: existe vida antes do TDDTestes: existe vida antes do TDD
Testes: existe vida antes do TDD
 
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
 
Desenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesDesenvolvimento Orientado a Testes
Desenvolvimento Orientado a Testes
 
TDD com Código Legado
TDD com Código LegadoTDD com Código Legado
TDD com Código Legado
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 

Plus de Matheus de Lara Calache

Plus de Matheus de Lara Calache (15)

7. encerramento rp tec com 2018
7. encerramento rp tec com 20187. encerramento rp tec com 2018
7. encerramento rp tec com 2018
 
5. apresentacao rp tec com 2018 matheus calache
5. apresentacao rp tec com 2018 matheus calache5. apresentacao rp tec com 2018 matheus calache
5. apresentacao rp tec com 2018 matheus calache
 
4. apresentacao rp tec com 2018 diego teixeira
4. apresentacao rp tec com 2018 diego teixeira4. apresentacao rp tec com 2018 diego teixeira
4. apresentacao rp tec com 2018 diego teixeira
 
2. apresentacao rp tec com 2018 murilo neandro
2. apresentacao rp tec com 2018 murilo neandro2. apresentacao rp tec com 2018 murilo neandro
2. apresentacao rp tec com 2018 murilo neandro
 
1. introducao rp tec com 2018
1. introducao rp tec com 20181. introducao rp tec com 2018
1. introducao rp tec com 2018
 
Aula 8 - Gerenciamento da Comunicação
Aula 8 - Gerenciamento da ComunicaçãoAula 8 - Gerenciamento da Comunicação
Aula 8 - Gerenciamento da Comunicação
 
Aula 7 - Gerenciamento de Qualidade
Aula 7 - Gerenciamento de QualidadeAula 7 - Gerenciamento de Qualidade
Aula 7 - Gerenciamento de Qualidade
 
Aula 6 - Gerenciamento de Qualidade
Aula 6 - Gerenciamento de QualidadeAula 6 - Gerenciamento de Qualidade
Aula 6 - Gerenciamento de Qualidade
 
Aula 6 - Gerenciamento de Escopo
Aula 6 - Gerenciamento de EscopoAula 6 - Gerenciamento de Escopo
Aula 6 - Gerenciamento de Escopo
 
Aula 5 - Gerenciamento de Recursos Humanos e Lideranca
Aula 5 - Gerenciamento de Recursos Humanos e LiderancaAula 5 - Gerenciamento de Recursos Humanos e Lideranca
Aula 5 - Gerenciamento de Recursos Humanos e Lideranca
 
Aula 4 - PDCA
Aula 4 - PDCAAula 4 - PDCA
Aula 4 - PDCA
 
Aula 4 - Gerenciamento de integracao
Aula 4 - Gerenciamento de integracaoAula 4 - Gerenciamento de integracao
Aula 4 - Gerenciamento de integracao
 
Aula 3 - Gerenciamento de riscos
Aula 3 - Gerenciamento de riscosAula 3 - Gerenciamento de riscos
Aula 3 - Gerenciamento de riscos
 
Aula 2 - Fundamentos em Gerenciamento de Projetos
Aula 2 - Fundamentos em Gerenciamento de ProjetosAula 2 - Fundamentos em Gerenciamento de Projetos
Aula 2 - Fundamentos em Gerenciamento de Projetos
 
Aula 1 - Introdução
Aula 1 - IntroduçãoAula 1 - Introdução
Aula 1 - Introdução
 

Testes unidade validam componentes