SlideShare uma empresa Scribd logo
TDD - Test Driven
Development
A Bala de Prata da qualidade de software?
História, O que é, O que não é
"Desenvolvimento orientado a testes" é um processo
focado no constante ciclo:
1. escreva um pequeno teste que descreva a feature
desejada
2. desenvolva o menor trecho possível de código para que
o teste passe
3. refatore o código para torná-lo decente
História, O que é, O que não é
● "Test Driven Development: By
Example" de Kent Beck, em 2003,
falando sobre metodologias ágeis
● TDD é usado em conjunto com outros
conceitos como extreme programming
● TDD definido por seus principais
objetivos:
História, O que é, O que não é
TDD é especificação, não validação
História, O que é, O que não é => Especificação, não validação
● TDD usa as boas práticas de testes unitários para
proporcionar e forçar o desenvolvedor a pensar no
requerimento ou design antes de escrever código
funcional
● “Entrega” testes unitários que ajudam na validação, mas
isso é só uma boa consequência da prática
História, O que é, O que não é
TDD entrega código limpo e funcional
História, O que é, O que não é => Código limpo e funcional
● Premissa que o desenvolvedor sempre vai escrever o
teste antes especificando o comportamento e trabalhar
no menor trecho de código funcional possível
● Menos linhas de código = menos bugs
● Mais testes = mais confiança e liberdade ao refatorar
Comofaiz?! Boas práticas com TDD
Para termos o processo realmente funcional precisamos
obedecer algumas pequenas mas importantes regras:
● O teste vem primeiro!
● Mantenha o código funcional pequeno, abuse de OO
● Trate seus testes com o mesmo respeito do seu código
Comofaiz?! Boas práticas com TDD
● O teste realmente precisa vir primeiro!
● Evite dependência entre testes, são partes autônomas
● Rode testes isolados, randomize quando rodar todos
● Use dados de fácil compreensão, cuide a legibilidade
● Crie testes que sejam um pequeno passo da feature
completa, quando juntos eles cobrirão todo o código
Prós e Contras. Bom, mau e feio
Parece tudo muito bom, tudo muito bem, seguindo as
práticas e entendendo do que se trata eu consigo fazer,
mas antes de fazer quero saber dos resultados!
Prós e Contras => Bom
● Pequeno passo, teste que ele está ok, próximo pequeno
passo. Muito código coberto por testes
● Código aos poucos > montes de código = produtividade
● Menos tempo de debug = produtividade
● Segurança para os desenvolvedores em refactors de
código antigo e manutenibilidade
Prós e Contras => Mau
● É necessário bom entendimento do requerimento
● É parte da suite de testes, mas não é toda a suite
● Testes precisam ter manutenção, são parte do projeto,
escreva-os bem
● Evite over-testing, quando o teste começa a ficar muito
grande procure quebrá-lo em mais testes
Prós e Contras => Feio
● Acreditar que TDD “são só alguns testes”
● Ignorar a manutenção dos testes
● Acreditar que TDD substitui testes de integração,
aceitação ou mesmo a documentação do projeto
● Testar depois de implementar a feature completa e achar
que isso “é só o que precisa pra ser agile com qualidade”
Beija ou Passa?
TDD é somente uma prática complementar de muitas boas
práticas de desenvolvimento de software.
Ele se vale de benefícios de testes unitários e da prática de
escrever pouco código para refatorar.
Deve ser adotado com apoio gerencial e cuidado dos
desenvolvedores para seguir as regras esperadas.
Com atenção e feito da maneira certa aumenta a
produtividade e a qualidade do projeto de software.
TDD - Test Driven Development => Não é bala de prata, mas também vale muito!
OBRIGADO!
miguelgraz.com

Mais conteúdo relacionado

PPTX
Teste automatizados e tdd
PPT
TDD - Test Driven Development com JAVA
PDF
Desenvolvimento Guiado por Testes
PPT
Desenvolvimento Guiado Por Testes
PDF
Os Benefícios dos testes no desenvolvimento de software
PPTX
TDD (Test-Driven Development)
PDF
Test-Driven Develpment - TDD
PPT
Desenvolvimento Orientado a Testes
Teste automatizados e tdd
TDD - Test Driven Development com JAVA
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado Por Testes
Os Benefícios dos testes no desenvolvimento de software
TDD (Test-Driven Development)
Test-Driven Develpment - TDD
Desenvolvimento Orientado a Testes

Mais procurados (20)

PDF
Facilitando o desenvolvimento orientado a testes em aplicações PHP
PPTX
Todas as abordagens de testes dentro do ágil
PPTX
TDD Desenvolvimento orientado ao teste
PDF
TDD para Java EE
PPTX
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
PPTX
TDD - Desenvolvimento Dirigido a Testes
PDF
Introdução ao TDD
PDF
Introdução ao TDD (Test-Driven Development) - #guma10anos
PDF
Testes com JUnit
PPTX
XP Programming
PDF
BDD em Ação
PDF
Boas práticas no desenvolvimento de software através do uso de TDD
PDF
Revisão de Código - Uma prática que depende da cultura
PPTX
Palestra TDD - TDC - 2016
PDF
Introdução ao TDD nas soluções Global AppCasting
PDF
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
PDF
Palestra TDD Javou! #08 2016
PPTX
Nunca foi tao facil testar
PDF
Testes utilizando cucumber + PhantomJs
PDF
TDD - Pós Graduação em Engenharia de Software Ágil
Facilitando o desenvolvimento orientado a testes em aplicações PHP
Todas as abordagens de testes dentro do ágil
TDD Desenvolvimento orientado ao teste
TDD para Java EE
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
TDD - Desenvolvimento Dirigido a Testes
Introdução ao TDD
Introdução ao TDD (Test-Driven Development) - #guma10anos
Testes com JUnit
XP Programming
BDD em Ação
Boas práticas no desenvolvimento de software através do uso de TDD
Revisão de Código - Uma prática que depende da cultura
Palestra TDD - TDC - 2016
Introdução ao TDD nas soluções Global AppCasting
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
Palestra TDD Javou! #08 2016
Nunca foi tao facil testar
Testes utilizando cucumber + PhantomJs
TDD - Pós Graduação em Engenharia de Software Ágil
Anúncio

Destaque (20)

PDF
Boletim geral n 041
PDF
Isabel la Católica. -Biografia real-
ZIP
Prova4 esc
 
PPTX
Cuadro comparativo
PPTX
Exposicion lilia
PPTX
Programa de ensino
PPT
Tics educadores
PPTX
Sistema urinario
PPTX
Exercicio 7
PDF
Boletim Especial Cibratel II
PPTX
Baloncesto
PPTX
Proyectocomputacion
PPTX
Electrónica miguel loaiza
PPTX
Proyectocomputacion
PDF
Comissionamento como Ferramenta do Processo de Controle de Qualidade em Contr...
PDF
Info lexicon
PDF
Newsletter nº 5 Relações Públicas e Imagem - Portugal
PDF
Formatos segunda raquira
DOC
PPTX
Todo mundo conversa
Boletim geral n 041
Isabel la Católica. -Biografia real-
Prova4 esc
 
Cuadro comparativo
Exposicion lilia
Programa de ensino
Tics educadores
Sistema urinario
Exercicio 7
Boletim Especial Cibratel II
Baloncesto
Proyectocomputacion
Electrónica miguel loaiza
Proyectocomputacion
Comissionamento como Ferramenta do Processo de Controle de Qualidade em Contr...
Info lexicon
Newsletter nº 5 Relações Públicas e Imagem - Portugal
Formatos segunda raquira
Todo mundo conversa
Anúncio

Semelhante a RealDay: Introduction to TDD (20)

PDF
Treinamento TDD - Atech
PPTX
Desenvolvimento orientado a testes - TDD
PDF
UnP Eng. Software - Aula 27
KEY
Qualidade no desenvolvimento de Software com TDD e PHPUnit
PPT
TDD - Test Driven Development
PPTX
TDD (Resumo)
PPTX
Desenvolvimento dirigido por comportamento e por teste
PDF
Introdução ao TDD
PDF
Por quê você deve utilizar TDD?
PDF
Test-Driven Development serve pra mim?
PPTX
Introdução a tdd
PPTX
Sobre TDD - Tech Friday da Everis Uberlândia
PPTX
Introdução a TDD
PPT
Test driven development
PPTX
TDD: Técnicas, Benefícios e Limitação
PPTX
Paletra sobre TDD, ocorrida no #DevDojo
PDF
TDD para "meros mortais"
PPTX
Introdução ao Test Driven Development (TDD)
PPTX
BDD e TDD na prática com SpecFlow e Visual Studio 2012
Treinamento TDD - Atech
Desenvolvimento orientado a testes - TDD
UnP Eng. Software - Aula 27
Qualidade no desenvolvimento de Software com TDD e PHPUnit
TDD - Test Driven Development
TDD (Resumo)
Desenvolvimento dirigido por comportamento e por teste
Introdução ao TDD
Por quê você deve utilizar TDD?
Test-Driven Development serve pra mim?
Introdução a tdd
Sobre TDD - Tech Friday da Everis Uberlândia
Introdução a TDD
Test driven development
TDD: Técnicas, Benefícios e Limitação
Paletra sobre TDD, ocorrida no #DevDojo
TDD para "meros mortais"
Introdução ao Test Driven Development (TDD)
BDD e TDD na prática com SpecFlow e Visual Studio 2012

Mais de Miguel Schmitz Grazziotin (7)

PDF
Trabalhando remoto updated
PDF
Ruby: A New World
PDF
Jacket On, Jacket Off - Stop Working and Start Training!
PDF
RealDay: Angular.js
PDF
Ruby: Passado, Presente e além da Web
PDF
Trabalhando remoto com Vikings
ODP
TcheLinux 2010/SenacRS 2013: Apresentação Coding Dojos/DojoPoa
Trabalhando remoto updated
Ruby: A New World
Jacket On, Jacket Off - Stop Working and Start Training!
RealDay: Angular.js
Ruby: Passado, Presente e além da Web
Trabalhando remoto com Vikings
TcheLinux 2010/SenacRS 2013: Apresentação Coding Dojos/DojoPoa

Último (19)

PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
COBITxITIL-Entenda as diferença em uso governança TI
Aula 18 - Manipulacao De Arquivos python
Apple Pippin Uma breve introdução. - David Glotz
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Processos na gestão de transportes, TM100 Col18
Custos e liquidação no SAP Transportation Management, TM130 Col18
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Aula04-Academia Heri- Tecnologia Geral 2025
Gestão de transportes básica no SAP S/4HANA, S4611 Col20

RealDay: Introduction to TDD

  • 1. TDD - Test Driven Development A Bala de Prata da qualidade de software?
  • 2. História, O que é, O que não é "Desenvolvimento orientado a testes" é um processo focado no constante ciclo: 1. escreva um pequeno teste que descreva a feature desejada 2. desenvolva o menor trecho possível de código para que o teste passe 3. refatore o código para torná-lo decente
  • 3. História, O que é, O que não é ● "Test Driven Development: By Example" de Kent Beck, em 2003, falando sobre metodologias ágeis ● TDD é usado em conjunto com outros conceitos como extreme programming ● TDD definido por seus principais objetivos:
  • 4. História, O que é, O que não é TDD é especificação, não validação
  • 5. História, O que é, O que não é => Especificação, não validação ● TDD usa as boas práticas de testes unitários para proporcionar e forçar o desenvolvedor a pensar no requerimento ou design antes de escrever código funcional ● “Entrega” testes unitários que ajudam na validação, mas isso é só uma boa consequência da prática
  • 6. História, O que é, O que não é TDD entrega código limpo e funcional
  • 7. História, O que é, O que não é => Código limpo e funcional ● Premissa que o desenvolvedor sempre vai escrever o teste antes especificando o comportamento e trabalhar no menor trecho de código funcional possível ● Menos linhas de código = menos bugs ● Mais testes = mais confiança e liberdade ao refatorar
  • 8. Comofaiz?! Boas práticas com TDD Para termos o processo realmente funcional precisamos obedecer algumas pequenas mas importantes regras: ● O teste vem primeiro! ● Mantenha o código funcional pequeno, abuse de OO ● Trate seus testes com o mesmo respeito do seu código
  • 9. Comofaiz?! Boas práticas com TDD ● O teste realmente precisa vir primeiro! ● Evite dependência entre testes, são partes autônomas ● Rode testes isolados, randomize quando rodar todos ● Use dados de fácil compreensão, cuide a legibilidade ● Crie testes que sejam um pequeno passo da feature completa, quando juntos eles cobrirão todo o código
  • 10. Prós e Contras. Bom, mau e feio Parece tudo muito bom, tudo muito bem, seguindo as práticas e entendendo do que se trata eu consigo fazer, mas antes de fazer quero saber dos resultados!
  • 11. Prós e Contras => Bom ● Pequeno passo, teste que ele está ok, próximo pequeno passo. Muito código coberto por testes ● Código aos poucos > montes de código = produtividade ● Menos tempo de debug = produtividade ● Segurança para os desenvolvedores em refactors de código antigo e manutenibilidade
  • 12. Prós e Contras => Mau ● É necessário bom entendimento do requerimento ● É parte da suite de testes, mas não é toda a suite ● Testes precisam ter manutenção, são parte do projeto, escreva-os bem ● Evite over-testing, quando o teste começa a ficar muito grande procure quebrá-lo em mais testes
  • 13. Prós e Contras => Feio ● Acreditar que TDD “são só alguns testes” ● Ignorar a manutenção dos testes ● Acreditar que TDD substitui testes de integração, aceitação ou mesmo a documentação do projeto ● Testar depois de implementar a feature completa e achar que isso “é só o que precisa pra ser agile com qualidade”
  • 14. Beija ou Passa? TDD é somente uma prática complementar de muitas boas práticas de desenvolvimento de software. Ele se vale de benefícios de testes unitários e da prática de escrever pouco código para refatorar. Deve ser adotado com apoio gerencial e cuidado dos desenvolvedores para seguir as regras esperadas. Com atenção e feito da maneira certa aumenta a produtividade e a qualidade do projeto de software.
  • 15. TDD - Test Driven Development => Não é bala de prata, mas também vale muito! OBRIGADO! miguelgraz.com