SlideShare una empresa de Scribd logo
1 de 15
Não existe feedback
melhor do que o do seu
código.
TEST DRIVEN DEVELOPMENT
pense no que
você precisa
implementar
escreva seu teste
escreva a
implementação
básica para o
teste passar
refatore seu
código
0/
comemore
TDD x teste unitario
Meu querido, eu queria uma
tela que mostre os
funcionários, e nessa tela eu
preciso editar o campo nome.
Esse campo não pode ser
vazio.
Não deve ser difícil, acho que
com um ‘if’ você resolve.
Pense no que você precisa implementar
Usuário
Meu querido, eu queria uma
tela que mostre os
funcionários, e nessa tela eu
preciso editar o campo nome.
Esse campo não pode ser
vazio.
Não deve ser difícil, acho que
com um ‘if’ você resolve.
Pense no que você precisa implementar
Listar os
funcionários
Colocar
um botão
de editar
na tela
Validar o
campo
Nome
Salvar os
dados no
server
Pense
…
Escreva seu teste
describe(‘Quando a tela de listagem de funcionários for carregada’)
it(‘Deve listar todos os funcionários’)
Contexto do seu teste
O que deve acontecer?
Escreva a implementação básica para o teste passar
Essa é a hora de ser o mais simples possível!
Refatore seu código se necessário
Geralmente é nessa hora que o código se expressa.
escreva a
implementação
básica para o
teste passar
refatore seu
código
Refatorando…
Obviamente o teste deve continuar ‘verde’
Teste de Unidade
escreve o
código de
produção
escreve o teste
Feedback pode ser ruim ou tardio
e a refatoração pode custar caro (tempo).
Smells em códigos de teste
código de teste
código de produção
Não consuma sua API, ou serviços terceiros
Não acesse banco de dados
Um teste não deve impactar no outro
Teste seu código, não seu framework.
seu código
backbone library
- BeforeEach and AfterEach
Melhorando o Código de Teste
* Ajuda com DRY no seu código de teste
- AAA
Melhorando o Código de Teste
* Ajuda na clareza e entendimento do seu código de teste.
* O Ideal é ter apenas um Assert por teste.
Jasmine
* Na documentação diz Behavior Driven;
* Não precisa de nenhuma outra lib (standalone);
*Javascript framework para teste;
* Fácil sintaxe;
* Deixado por ultimo de propósito.
Renan Carvalho
Front End developer na Chute (estamos contratando)
Twitter : @rcarvalhojs
https://github.com/renancarvalho
Obrigado!

Más contenido relacionado

La actualidad más candente

Mtc docker - utilizando no seu dia a dia
Mtc   docker - utilizando no seu dia a diaMtc   docker - utilizando no seu dia a dia
Mtc docker - utilizando no seu dia a diaRafael Chiavegatto
 
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
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesSamanta Cicilia
 
Automatizando seus testes com robot framework
Automatizando seus testes com robot frameworkAutomatizando seus testes com robot framework
Automatizando seus testes com robot frameworkClaudenir Freitas
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e WebdriverJúlio de Lima
 
Coders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingCoders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingSamanta Cicilia
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de softwarericardophp
 
Suporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellSuporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellIgor Abade
 
[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...
[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...
[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...minastestingconference
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de SoftwareMaurício Aniche
 
TDC POA - Especificação Por Exemplo como ferramenta de negócios
TDC POA - Especificação Por Exemplo como ferramenta de negóciosTDC POA - Especificação Por Exemplo como ferramenta de negócios
TDC POA - Especificação Por Exemplo como ferramenta de negóciosSamanta Cicilia
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)Júlio de Lima
 
Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2Diego Pacheco
 
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driverJúlio de Lima
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes AutomatizadosSamanta Cicilia
 
Curso treinamento automação de testes com selenium
Curso treinamento automação de testes com seleniumCurso treinamento automação de testes com selenium
Curso treinamento automação de testes com seleniumCristiano Caetano
 

La actualidad más candente (20)

Mtc docker - utilizando no seu dia a dia
Mtc   docker - utilizando no seu dia a diaMtc   docker - utilizando no seu dia a dia
Mtc docker - utilizando no seu dia a dia
 
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
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
Automatizando seus testes com robot framework
Automatizando seus testes com robot frameworkAutomatizando seus testes com robot framework
Automatizando seus testes com robot framework
 
Hands On Selenium
Hands On SeleniumHands On Selenium
Hands On Selenium
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
 
Coders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingCoders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile Testing
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
Suporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellSuporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShell
 
Selenium
SeleniumSelenium
Selenium
 
Teste automatizados e tdd
Teste automatizados e tddTeste automatizados e tdd
Teste automatizados e tdd
 
[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...
[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...
[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de Software
 
TDC POA - Especificação Por Exemplo como ferramenta de negócios
TDC POA - Especificação Por Exemplo como ferramenta de negóciosTDC POA - Especificação Por Exemplo como ferramenta de negócios
TDC POA - Especificação Por Exemplo como ferramenta de negócios
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
 
Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2
 
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 
Curso treinamento automação de testes com selenium
Curso treinamento automação de testes com seleniumCurso treinamento automação de testes com selenium
Curso treinamento automação de testes com selenium
 

Similar a Não existe feedback melhor do que o do seu código

Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshopguestd37c23
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)Lucas Nery
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"thiagobapt
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalAdriano Petrich
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaRafael Ponte
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislAdriano Petrich
 
Tester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoTester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoLeonardo Galani
 
Leonardo Galani - Tester, pegue suas coisas porque vc está demitido
Leonardo Galani - Tester, pegue suas coisas porque vc está demitidoLeonardo Galani - Tester, pegue suas coisas porque vc está demitido
Leonardo Galani - Tester, pegue suas coisas porque vc está demitidominastestingconference
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testeselliando dias
 
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
 
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014Gilmar PSL
 
Projeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SProjeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SThoughtworks
 
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
 

Similar a Não existe feedback melhor do que o do seu código (20)

Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshop
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"
 
Testes - Para que?
Testes - Para que?Testes - Para que?
Testes - Para que?
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao final
 
Código limpo
Código limpoCódigo limpo
Código limpo
 
Clean code
Clean codeClean code
Clean code
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresa
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fisl
 
Clean Code
Clean CodeClean Code
Clean Code
 
Tester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoTester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitido
 
Leonardo Galani - Tester, pegue suas coisas porque vc está demitido
Leonardo Galani - Tester, pegue suas coisas porque vc está demitidoLeonardo Galani - Tester, pegue suas coisas porque vc está demitido
Leonardo Galani - Tester, pegue suas coisas porque vc está demitido
 
Minicurso de TDD
Minicurso de TDDMinicurso de TDD
Minicurso de TDD
 
TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 
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
 
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
 
Projeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SProjeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.S
 
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
 

Não existe feedback melhor do que o do seu código

  • 1. Não existe feedback melhor do que o do seu código.
  • 2. TEST DRIVEN DEVELOPMENT pense no que você precisa implementar escreva seu teste escreva a implementação básica para o teste passar refatore seu código 0/ comemore TDD x teste unitario
  • 3. Meu querido, eu queria uma tela que mostre os funcionários, e nessa tela eu preciso editar o campo nome. Esse campo não pode ser vazio. Não deve ser difícil, acho que com um ‘if’ você resolve. Pense no que você precisa implementar Usuário
  • 4. Meu querido, eu queria uma tela que mostre os funcionários, e nessa tela eu preciso editar o campo nome. Esse campo não pode ser vazio. Não deve ser difícil, acho que com um ‘if’ você resolve. Pense no que você precisa implementar Listar os funcionários Colocar um botão de editar na tela Validar o campo Nome Salvar os dados no server Pense …
  • 5. Escreva seu teste describe(‘Quando a tela de listagem de funcionários for carregada’) it(‘Deve listar todos os funcionários’) Contexto do seu teste O que deve acontecer?
  • 6. Escreva a implementação básica para o teste passar Essa é a hora de ser o mais simples possível!
  • 7. Refatore seu código se necessário Geralmente é nessa hora que o código se expressa. escreva a implementação básica para o teste passar refatore seu código
  • 8. Refatorando… Obviamente o teste deve continuar ‘verde’
  • 9. Teste de Unidade escreve o código de produção escreve o teste Feedback pode ser ruim ou tardio e a refatoração pode custar caro (tempo).
  • 10. Smells em códigos de teste código de teste código de produção Não consuma sua API, ou serviços terceiros Não acesse banco de dados Um teste não deve impactar no outro
  • 11. Teste seu código, não seu framework. seu código backbone library
  • 12. - BeforeEach and AfterEach Melhorando o Código de Teste * Ajuda com DRY no seu código de teste
  • 13. - AAA Melhorando o Código de Teste * Ajuda na clareza e entendimento do seu código de teste. * O Ideal é ter apenas um Assert por teste.
  • 14. Jasmine * Na documentação diz Behavior Driven; * Não precisa de nenhuma outra lib (standalone); *Javascript framework para teste; * Fácil sintaxe; * Deixado por ultimo de propósito.
  • 15. Renan Carvalho Front End developer na Chute (estamos contratando) Twitter : @rcarvalhojs https://github.com/renancarvalho Obrigado!