SlideShare une entreprise Scribd logo
1  sur  87
Télécharger pour lire hors ligne
19 de Dezembro, 2015
R. Jardim Botânico 518 2º andar Rio de Janeiro/ 55 21 35540 3540 / hugeinc.com
All You Need
Is TDD
Huge
19 de dezembro, 2015
1. Introdução 2. O que é TDD?
3. Por que usar TDD? 4. Show me the code
5. Boas práticas 6. Ferramentas
7. Próximos passos
Agenda.
Introdução.
Front-End Developer @ Huge.
Front-End, Back-End, DB, Agile

e Integração Contínua.
/bella-silveira
Isabella Silveira
/in/isabellasilveira
@silveira_bells
isilveira@hugeinc.com
O que é TDD?
Tipos de teste de software.
OqueéTDD?
Tipos de teste de software.

1.Testes unitários.

2.Testes de integração.
3.Testes de aceitação.
Tipos de testes de software.

1. Testes unitários.

2. Testes de integração.

3. Testes de aceitação.
Garantem o funcionamento de cada
parte individual do sistema.
Tipos de testes de software.

1. Testes unitários.

2. Testes de integração.

3. Testes de aceitação.
Asseguram que duas ou mais
unidades funcionam corretamente
quando trabalhando juntas.
Tipos de teste de software.

1.Testes unitários.

2.Testes de integração.
3.Testes de aceitação.
Testes na vista,simulam o
comportamento do usuário.
Integração
Unitários
Vista
“ Tá,então o que é TDD?”
Metodologia de desenvolvimento de
software onde os testes são escritos
antes das funcionalidades em si.
O que é TDD?
As três leis do TDD.
OqueéTDD?
Você deve escrever um
teste que falhe antes de escrever
qualquer código de produção.
AstrêsleisdoTDD:
"Getting software to work is only half of
the job."
Robert C. Martin (Uncle Bob)
Primeiro fazer o código funcionar,
depois melhorar a estrutura.
Você não deve escrever um
teste que contenha mais do que
o necessário para fazê-lo falhar.
AstrêsleisdoTDD:
Keep it simple: faça apenas o
necessário no escopo da função.
Você não deve escrever mais
código de produção do que o
suficiente para fazer o teste passar.
AstrêsleisdoTDD:
“A failing test should read like a high-
quality bug report.“
Eric Elliott
Por que
usar TDD?
Por que usar TDD?

1.Auxilia no design da API.

2.Testes = Documentação.
3. Código de qualidade.
4.Viabiliza IC.
Por que usar TDD?

1. Auxilia no design da API.

2. Testes = Documentação.

3. Código de qualidade.
4.Viabiliza IC.
TDD te dá uma perspectiva mais
clara do que realmente é necessário.
TDD reduz a complexidade
do código.
Por que usar TDD?

1.Auxilia no design da API.

2.Testes = Documentação.

3. Código de qualidade.
4.Viabiliza IC.
Cada teste documenta com exatidão
o comportamento de cada função.
Por que usar TDD?

1.Auxilia no design da API.

2.Testes = Documentação.
3. Código de qualidade.
4.Viabiliza IC.
Cada linha de código testado é uma
linha de código confiável.
Por que usar TDD?

1.Auxilia no design da API.

2.Testes = Documentação.
3. Código de qualidade.
4.Viabiliza IC.
A integração contínua fornece o
panorama geral da aplicação.
Testes previnem código quebrado.
Testes mapeiam cada parte do
comportamento da sua aplicação.
Testes acabam com o medo
de refactorings.
TDD reduz a quantidade de bugs.
TDD facilita testes de regressão.
TDD estimula designs modulares.
Show me
the code.
Quatro perguntas primordiais.
Show me the code.
Quatro perguntas primordiais.

1. O que eu estou testando?

2. Quais os parâmetros?
3. Qual a saída obtida?
4. Qual a saída esperada?
Exemplo prático: logIntoSystem()
Red
Green
Refactor
Testar o comportamento em caso de
falha também é importante.
Boas práticas.
Cada teste deve ser independente.
Não faça asserções desnecessárias.
Mocke os estados e
recursos externos.
Use nomes e
descrições consistentes.
Teste um comportamento
de cada vez.
Ferramentas.
Frameworks de teste.
Ferramentas.
Test runners.
Ferramentas.
Próximos Passos.
Integração Contínua.
Perguntas?
19 de Dezembro, 2015
R. Jardim Botânico 518 2º andar Rio de Janeiro/ 55 21 35540 3540 / hugeinc.com

Contenu connexe

Tendances

Tendances (20)

Testes de Performance na Nuvem com JMeter e Blazemeter
Testes de Performance na Nuvem com JMeter e BlazemeterTestes de Performance na Nuvem com JMeter e Blazemeter
Testes de Performance na Nuvem com JMeter e Blazemeter
 
TDD para Java EE
TDD para Java EETDD para Java EE
TDD para Java EE
 
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)
 
Casperjs-tdc-2016.ppt
Casperjs-tdc-2016.pptCasperjs-tdc-2016.ppt
Casperjs-tdc-2016.ppt
 
Você não faz qualidade em Software - TDC Florianópolis 2020
Você não faz qualidade em Software - TDC Florianópolis 2020Você não faz qualidade em Software - TDC Florianópolis 2020
Você não faz qualidade em Software - TDC Florianópolis 2020
 
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
 
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
 
Apresentação tdc 2016 - trilha de testes
Apresentação tdc   2016 - trilha de testesApresentação tdc   2016 - trilha de testes
Apresentação tdc 2016 - trilha de testes
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a Qualidade
 
Programação Funcional usando F#
Programação Funcional usando F#Programação Funcional usando F#
Programação Funcional usando F#
 
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
 
Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018
Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018
Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018
 
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?!?
 
Agilidade não é para desenvolvedores - Agile Curitiba Conference
Agilidade não é para desenvolvedores - Agile Curitiba ConferenceAgilidade não é para desenvolvedores - Agile Curitiba Conference
Agilidade não é para desenvolvedores - Agile Curitiba Conference
 
Unit Testing em .NET - VDD 2011
Unit Testing em .NET - VDD 2011Unit Testing em .NET - VDD 2011
Unit Testing em .NET - VDD 2011
 
Minas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega ContínuaMinas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega Contínua
 
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
 
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
 
Management 3.0 - a vida pós-agilidade
Management 3.0 - a vida pós-agilidadeManagement 3.0 - a vida pós-agilidade
Management 3.0 - a vida pós-agilidade
 
TDC POA 2016 - Robotium + Cucumber + Gradle, misture com spoon e tenha uma ex...
TDC POA 2016 - Robotium + Cucumber + Gradle, misture com spoon e tenha uma ex...TDC POA 2016 - Robotium + Cucumber + Gradle, misture com spoon e tenha uma ex...
TDC POA 2016 - Robotium + Cucumber + Gradle, misture com spoon e tenha uma ex...
 

En vedette

Intro to the LA Design Community
Intro to the LA Design CommunityIntro to the LA Design Community
Intro to the LA Design Community
Huge
 
DataWeek: Oh no, I'm running a data-driven cult!
DataWeek: Oh no, I'm running a data-driven cult!DataWeek: Oh no, I'm running a data-driven cult!
DataWeek: Oh no, I'm running a data-driven cult!
Huge
 
Intro to the LA Design Community Resources
Intro to the LA Design Community ResourcesIntro to the LA Design Community Resources
Intro to the LA Design Community Resources
Huge
 
UX Portfolio Tips
UX Portfolio TipsUX Portfolio Tips
UX Portfolio Tips
Huge
 
The Pitfalls of Process
The Pitfalls of ProcessThe Pitfalls of Process
The Pitfalls of Process
Huge
 

En vedette (20)

Javascript State of the Union 2015 - English
Javascript State of the Union 2015 - EnglishJavascript State of the Union 2015 - English
Javascript State of the Union 2015 - English
 
Social e conteúdo preditivo: como antever reações de usuários e diminuir risc...
Social e conteúdo preditivo: como antever reações de usuários e diminuir risc...Social e conteúdo preditivo: como antever reações de usuários e diminuir risc...
Social e conteúdo preditivo: como antever reações de usuários e diminuir risc...
 
How Corporate Personhood Might Just Save the World
How Corporate Personhood Might Just Save the WorldHow Corporate Personhood Might Just Save the World
How Corporate Personhood Might Just Save the World
 
What is new on ES6
What is new on ES6What is new on ES6
What is new on ES6
 
Desenvolvimento Orientado a Qualidade
Desenvolvimento Orientado a QualidadeDesenvolvimento Orientado a Qualidade
Desenvolvimento Orientado a Qualidade
 
A importância da UX para o consumo de conteúdo digital
A importância da UX para o consumo de conteúdo digitalA importância da UX para o consumo de conteúdo digital
A importância da UX para o consumo de conteúdo digital
 
RobotUX: A Framework for Human-Robot Interactions
RobotUX: A Framework for Human-Robot InteractionsRobotUX: A Framework for Human-Robot Interactions
RobotUX: A Framework for Human-Robot Interactions
 
Client-side Development 2016
Client-side Development 2016Client-side Development 2016
Client-side Development 2016
 
Intro to the LA Design Community
Intro to the LA Design CommunityIntro to the LA Design Community
Intro to the LA Design Community
 
Intro to the SF Design Community Resources
Intro to the SF Design Community ResourcesIntro to the SF Design Community Resources
Intro to the SF Design Community Resources
 
Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)
 
The Augmented Future: Entertainment & Utility
The Augmented Future: Entertainment & UtilityThe Augmented Future: Entertainment & Utility
The Augmented Future: Entertainment & Utility
 
Intro to the LA Design Community Resources
Intro to the LA Design Community ResourcesIntro to the LA Design Community Resources
Intro to the LA Design Community Resources
 
DataWeek: Oh no, I'm running a data-driven cult!
DataWeek: Oh no, I'm running a data-driven cult!DataWeek: Oh no, I'm running a data-driven cult!
DataWeek: Oh no, I'm running a data-driven cult!
 
What is Digital Life Worth?
What is Digital Life Worth?What is Digital Life Worth?
What is Digital Life Worth?
 
Intro to the LA Design Community Resources
Intro to the LA Design Community ResourcesIntro to the LA Design Community Resources
Intro to the LA Design Community Resources
 
The New Creative Partners: Brand Planning Meets UX
The New Creative Partners: Brand Planning Meets UXThe New Creative Partners: Brand Planning Meets UX
The New Creative Partners: Brand Planning Meets UX
 
UX Portfolio Tips
UX Portfolio TipsUX Portfolio Tips
UX Portfolio Tips
 
Forget channels: Context is King (IA Summit)
Forget channels: Context is King (IA Summit)Forget channels: Context is King (IA Summit)
Forget channels: Context is King (IA Summit)
 
The Pitfalls of Process
The Pitfalls of ProcessThe Pitfalls of Process
The Pitfalls of Process
 

Similaire à All You Need Is TDD (Português)

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 Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
elliando dias
 

Similaire à All You Need Is TDD (Português) (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
 
Pensando TDD
Pensando TDDPensando TDD
Pensando TDD
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
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
 
Tente desenvolver diferente com TDD
Tente desenvolver diferente com TDDTente desenvolver diferente com TDD
Tente desenvolver diferente com TDD
 
Criando uma Arquitetura Testável
Criando uma Arquitetura TestávelCriando uma Arquitetura Testável
Criando uma Arquitetura Testável
 
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
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Teste automatizados e tdd
Teste automatizados e tddTeste automatizados e tdd
Teste automatizados e tdd
 
Strider CD - Deploy Contínuo com JavaScript
Strider CD -  Deploy Contínuo com JavaScriptStrider CD -  Deploy Contínuo com JavaScript
Strider CD - Deploy Contínuo com JavaScript
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 
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
 
TesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdfTesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdf
 
Testes unitários e Mocks
Testes unitários e MocksTestes unitários e Mocks
Testes unitários e Mocks
 
RealDay: Introduction to TDD
RealDay: Introduction to TDDRealDay: Introduction to TDD
RealDay: Introduction to TDD
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
TDD
TDDTDD
TDD
 
Desenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por TestesDesenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por Testes
 

Plus de Huge

Humans: The Next Interface
Humans: The Next InterfaceHumans: The Next Interface
Humans: The Next Interface
Huge
 
Smart Cities: How Smart is Too Smart?
Smart Cities: How Smart is Too Smart?Smart Cities: How Smart is Too Smart?
Smart Cities: How Smart is Too Smart?
Huge
 

Plus de Huge (9)

With Users Like These Who Needs Enemies?
With Users Like These Who Needs Enemies?With Users Like These Who Needs Enemies?
With Users Like These Who Needs Enemies?
 
The Practitioner's Guide to Digital Transformation
The Practitioner's Guide to Digital TransformationThe Practitioner's Guide to Digital Transformation
The Practitioner's Guide to Digital Transformation
 
What Digital Orgs Can Learn from Software Design
What Digital Orgs Can Learn from Software DesignWhat Digital Orgs Can Learn from Software Design
What Digital Orgs Can Learn from Software Design
 
Humans: The Next Interface
Humans: The Next InterfaceHumans: The Next Interface
Humans: The Next Interface
 
What Matters Now: Education
What Matters Now: EducationWhat Matters Now: Education
What Matters Now: Education
 
Brands as Publishers.
Brands as Publishers.Brands as Publishers.
Brands as Publishers.
 
Smart Cities: How Smart is Too Smart?
Smart Cities: How Smart is Too Smart?Smart Cities: How Smart is Too Smart?
Smart Cities: How Smart is Too Smart?
 
What Matters Now: Retail
What Matters Now: RetailWhat Matters Now: Retail
What Matters Now: Retail
 
Future-Proofing the Web: Choosing the Optimal Mobile Design Strategy
Future-Proofing the Web: Choosing the Optimal Mobile Design StrategyFuture-Proofing the Web: Choosing the Optimal Mobile Design Strategy
Future-Proofing the Web: Choosing the Optimal Mobile Design Strategy
 

All You Need Is TDD (Português)