SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Introdução ao TDD nas soluções
Global AppCasting
Introdução
• O que é TDD?
• Mais do que uma tarefa, um estilo de vida!
O que é mais importante?
1) Construir o código do teste?
2) Construir o código do software?
Dissonância cognitiva
“Você sendo um ser humano é naturalmente incapaz de programar sem
acidentalmente introduzir bugs. Isso é inerente a natureza humana e
principalmente a essa profissão.”
Fernando Franzini
Todo código é culpado até que prove sua
inocência!
O teste é o que prova que aquilo que
você programou realmente faz o que
você se propôs a automatizar.
TDD não é revolução. TDD é evolução!
TDD não substitui os outros métodos de
controle de qualidade!
• Pair programming;
• Testes manuais;
• Revisão de código;
O que é mais importante?
1) Construir o código do teste?
2) construir o código do software?
Design up-front - tradicional
Design up-front – teste primeiro
Desenvolvimento dirigido a testes (Test Driven
Development)
Passo a passo
1. Adicionar um teste;
2. Executar todos os testes;
Seu teste ira falhar!
3. Modificar ou criar pequenas coisas no código;
4. Executar todos os testes
Nessa etapa todos os testes devem passar!
Se não passarem, volte ao passo 3.
5. Refatorar o código;
6. Executar todos testes
Nessa etapa todos os testes devem passar!
Se não passarem, volte ao passo 5.
Escrevendo um teste
• Onde começar?
Teste mais simples.
• Como começar?
Assertion mais óbvia.
• Então:
Testes e assertions que ajudam a entender outros testes.
Tipos comuns de testes aplicados
• Testes de unidade;
• Isto faz o que se espera?
• Testes de integração;
• Estão funcionando juntos como se espera?
• Testes de regressão;
• Essa modificação interfere algum dos itens acima em relação ao que já esta
pronto?
TDD e metodologia ágil
• Errado: Prever/Escrever um código/design para modificar no futuro
quando precisarmos.
• Correto: Escrever um código simples e claro, que seja fácil modificar e
seguro.
TDD e metodologia ágil
KISS (Keep it simple stupid):
• Como conseguimos um código simples?
Fazendo um Teste passar!
• Como conseguimos um código claro?
Refatorando o código após ele passar!
• Como conseguimos um código seguro?
Com Testes!
Mão na massa...
Desafios
• Dificuldades em começar;
• Curva de aprendizado;
• Tempo;
Benefícios
• Primeiro foco no teste, depois na implementação;
• Código “nasce” testado;
• Feedback rápido;
• Qualidade do código;
• O teste é uma documentação;
• Redução do tempo gasto com debugging;
Limitações e pontos de ponderação
• Suporte gerencial obrigatório;
• Manutenção do projeto;
• Alto nível de cobertura e detalhamento se torna mais difícil de ser
alcançado quando se inicia o TDD em data tardia;
• Lacunas inesperadas na cobertura de teste;
• Alta dependência da especificação de requisitos;
FIM
Referências bibliográficas
• How to implement TDD ( Test driven development ) in c# (Csharp) using VSTS unit testing?
https://www.youtube.com/watch?v=5gMBGVNR8wE&list=PLcAWxGgex55V8w4YQfIQW-4g8wslwh0Xs
• Introduction to Test Driven Development (TDD) in .NET
https://www.youtube.com/watch?v=7ttVXhUkN3c
• Test Driven Development
https://pt.wikipedia.org/wiki/Test_Driven_Development
• Test Driven Development (TDD) para seres humanos
http://www.slideshare.net/RmuloSantos9/test-driven-development-tdd-para-seres-
humanos?ref=https://www.linkedin.com/
• TDD - Test Driven Development
http://pt.slideshare.net/elias.nogueira/tdd-test-driven-development-16315314
• TDD: Mais uma tarefa ou um estilo de vida?
http://infobase.com.br/tdd-mais-uma-tarefa-ou-um-estilo-de-vida/
• Test Driven Development: TDD simples e prático
http://www.devmedia.com.br/test-driven-development-tdd-simples-e-pratico/18533
• TDD, por que usar?
https://tableless.com.br/tdd-por-que-usar/
• TDD: fundamentos do desenvolvimento orientado a testes
http://www.devmedia.com.br/tdd-fundamentos-do-desenvolvimento-orientado-a-testes/28151

Mais conteúdo relacionado

Mais procurados

Desenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesDesenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesAndre Carlucci
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Developer Academy
 
TDC2016POA | Trilha Ruby - Hora da aventura! Vamos melhorar seu código?!?
TDC2016POA | Trilha Ruby - Hora da aventura! Vamos melhorar seu código?!?TDC2016POA | Trilha Ruby - Hora da aventura! Vamos melhorar seu código?!?
TDC2016POA | Trilha Ruby - Hora da aventura! Vamos melhorar seu código?!?tdc-globalcode
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Daniel Carvalhinho
 
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
 
Test-Driven Development - Introdução
Test-Driven Development - IntroduçãoTest-Driven Development - Introdução
Test-Driven Development - IntroduçãoHélio Costa e Silva
 
Testes de software
Testes de softwareTestes de software
Testes de softwareVitor Castro
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Raphael Paiva
 
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Igor Abade
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)Renato Groff
 
Testando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnitTestando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnitRodrigo Vieira
 
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
 
Construindo bons relacionamentos entre desenvolvedores e testadores
Construindo bons relacionamentos entre desenvolvedores e testadoresConstruindo bons relacionamentos entre desenvolvedores e testadores
Construindo bons relacionamentos entre desenvolvedores e testadoresGabriel Oliveira
 
Testes de software automatizados
Testes de software automatizadosTestes de software automatizados
Testes de software automatizadosMarcelo Andrade
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
 
Lightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDDLightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDDWillians De Paula Pereira
 

Mais procurados (20)

Teste automatizados e tdd
Teste automatizados e tddTeste automatizados e tdd
Teste automatizados e tdd
 
Desenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesDesenvolvimento Orientado a Testes
Desenvolvimento Orientado a Testes
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
 
TDC2016POA | Trilha Ruby - Hora da aventura! Vamos melhorar seu código?!?
TDC2016POA | Trilha Ruby - Hora da aventura! Vamos melhorar seu código?!?TDC2016POA | Trilha Ruby - Hora da aventura! Vamos melhorar seu código?!?
TDC2016POA | Trilha Ruby - Hora da aventura! Vamos melhorar seu código?!?
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
 
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
 
Test-Driven Development - Introdução
Test-Driven Development - IntroduçãoTest-Driven Development - Introdução
Test-Driven Development - Introdução
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
O que devo procurar em um code review
O que devo procurar em um code review O que devo procurar em um code review
O que devo procurar em um code review
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?
 
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
RealDay: Introduction to TDD
RealDay: Introduction to TDDRealDay: Introduction to TDD
RealDay: Introduction to TDD
 
Testando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnitTestando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnit
 
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.
 
Construindo bons relacionamentos entre desenvolvedores e testadores
Construindo bons relacionamentos entre desenvolvedores e testadoresConstruindo bons relacionamentos entre desenvolvedores e testadores
Construindo bons relacionamentos entre desenvolvedores e testadores
 
Testes de software automatizados
Testes de software automatizadosTestes de software automatizados
Testes de software automatizados
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao Sênior
 
Lightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDDLightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDD
 
Tdd na veia
Tdd na veiaTdd na veia
Tdd na veia
 

Destaque

François Nars Editorial – Vogue BR December 2015 low-res
François Nars Editorial – Vogue BR December 2015 low-resFrançois Nars Editorial – Vogue BR December 2015 low-res
François Nars Editorial – Vogue BR December 2015 low-resEsther Han
 
FIN Company Presentation
FIN Company PresentationFIN Company Presentation
FIN Company PresentationSergio Zammit
 
How to Lead the People Side of Your Business
How to Lead the People Side of Your BusinessHow to Lead the People Side of Your Business
How to Lead the People Side of Your BusinessTodd Averett
 
Presentation on World Language Regions
Presentation on World Language Regions Presentation on World Language Regions
Presentation on World Language Regions Parves Khan
 
Manual caracteristicas-componentes-frenos-ebs-camion-volquete-volvo
Manual caracteristicas-componentes-frenos-ebs-camion-volquete-volvoManual caracteristicas-componentes-frenos-ebs-camion-volquete-volvo
Manual caracteristicas-componentes-frenos-ebs-camion-volquete-volvoCENTRAL PERU S.A.
 

Destaque (8)

François Nars Editorial – Vogue BR December 2015 low-res
François Nars Editorial – Vogue BR December 2015 low-resFrançois Nars Editorial – Vogue BR December 2015 low-res
François Nars Editorial – Vogue BR December 2015 low-res
 
Post Mortem CP19
Post Mortem CP19Post Mortem CP19
Post Mortem CP19
 
FIN Company Presentation
FIN Company PresentationFIN Company Presentation
FIN Company Presentation
 
How to Lead the People Side of Your Business
How to Lead the People Side of Your BusinessHow to Lead the People Side of Your Business
How to Lead the People Side of Your Business
 
Como fazer um boletim astronômico?
Como fazer um boletim astronômico?Como fazer um boletim astronômico?
Como fazer um boletim astronômico?
 
2016 ncfef post primary briefing
2016 ncfef post primary briefing2016 ncfef post primary briefing
2016 ncfef post primary briefing
 
Presentation on World Language Regions
Presentation on World Language Regions Presentation on World Language Regions
Presentation on World Language Regions
 
Manual caracteristicas-componentes-frenos-ebs-camion-volquete-volvo
Manual caracteristicas-componentes-frenos-ebs-camion-volquete-volvoManual caracteristicas-componentes-frenos-ebs-camion-volquete-volvo
Manual caracteristicas-componentes-frenos-ebs-camion-volquete-volvo
 

Semelhante a Introdução ao TDD nas soluções Global AppCasting

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
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27Hélio Medeiros
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Marcio Miyamoto
 
XP Programming
XP ProgrammingXP Programming
XP ProgrammingCJR, UnB
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atechcesarcneto
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamentothiagodp
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
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
 
TDD com Código Legado
TDD com Código LegadoTDD com Código Legado
TDD com Código LegadoCesar Romero
 
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
 
TDD direto das trincheiras
TDD direto das trincheirasTDD direto das trincheiras
TDD direto das trincheirasLuiz Borba
 

Semelhante a Introdução ao TDD nas soluções Global AppCasting (20)

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
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
 
Seu código fede e você nem sabia
Seu código fede e você nem sabiaSeu código fede e você nem sabia
Seu código fede e você nem sabia
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Seu codigo fede e voce nem sabia - 2020
Seu codigo fede e voce nem sabia - 2020Seu codigo fede e voce nem sabia - 2020
Seu codigo fede e voce nem sabia - 2020
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
Pensando TDD
Pensando TDDPensando TDD
Pensando TDD
 
XP Programming
XP ProgrammingXP Programming
XP Programming
 
Testes
TestesTestes
Testes
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atech
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamento
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Instituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitáriosInstituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitários
 
TDD
TDDTDD
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 PHPUnit
 
TDD com Código Legado
TDD com Código LegadoTDD com Código Legado
TDD com Código Legado
 
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
 
TDD direto das trincheiras
TDD direto das trincheirasTDD direto das trincheiras
TDD direto das trincheiras
 

Introdução ao TDD nas soluções Global AppCasting

  • 1. Introdução ao TDD nas soluções Global AppCasting
  • 2. Introdução • O que é TDD? • Mais do que uma tarefa, um estilo de vida!
  • 3. O que é mais importante? 1) Construir o código do teste? 2) Construir o código do software?
  • 4. Dissonância cognitiva “Você sendo um ser humano é naturalmente incapaz de programar sem acidentalmente introduzir bugs. Isso é inerente a natureza humana e principalmente a essa profissão.” Fernando Franzini
  • 5. Todo código é culpado até que prove sua inocência!
  • 6. O teste é o que prova que aquilo que você programou realmente faz o que você se propôs a automatizar.
  • 7. TDD não é revolução. TDD é evolução!
  • 8. TDD não substitui os outros métodos de controle de qualidade! • Pair programming; • Testes manuais; • Revisão de código;
  • 9. O que é mais importante? 1) Construir o código do teste? 2) construir o código do software?
  • 10. Design up-front - tradicional
  • 11. Design up-front – teste primeiro
  • 12. Desenvolvimento dirigido a testes (Test Driven Development)
  • 13. Passo a passo 1. Adicionar um teste; 2. Executar todos os testes; Seu teste ira falhar! 3. Modificar ou criar pequenas coisas no código; 4. Executar todos os testes Nessa etapa todos os testes devem passar! Se não passarem, volte ao passo 3. 5. Refatorar o código; 6. Executar todos testes Nessa etapa todos os testes devem passar! Se não passarem, volte ao passo 5.
  • 14. Escrevendo um teste • Onde começar? Teste mais simples. • Como começar? Assertion mais óbvia. • Então: Testes e assertions que ajudam a entender outros testes.
  • 15. Tipos comuns de testes aplicados • Testes de unidade; • Isto faz o que se espera? • Testes de integração; • Estão funcionando juntos como se espera? • Testes de regressão; • Essa modificação interfere algum dos itens acima em relação ao que já esta pronto?
  • 16. TDD e metodologia ágil • Errado: Prever/Escrever um código/design para modificar no futuro quando precisarmos. • Correto: Escrever um código simples e claro, que seja fácil modificar e seguro.
  • 17. TDD e metodologia ágil KISS (Keep it simple stupid): • Como conseguimos um código simples? Fazendo um Teste passar! • Como conseguimos um código claro? Refatorando o código após ele passar! • Como conseguimos um código seguro? Com Testes!
  • 19. Desafios • Dificuldades em começar; • Curva de aprendizado; • Tempo;
  • 20. Benefícios • Primeiro foco no teste, depois na implementação; • Código “nasce” testado; • Feedback rápido; • Qualidade do código; • O teste é uma documentação; • Redução do tempo gasto com debugging;
  • 21. Limitações e pontos de ponderação • Suporte gerencial obrigatório; • Manutenção do projeto; • Alto nível de cobertura e detalhamento se torna mais difícil de ser alcançado quando se inicia o TDD em data tardia; • Lacunas inesperadas na cobertura de teste; • Alta dependência da especificação de requisitos;
  • 22. FIM
  • 23. Referências bibliográficas • How to implement TDD ( Test driven development ) in c# (Csharp) using VSTS unit testing? https://www.youtube.com/watch?v=5gMBGVNR8wE&list=PLcAWxGgex55V8w4YQfIQW-4g8wslwh0Xs • Introduction to Test Driven Development (TDD) in .NET https://www.youtube.com/watch?v=7ttVXhUkN3c • Test Driven Development https://pt.wikipedia.org/wiki/Test_Driven_Development • Test Driven Development (TDD) para seres humanos http://www.slideshare.net/RmuloSantos9/test-driven-development-tdd-para-seres- humanos?ref=https://www.linkedin.com/ • TDD - Test Driven Development http://pt.slideshare.net/elias.nogueira/tdd-test-driven-development-16315314 • TDD: Mais uma tarefa ou um estilo de vida? http://infobase.com.br/tdd-mais-uma-tarefa-ou-um-estilo-de-vida/ • Test Driven Development: TDD simples e prático http://www.devmedia.com.br/test-driven-development-tdd-simples-e-pratico/18533 • TDD, por que usar? https://tableless.com.br/tdd-por-que-usar/ • TDD: fundamentos do desenvolvimento orientado a testes http://www.devmedia.com.br/tdd-fundamentos-do-desenvolvimento-orientado-a-testes/28151