SlideShare uma empresa Scribd logo
O poder do TDD
Rafael Queiroz
O poder do TDD
O poder do TDD
O poder do TDD
O poder do TDD
Aprendi fazendo TDD
 Teste de unidade
 TDD
 DDD
 Design Patterns
 Refatoração
 Clean Code
 SOLID
Compreendi fazendo TDD
 Confiança
 Feedback curto
 Ritmo
 Lean
 Kaizen
 Eliminar disperdícios
 Simplicidade
 Olhar só para o presente
Compreendi fazendo TDD
 Arquitetura emergente
 Arquitetura aderente ao negócio, não o contrário
 Relação entre pequenas mudanças cotidianas e
grandes resultados
Test Driven Development
Desenvolvimento guiado por teste
Desenvolvimento orientado a teste
Teste?
Testar: verbo
Teste: substantivo
Teste automatizado
Que teste?
Unit
Teste Unitário
Teste de Unidade
Unidade
Método - Kent Beck
Unidade de trabalho: de um método até múltiplas
classes – Roy Osherove
Test Driven Development
Desenvolvimento guiado por teste automatizado de
unidade
Problem Driven Design
Arquitetura Guiada por Problema
Objetivo
Obter feedback rápido das decisões - Kent Beck
“Código limpo que funciona” - Ron Jeffries
Testes
“Toda linha de código que você escreve deve estar
testada, e Ponto Final.”
Uncle Bob
Estresse
Execução deTestes
Aspiral da morte do “sem tempo para testar”.
Importância dos testes
O poder do TDD
Estresse
Execução deTestesExecução deTestesAutomático
Como mudar?
Coragem
 Hesitante
 Querer comunicar menos
 Afastar do feedback
 Mal-humorado
Ciclo TDD
 Adicione um pequeno teste
 Rode os testes e veja falhar
Ciclo TDD
 Faça a mudança mais simples para passar
 Rode os testes e veja ser bem-sucedido
Ciclo TDD
 Refatore para remover duplicação
 Rode os testes e veja ser bem-sucedido
Impacto
 Código vivo
 Devemos escrever nossos testes
 Ambiente rápido
 Código testável, altamente coeso e fracamente
acoplado
 A garantia de qualidade passa de reativo para pró-
ativo
Lista de testes
 Liste os testes que precisa para terminar uma tarefa
 Escolha o que mais pode te ensinar algo, que você
confia em implementar e aplique o ciclo TDD um por vez
 Ao codificar, adicione os testes emergente no fim da lista
 Ao codificar, crie uma lista de maus cheiros de código”
 Crie todos os testes que consiga imaginar
Nomeando testes
 Unidade de Trabalho
 Cenário
 Comportamento esperado
 Retorno de valor
 Exceção
 Modificação de estado
 Requisição de outro sistema
Modelo: UnidadeDeTrabalho_Cenario_ComportamentoEsperado
Exemplo: SalvarUsuario_SemCpf_LancarExcecao
Propriedades de um bom
teste
 Deve ser relevante amanhã
 Rodar com um apertar de botão
 Deve rodar rápido
 Deve ter resultados consistentes
 Deve ter controle total sobre a unidade testada
 Ao falhar, deve ser rápido de detectar e determinar onde
está o problema
Testes isolados
 Um teste não deve afetar o outro
 Deve ser independente
Dados de teste
 Fácil de ler
 Fáceis de seguir
 Se o sistema manipular várias entradas, você dever
ter os mesmos testes para a mesma unidade
 Um dado não deve significar mais que uma coisa
 Dados realistas
Dados evidentes
 Não utilizar constantes nos testes
 Deixar claro a relação das entradas e da asserção
Asserção Primeiro
 Escrever um teste é difícil
 Escreva as asserções primeiro
Barra vermelha
 Um só passo
 Aprendizado
 Outro teste
 Regressão
 Pausa
Barra verde
 Fazer de conta
 Triangular
 Implementação óbvia
Padrões de teste
 Teste filho
 Mock
 Modelo de testes de acidente
 Teste quebrado
 Código limpo
O que devemos testar?
 Condições
 Laços
 Operações
 Polimorfismo
Mantra
Obrigado!
rafael.queiroz@pagar.me
https://www.linkedin.com/in/rafaelmascarenhasqueiroz
@oporks

Mais conteúdo relacionado

PPTX
Palestra tdd - rsjug
PPT
Introdução ao TDD
PPTX
TDD Desenvolvimento orientado ao teste
PPTX
TDD (Test-Driven Development)
PDF
Tente desenvolver diferente com TDD
PDF
Introdução ao TDD (Test-Driven Development) - #guma10anos
PPTX
Testes unitários e Mocks
PDF
Test-Driven Develpment - TDD
Palestra tdd - rsjug
Introdução ao TDD
TDD Desenvolvimento orientado ao teste
TDD (Test-Driven Development)
Tente desenvolver diferente com TDD
Introdução ao TDD (Test-Driven Development) - #guma10anos
Testes unitários e Mocks
Test-Driven Develpment - TDD

Mais procurados (20)

PPT
TDD - Test Driven Development com JAVA
PDF
Introdução ao TDD
PDF
Test Driven Development (TDD) para seres humanos.
PPTX
Teste automatizados e tdd
PDF
RealDay: Introduction to TDD
PPT
Introdução a Desenvolvimento Orientado a Testes ( TDD )
PPT
Desenvolvimento Guiado Por Testes
PPT
O que é Teste de Software?
PPTX
Desenvolvimento Dirigido por Testes
PPT
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
PDF
Test driven development teste e design no mundo real by mauricio aniche (z-li...
PPTX
Pensando TDD
PDF
Facilitando o desenvolvimento orientado a testes em aplicações PHP
PDF
TDD - Pós Graduação em Engenharia de Software Ágil
PPT
Introdução ao XP
PPTX
Apresentação testes white box
PDF
Testes: existe vida antes do TDD
PPTX
TDD na Prática
PPTX
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
TDD - Test Driven Development com JAVA
Introdução ao TDD
Test Driven Development (TDD) para seres humanos.
Teste automatizados e tdd
RealDay: Introduction to TDD
Introdução a Desenvolvimento Orientado a Testes ( TDD )
Desenvolvimento Guiado Por Testes
O que é Teste de Software?
Desenvolvimento Dirigido por Testes
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Test driven development teste e design no mundo real by mauricio aniche (z-li...
Pensando TDD
Facilitando o desenvolvimento orientado a testes em aplicações PHP
TDD - Pós Graduação em Engenharia de Software Ágil
Introdução ao XP
Apresentação testes white box
Testes: existe vida antes do TDD
TDD na Prática
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
Anúncio

Semelhante a O poder do TDD (20)

PPT
Test-Driven Development - Introdução ao método de construção de software guia...
PPTX
Introdução a TDD
PDF
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
PPTX
Tdd x testes unidades
PDF
Test-Driven Development serve pra mim?
PPTX
Test Driven Development - Conceitos básicos
PDF
Os Benefícios dos testes no desenvolvimento de software
PPT
TDD - Test Driven Development
PPTX
Sobre TDD - Tech Friday da Everis Uberlândia
PPTX
TDD (Resumo)
PDF
UnP Eng. Software - Aula 27
PPTX
Desenvolvimento dirigido por comportamento e por teste
PPTX
Testes de Unidade, por que você deve começar a fazer? - Javaneiros
PPTX
TDD no Community Launch 2010 - Christian Cunha
PDF
Qualidade e Testes de Software
PPTX
Paletra sobre TDD, ocorrida no #DevDojo
PPT
Treinamento Testes Unitários - parte 1
PPTX
Testes Unitários
PPTX
Por que você não escreve Testes Unitários?
PDF
TDD para "meros mortais"
Test-Driven Development - Introdução ao método de construção de software guia...
Introdução a TDD
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
Tdd x testes unidades
Test-Driven Development serve pra mim?
Test Driven Development - Conceitos básicos
Os Benefícios dos testes no desenvolvimento de software
TDD - Test Driven Development
Sobre TDD - Tech Friday da Everis Uberlândia
TDD (Resumo)
UnP Eng. Software - Aula 27
Desenvolvimento dirigido por comportamento e por teste
Testes de Unidade, por que você deve começar a fazer? - Javaneiros
TDD no Community Launch 2010 - Christian Cunha
Qualidade e Testes de Software
Paletra sobre TDD, ocorrida no #DevDojo
Treinamento Testes Unitários - parte 1
Testes Unitários
Por que você não escreve Testes Unitários?
TDD para "meros mortais"
Anúncio

Último (19)

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

O poder do TDD