SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Testes de Unidade, por que você
deve começar a fazer?
Renan Siravegna @RenanSiravegna
@RenanSiravegna
http://renansiravegna.wordpress.com/
Vocês testam o seu código?
Ciclo do desenvolvimento
Codificação FinalizaçãoTestes
2 mins 2 mins 1 min
Tempo total: 5 minutos
(E isto é apenas uma suposição...)
Ciclo do desenvolvimento
(de verdade)
Tempo total: 21 Minutos
Codificação FinalizaçãoTestes
2 mins 2 mins 1 min
Repetição (5 vezes)
E se você testasse todas as
funcionalidades que seu
código pode ter afetado?
Pior ainda.. E se você testasse
o seu sistema inteiro?
Levaria dias? Semanas?
Meses?
Testar manualmente demora!!
Existe solução?
Automatizar tudo!!
Criar testes de unidade!!
O que é teste de unidade?
Um pedaço de código que irá chamar outro pedaço de código e
irá verificar algumas suposições. Caso as suposições sejam erradas, o
teste irá falhar. Unidade é um único e determinado comportamento.
Escrever código que testa
código
Como?
Codificação FinalizaçãoEscrita de
testes
2 mins 5 min 1 min
Tempo dos testes: 16 minutos
Repetição (5 vezes)
Testes
5 ms
Outros benefícios
• Meu sistema funciona!!!
• Testes de Regressão
• Não tenho medo de alterar meu código
• No final das contas, sai mais barato
• É mais fácil de encontrar um bug no código
• Você consegue ver melhor como seu código será usado
• Muito mais divertido!
• Melhora a qualidade do código
Qualidade de código com testes
de unidade
Problemas
• Falta de conhecimento de Orientação a Objetos
• Não pensar corretamente nos cenários
• Fica chato se você não faz da forma correta
TDD
Começar testando (antes
mesmo de existir o código de
produção)
Como assim?
Benefícios
• Foco no objetivo
• Código nasce testado
• Sem soluções complexas
• Código limpo, mais coeso e menos desacoplado
• Maior cobertura de código
• Satisfação de ver seu sistema funcionando de ponta a ponta
Mas... Não é a mesma coisa
que escrever os testes
depois???
Problemas
• Aprendizado
• Mudança de cultura
• Exige prática
• Refatoração
Refatoração
É uma técnica disciplinada para reestruturar um corpo existente
de código, alterando a sua estrutura interna sem alterar seu
comportamento externo.
E o que eu ganho com isso?
• Comentários no código se tornam desnecessários
• Código pode ser facilmente entendido por todos
• Fácil de testar
• Fácil de compreender
• Extensibilidade
• Melhor leitura e escrita
Até quando eu devo testar?
• Desencane de cobrir 100% o seu código
• Teste até onde os testes de unidade são necessários
• Teste somente o que é relevante
O que não testar
• Getters
• Setters
• Classes da linguagem
• Trechos simples demais
• Integração entre partes do sistema (falando em testes de unidade)
• Quando você sabe que o teste vai passar antes de implementar
Leituras recomendadas
Testes de Unidade, por que você deve começar a fazer? - Javaneiros

Weitere ähnliche Inhalte

Was ist angesagt?

TDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaTDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaChristian Cunha
 
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
 
Teste Unitários e TDD
Teste Unitários e TDDTeste Unitários e TDD
Teste Unitários e TDDDiogo Damiani
 
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
 
Boas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDBoas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDJony Ferreira dos Santos
 
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
 
Testes e mocks: Em Visual Studio com .NET
Testes e mocks: Em Visual Studio com .NETTestes e mocks: Em Visual Studio com .NET
Testes e mocks: Em Visual Studio com .NETAlessandro Binhara
 
WebCamps Software Testing
WebCamps Software TestingWebCamps Software Testing
WebCamps Software TestingRodrigo Vidal
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec ComIgor Rozani
 
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...minastestingconference
 
Você ainda não pratica TDD?
Você ainda não pratica TDD?Você ainda não pratica TDD?
Você ainda não pratica TDD?Maurício Aniche
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de SoftwareMaurício Aniche
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Maurício Aniche
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testeselliando dias
 
Femug #9 iniciando com testes em node js!
Femug #9   iniciando com testes em node js!Femug #9   iniciando com testes em node js!
Femug #9 iniciando com testes em node js!Leandro Nishijima
 
In tests we trust: começando com TDD, mocks e mais
In tests we trust: começando com TDD, mocks e maisIn tests we trust: começando com TDD, mocks e mais
In tests we trust: começando com TDD, mocks e maisAna Paula Gomes
 

Was ist angesagt? (20)

TDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaTDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian Cunha
 
TDD e BDD
TDD e BDDTDD e BDD
TDD e BDD
 
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 Unitários e TDD
Teste Unitários e TDDTeste Unitários e TDD
Teste Unitários e TDD
 
Gherkin
Gherkin   Gherkin
Gherkin
 
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
 
Boas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDBoas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDD
 
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.
 
Metodologias Ágeis
Metodologias ÁgeisMetodologias Ágeis
Metodologias Ágeis
 
Testes e mocks: Em Visual Studio com .NET
Testes e mocks: Em Visual Studio com .NETTestes e mocks: Em Visual Studio com .NET
Testes e mocks: Em Visual Studio com .NET
 
WebCamps Software Testing
WebCamps Software TestingWebCamps Software Testing
WebCamps Software Testing
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec Com
 
Testes unitários e Mocks
Testes unitários e MocksTestes unitários e Mocks
Testes unitários e Mocks
 
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
 
Você ainda não pratica TDD?
Você ainda não pratica TDD?Você ainda não pratica TDD?
Você ainda não pratica TDD?
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de Software
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 
Femug #9 iniciando com testes em node js!
Femug #9   iniciando com testes em node js!Femug #9   iniciando com testes em node js!
Femug #9 iniciando com testes em node js!
 
In tests we trust: começando com TDD, mocks e mais
In tests we trust: começando com TDD, mocks e maisIn tests we trust: começando com TDD, mocks e mais
In tests we trust: começando com TDD, mocks e mais
 

Andere mochten auch

TDD em JavaScript, rola?
TDD em JavaScript, rola?TDD em JavaScript, rola?
TDD em JavaScript, rola?Renan Siravegna
 
Arquitetura front-end visando testabilidade e rápida reação a mudanças.
Arquitetura front-end visando testabilidade e rápida reação a mudanças.Arquitetura front-end visando testabilidade e rápida reação a mudanças.
Arquitetura front-end visando testabilidade e rápida reação a mudanças.Renan Siravegna
 
Agile brazil 2013: desconstruindo o mito da estimativa perfeita
Agile brazil 2013: desconstruindo o mito da estimativa perfeitaAgile brazil 2013: desconstruindo o mito da estimativa perfeita
Agile brazil 2013: desconstruindo o mito da estimativa perfeitaEduardo Peres
 
Pareamento entre Dev e P.O. - A receita do sucesso
Pareamento entre Dev e P.O. - A receita do sucessoPareamento entre Dev e P.O. - A receita do sucesso
Pareamento entre Dev e P.O. - A receita do sucessoRenan Siravegna
 
Teste de usabilidade na sprint; Entrega contínua de boas experiências [Scrum ...
Teste de usabilidade na sprint; Entrega contínua de boas experiências [Scrum ...Teste de usabilidade na sprint; Entrega contínua de boas experiências [Scrum ...
Teste de usabilidade na sprint; Entrega contínua de boas experiências [Scrum ...Glauber Lænder
 
DigiComm Full Brochure
DigiComm Full BrochureDigiComm Full Brochure
DigiComm Full BrochureRajen Naidoo
 
Grontmij - Industry, Water & Energy Magazine - NR 12 – 2014
Grontmij - Industry, Water & Energy Magazine - NR 12 – 2014Grontmij - Industry, Water & Energy Magazine - NR 12 – 2014
Grontmij - Industry, Water & Energy Magazine - NR 12 – 2014Saskia Poppelier
 
Águas de Março Teresópolis
Águas de Março TeresópolisÁguas de Março Teresópolis
Águas de Março TeresópolisTiago Oliveira
 
C.S. - Capítulo 02 la fe de los mártires
C.S. - Capítulo 02 la fe de los mártiresC.S. - Capítulo 02 la fe de los mártires
C.S. - Capítulo 02 la fe de los mártiresDescargas Adventista
 
resume_copy_fall2016
resume_copy_fall2016resume_copy_fall2016
resume_copy_fall2016Keela Mason
 
Folha de Pernambuco
Folha de PernambucoFolha de Pernambuco
Folha de PernambucoCarlos Lopes
 
Liliana Torres T1 1202957
Liliana Torres T1 1202957Liliana Torres T1 1202957
Liliana Torres T1 1202957Liliana Araujo
 

Andere mochten auch (20)

TDD em JavaScript, rola?
TDD em JavaScript, rola?TDD em JavaScript, rola?
TDD em JavaScript, rola?
 
Arquitetura front-end visando testabilidade e rápida reação a mudanças.
Arquitetura front-end visando testabilidade e rápida reação a mudanças.Arquitetura front-end visando testabilidade e rápida reação a mudanças.
Arquitetura front-end visando testabilidade e rápida reação a mudanças.
 
Agile brazil 2013: desconstruindo o mito da estimativa perfeita
Agile brazil 2013: desconstruindo o mito da estimativa perfeitaAgile brazil 2013: desconstruindo o mito da estimativa perfeita
Agile brazil 2013: desconstruindo o mito da estimativa perfeita
 
Pareamento entre Dev e P.O. - A receita do sucesso
Pareamento entre Dev e P.O. - A receita do sucessoPareamento entre Dev e P.O. - A receita do sucesso
Pareamento entre Dev e P.O. - A receita do sucesso
 
Teste de usabilidade na sprint; Entrega contínua de boas experiências [Scrum ...
Teste de usabilidade na sprint; Entrega contínua de boas experiências [Scrum ...Teste de usabilidade na sprint; Entrega contínua de boas experiências [Scrum ...
Teste de usabilidade na sprint; Entrega contínua de boas experiências [Scrum ...
 
DigiComm Full Brochure
DigiComm Full BrochureDigiComm Full Brochure
DigiComm Full Brochure
 
Grontmij - Industry, Water & Energy Magazine - NR 12 – 2014
Grontmij - Industry, Water & Energy Magazine - NR 12 – 2014Grontmij - Industry, Water & Energy Magazine - NR 12 – 2014
Grontmij - Industry, Water & Energy Magazine - NR 12 – 2014
 
broucher
broucherbroucher
broucher
 
Avaliação
AvaliaçãoAvaliação
Avaliação
 
Velhice conselhos
Velhice conselhosVelhice conselhos
Velhice conselhos
 
JAWRA.PDF
JAWRA.PDFJAWRA.PDF
JAWRA.PDF
 
Águas de Março Teresópolis
Águas de Março TeresópolisÁguas de Março Teresópolis
Águas de Março Teresópolis
 
C.S. - Capítulo 02 la fe de los mártires
C.S. - Capítulo 02 la fe de los mártiresC.S. - Capítulo 02 la fe de los mártires
C.S. - Capítulo 02 la fe de los mártires
 
Fotos antigas
Fotos antigasFotos antigas
Fotos antigas
 
resume_copy_fall2016
resume_copy_fall2016resume_copy_fall2016
resume_copy_fall2016
 
Folha de Pernambuco
Folha de PernambucoFolha de Pernambuco
Folha de Pernambuco
 
program 5 december
program 5 decemberprogram 5 december
program 5 december
 
Liliana Torres T1 1202957
Liliana Torres T1 1202957Liliana Torres T1 1202957
Liliana Torres T1 1202957
 
Trancripts
TrancriptsTrancripts
Trancripts
 
TOR
TORTOR
TOR
 

Ähnlich wie Testes de Unidade, por que você deve começar a fazer? - Javaneiros

TDD: Técnicas, Benefícios e Limitação
TDD: Técnicas, Benefícios e Limitação TDD: Técnicas, Benefícios e Limitação
TDD: Técnicas, Benefícios e Limitação Icaro Camelo
 
Desenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesDesenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesAndre Carlucci
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In TubaRafael Paz
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamentothiagodp
 
Clean code 101 do caos ao nirvana em poucos passos
Clean code 101  do caos ao nirvana em poucos passosClean code 101  do caos ao nirvana em poucos passos
Clean code 101 do caos ao nirvana em poucos passosGabrielly Gomes
 
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 - Desenvolvimento Dirigido a Testes
TDD - Desenvolvimento Dirigido a TestesTDD - Desenvolvimento Dirigido a Testes
TDD - Desenvolvimento Dirigido a TestesNetto Cavalcante
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27Hélio Medeiros
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaRogerio Fontes
 

Ähnlich wie Testes de Unidade, por que você deve começar a fazer? - Javaneiros (20)

TDD: Técnicas, Benefícios e Limitação
TDD: Técnicas, Benefícios e Limitação TDD: Técnicas, Benefícios e Limitação
TDD: Técnicas, Benefícios e Limitação
 
Refatoração de Código Legado
Refatoração de Código LegadoRefatoração de Código Legado
Refatoração de Código Legado
 
O poder do TDD
O poder do TDDO poder do TDD
O poder do TDD
 
Introdução a TDD
Introdução a TDDIntrodução a TDD
Introdução a TDD
 
Desenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesDesenvolvimento Orientado a Testes
Desenvolvimento Orientado a Testes
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Tdd x testes unidades
Tdd x testes unidadesTdd x testes unidades
Tdd x testes unidades
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In Tuba
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamento
 
Testes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicandoTestes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicando
 
Testes
TestesTestes
Testes
 
Clean code 101 do caos ao nirvana em poucos passos
Clean code 101  do caos ao nirvana em poucos passosClean code 101  do caos ao nirvana em poucos passos
Clean code 101 do caos ao nirvana em poucos passos
 
Clean code em C#
Clean code em C#Clean code em C#
Clean code em C#
 
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 - Desenvolvimento Dirigido a Testes
TDD - Desenvolvimento Dirigido a TestesTDD - Desenvolvimento Dirigido a Testes
TDD - Desenvolvimento Dirigido a Testes
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
Teste automatizados e tdd
Teste automatizados e tddTeste automatizados e tdd
Teste automatizados e tdd
 

Testes de Unidade, por que você deve começar a fazer? - Javaneiros