SlideShare uma empresa Scribd logo
1 de 70
Test-Driven Development @denisferrari
UMA HISTÓRIA
Querfazer um projeto? CLARO!
ALGUM TEMPO DEPOIS: .NET aoextremo De 2 para 80 Users ~50 UCs Clientesimportantes Regras de negóciocomplexas 170 Tabelas
Experiênciatraumática
HÉRCULES NÃO FARIA
Durante um jantar
Apareceumaemergência
Durante um momentodescontraído
O SGBD nãoresponde
Durante umanoite de sono
O clientereporta um erro
Durante suasériefavorita
Valeu a pena?
Pessoas se enganam
Algofaltava…
Vamosaprender com quemfaz
Vamospara o mercado!
Possuemosmesmos*problemas
Prazoscurtos
Falhas de comunicação
Contratosrígidos
Problemas com processos
Previsibilidade
Projetocastelo de cartas
Super-homens
Projetocastelo de areia
Queima de dinheiro
Stress
ChaosReport http://www1.standishgroup.com/newsroom/chaos_2009.php
Começaruim
Depoispiora
FALTA QUALIDADE!
Devidoaos traumas do passado
Algumasconclusões Programaçãoem par DDD Scrum & XP TDD & IC Equipe, comunicação Excelênciatécnica e teórica
VISÃO GERAL SOBRE TESTES
Espiraldamorte
TDD
Objetivos
Mantra Verde Vermelho Refatorar
Lista de testes
Escreva o teste
Faça o testepassar
Refatore o seucódigo
Exemplo Exemplo: Testar o envio da string “Mindworks” através de um socket. publicvoidTestarComunicacaoSocket()         { Assert.IsTrue(readerSocket.Close()); Assert.AreEqual(“Mindworks”, buf);         } publicvoidTestarComunicacaoSocket()         {                 string buf = reader.Contents(); Assert.IsTrue(readerSocket.Close()); Assert.AreEqual(“Mindworks”, buf);         } publicvoidTestarComunicacaoSocket()         { SocketreaderSocket = newSocket(“localhost”, 8080);                 string buf = reader.Contents(); Assert.IsTrue(readerSocket.Close()); Assert.AreEqual(“Mindworks”, buf);         } publicvoidTestarComunicacaoSocket()         {                 Server server = new Server(8080, “”Mindworks”); SocketreaderSocket = newSocket(“localhost”, 8080);                 string buf = reader.Contents(); Assert.IsTrue(readerSocket.Close()); Assert.AreEqual(“Mindworks”, buf);         }
Passos de bebe
10 a 15 minutos
Noção de progresso
Facilitar a comunicação
Construçãosustentável
Integraçãocontínua
Coding Dojo
Programaçãoem par
BENEFÍCIOS DO TDD
Maiorqualidade
Menorcusto
Corte no TCO (Custo Total de Posse )
Garante testes unitários
Menos bugs
Software maisdesacoplado
Especificaçãoexecutável
FERRAMENTAS P/ TDD
Visual Studio 2010
ALM
NUnit
Beck, K. Test-Driven Development by Example, Addison Wesley, 2003
Obrigado! @denisferrari www.heroisdati.com tinyurl.com/grupomsdeves www.minhacarreira.com www.mindworks.com.br

Mais conteúdo relacionado

Mais procurados

Tdd not sure if testing or developing
Tdd  not sure if testing or developingTdd  not sure if testing or developing
Tdd not sure if testing or developingRenato Oliveira
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaRafael Ponte
 
Orquestradores - aplicações e preocupações
Orquestradores - aplicações e preocupaçõesOrquestradores - aplicações e preocupações
Orquestradores - aplicações e preocupaçõesLincolm Aguiar
 
Tdd como uma ferramenta de arquitetura
Tdd como uma ferramenta de arquiteturaTdd como uma ferramenta de arquitetura
Tdd como uma ferramenta de arquiteturaEverton Tavares
 
Keep calm and Database Continuous Deployment
Keep calm and Database Continuous DeploymentKeep calm and Database Continuous Deployment
Keep calm and Database Continuous DeploymentFabrízio Mello
 
[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com CodeceptionJúlio de Lima
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)Renato Groff
 
Mindset do QA em diferentes contextos
Mindset do QA em diferentes contextosMindset do QA em diferentes contextos
Mindset do QA em diferentes contextosJúlio de Lima
 
A fantástica fábrica de software
A fantástica fábrica de softwareA fantástica fábrica de software
A fantástica fábrica de softwareLucas Barros
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Bug Bash - Uma estratégia colaborativa de testes - Raquel Doná
Bug Bash - Uma estratégia colaborativa de testes - Raquel DonáBug Bash - Uma estratégia colaborativa de testes - Raquel Doná
Bug Bash - Uma estratégia colaborativa de testes - Raquel DonáTest Girls
 

Mais procurados (14)

Tdd not sure if testing or developing
Tdd  not sure if testing or developingTdd  not sure if testing or developing
Tdd not sure if testing or developing
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresa
 
Pep 8
Pep 8Pep 8
Pep 8
 
Orquestradores - aplicações e preocupações
Orquestradores - aplicações e preocupaçõesOrquestradores - aplicações e preocupações
Orquestradores - aplicações e preocupações
 
BDD
BDDBDD
BDD
 
Desenvolvimento BDD
Desenvolvimento BDDDesenvolvimento BDD
Desenvolvimento BDD
 
Tdd como uma ferramenta de arquitetura
Tdd como uma ferramenta de arquiteturaTdd como uma ferramenta de arquitetura
Tdd como uma ferramenta de arquitetura
 
Keep calm and Database Continuous Deployment
Keep calm and Database Continuous DeploymentKeep calm and Database Continuous Deployment
Keep calm and Database Continuous Deployment
 
[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)
 
Mindset do QA em diferentes contextos
Mindset do QA em diferentes contextosMindset do QA em diferentes contextos
Mindset do QA em diferentes contextos
 
A fantástica fábrica de software
A fantástica fábrica de softwareA fantástica fábrica de software
A fantástica fábrica de software
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Bug Bash - Uma estratégia colaborativa de testes - Raquel Doná
Bug Bash - Uma estratégia colaborativa de testes - Raquel DonáBug Bash - Uma estratégia colaborativa de testes - Raquel Doná
Bug Bash - Uma estratégia colaborativa de testes - Raquel Doná
 

Destaque

Y la quimica para que
Y la quimica para queY la quimica para que
Y la quimica para queRubs Rm
 
Contra La Violencia Machista
Contra La Violencia MachistaContra La Violencia Machista
Contra La Violencia Machistamarburmr
 
Texto - Os Apetites e as Emoções
Texto - Os Apetites e as EmoçõesTexto - Os Apetites e as Emoções
Texto - Os Apetites e as EmoçõesIbraim
 
P. EducacióN Virtual
P. EducacióN VirtualP. EducacióN Virtual
P. EducacióN Virtualnancy anais
 
Aves De Casa
Aves De CasaAves De Casa
Aves De Casaxiepa
 
Proyecto TIC en un centro educativo
Proyecto TIC en un centro educativoProyecto TIC en un centro educativo
Proyecto TIC en un centro educativovbaigo
 
Agr1beja 2ºciclo solidariedade_ daniel mateus
Agr1beja 2ºciclo solidariedade_ daniel mateusAgr1beja 2ºciclo solidariedade_ daniel mateus
Agr1beja 2ºciclo solidariedade_ daniel mateusluiscontente
 
Policías y agresores de civil agreden a periodistas de Veracruz
Policías y agresores de civil agreden a periodistas de VeracruzPolicías y agresores de civil agreden a periodistas de Veracruz
Policías y agresores de civil agreden a periodistas de VeracruzJorge Luis Sierra
 
Atalayas Aztecas
Atalayas AztecasAtalayas Aztecas
Atalayas Aztecaslorenasfete
 
Elección democrática del escudo de nuestro centro 2
Elección democrática del escudo de nuestro centro 2Elección democrática del escudo de nuestro centro 2
Elección democrática del escudo de nuestro centro 2lopezlopezchelo
 

Destaque (18)

NR 09
NR 09NR 09
NR 09
 
Y la quimica para que
Y la quimica para queY la quimica para que
Y la quimica para que
 
Contra La Violencia Machista
Contra La Violencia MachistaContra La Violencia Machista
Contra La Violencia Machista
 
Tutorial hot potatoes idioma
Tutorial hot potatoes   idiomaTutorial hot potatoes   idioma
Tutorial hot potatoes idioma
 
Oralidade, escrita e fotografia
Oralidade, escrita e fotografiaOralidade, escrita e fotografia
Oralidade, escrita e fotografia
 
Jornal Passo a Passo Extra Educação
Jornal Passo a Passo Extra EducaçãoJornal Passo a Passo Extra Educação
Jornal Passo a Passo Extra Educação
 
Texto - Os Apetites e as Emoções
Texto - Os Apetites e as EmoçõesTexto - Os Apetites e as Emoções
Texto - Os Apetites e as Emoções
 
P. EducacióN Virtual
P. EducacióN VirtualP. EducacióN Virtual
P. EducacióN Virtual
 
ACMP BRASIL Institucional
ACMP BRASIL InstitucionalACMP BRASIL Institucional
ACMP BRASIL Institucional
 
Aves De Casa
Aves De CasaAves De Casa
Aves De Casa
 
Sílabo de opcional iv
Sílabo de opcional ivSílabo de opcional iv
Sílabo de opcional iv
 
Proyecto TIC en un centro educativo
Proyecto TIC en un centro educativoProyecto TIC en un centro educativo
Proyecto TIC en un centro educativo
 
Marraquesk
MarraqueskMarraquesk
Marraquesk
 
Agr1beja 2ºciclo solidariedade_ daniel mateus
Agr1beja 2ºciclo solidariedade_ daniel mateusAgr1beja 2ºciclo solidariedade_ daniel mateus
Agr1beja 2ºciclo solidariedade_ daniel mateus
 
Policías y agresores de civil agreden a periodistas de Veracruz
Policías y agresores de civil agreden a periodistas de VeracruzPolicías y agresores de civil agreden a periodistas de Veracruz
Policías y agresores de civil agreden a periodistas de Veracruz
 
Atalayas Aztecas
Atalayas AztecasAtalayas Aztecas
Atalayas Aztecas
 
Sekilas tentang sun com
Sekilas tentang sun comSekilas tentang sun com
Sekilas tentang sun com
 
Elección democrática del escudo de nuestro centro 2
Elección democrática del escudo de nuestro centro 2Elección democrática del escudo de nuestro centro 2
Elección democrática del escudo de nuestro centro 2
 

Semelhante a Test-Driven Development (TDD) overview

Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Big Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineBig Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineTiago Peczenyj
 
QConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaQConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaDiego Pacheco
 
Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Diego Pacheco
 
Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágilabacrazy
 
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEAgenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEJoao Galdino Mello de Souza
 
Agenda Versão Final - CMG 14a. conferencia nacional
Agenda Versão Final - CMG 14a. conferencia nacionalAgenda Versão Final - CMG 14a. conferencia nacional
Agenda Versão Final - CMG 14a. conferencia nacionalJoao Galdino Mello de Souza
 
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEAgenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEJoao Galdino Mello de Souza
 
Expremendo performance do sql server
Expremendo performance do sql serverExpremendo performance do sql server
Expremendo performance do sql serverFelipe Ferreira
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"thiagobapt
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaJosé Roberto Araújo
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureGiovanni Bassi
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agileAlini Rebonatto
 
Desenvolvimento ágil do jeito certo
Desenvolvimento ágil do jeito certoDesenvolvimento ágil do jeito certo
Desenvolvimento ágil do jeito certoMarcos Petry
 
UAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos TestesUAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos TestesJosé Correia
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
 
SonarQube
SonarQubeSonarQube
SonarQubeCDS
 

Semelhante a Test-Driven Development (TDD) overview (20)

Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Big Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineBig Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade online
 
QConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaQConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestrutura
 
Metodos ageis thinkingdifferent
Metodos ageis thinkingdifferentMetodos ageis thinkingdifferent
Metodos ageis thinkingdifferent
 
Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0
 
Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágil
 
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEAgenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
 
Agenda Versão Final - CMG 14a. conferencia nacional
Agenda Versão Final - CMG 14a. conferencia nacionalAgenda Versão Final - CMG 14a. conferencia nacional
Agenda Versão Final - CMG 14a. conferencia nacional
 
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEAgenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
 
Expremendo performance do sql server
Expremendo performance do sql serverExpremendo performance do sql server
Expremendo performance do sql server
 
Introducao
IntroducaoIntroducao
Introducao
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejista
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows Azure
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
Desenvolvimento ágil do jeito certo
Desenvolvimento ágil do jeito certoDesenvolvimento ágil do jeito certo
Desenvolvimento ágil do jeito certo
 
UAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos TestesUAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos Testes
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
SonarQube
SonarQubeSonarQube
SonarQube
 

Mais de Denis Ferrari

Arquitetura evolutiva - DNAD 2013
Arquitetura evolutiva - DNAD 2013Arquitetura evolutiva - DNAD 2013
Arquitetura evolutiva - DNAD 2013Denis Ferrari
 
Empreendedorismo - Ao vivo e sem retoques
Empreendedorismo - Ao vivo e sem retoquesEmpreendedorismo - Ao vivo e sem retoques
Empreendedorismo - Ao vivo e sem retoquesDenis Ferrari
 
DevInCachu 2013: Arquitetura evolutiva
DevInCachu 2013: Arquitetura evolutivaDevInCachu 2013: Arquitetura evolutiva
DevInCachu 2013: Arquitetura evolutivaDenis Ferrari
 
10 coisas que aprendi com o tempo
10 coisas que aprendi com o tempo10 coisas que aprendi com o tempo
10 coisas que aprendi com o tempoDenis Ferrari
 
UCL Innovation Party - Framework .NET
UCL Innovation Party - Framework .NETUCL Innovation Party - Framework .NET
UCL Innovation Party - Framework .NETDenis Ferrari
 
Desenvolvimento de software - Mercado e Carreira
Desenvolvimento de software - Mercado e CarreiraDesenvolvimento de software - Mercado e Carreira
Desenvolvimento de software - Mercado e CarreiraDenis Ferrari
 
Previsibilidade em desenvolvimento de software
Previsibilidade em desenvolvimento de softwarePrevisibilidade em desenvolvimento de software
Previsibilidade em desenvolvimento de softwareDenis Ferrari
 
Apresentação sobre Coding Dojo
Apresentação sobre Coding DojoApresentação sobre Coding Dojo
Apresentação sobre Coding DojoDenis Ferrari
 

Mais de Denis Ferrari (10)

Arquitetura evolutiva - DNAD 2013
Arquitetura evolutiva - DNAD 2013Arquitetura evolutiva - DNAD 2013
Arquitetura evolutiva - DNAD 2013
 
Empreendedorismo - Ao vivo e sem retoques
Empreendedorismo - Ao vivo e sem retoquesEmpreendedorismo - Ao vivo e sem retoques
Empreendedorismo - Ao vivo e sem retoques
 
DevInCachu 2013: Arquitetura evolutiva
DevInCachu 2013: Arquitetura evolutivaDevInCachu 2013: Arquitetura evolutiva
DevInCachu 2013: Arquitetura evolutiva
 
10 coisas que aprendi com o tempo
10 coisas que aprendi com o tempo10 coisas que aprendi com o tempo
10 coisas que aprendi com o tempo
 
UCL Innovation Party - Framework .NET
UCL Innovation Party - Framework .NETUCL Innovation Party - Framework .NET
UCL Innovation Party - Framework .NET
 
Desenvolvimento de software - Mercado e Carreira
Desenvolvimento de software - Mercado e CarreiraDesenvolvimento de software - Mercado e Carreira
Desenvolvimento de software - Mercado e Carreira
 
Previsibilidade em desenvolvimento de software
Previsibilidade em desenvolvimento de softwarePrevisibilidade em desenvolvimento de software
Previsibilidade em desenvolvimento de software
 
Apresentação sobre Coding Dojo
Apresentação sobre Coding DojoApresentação sobre Coding Dojo
Apresentação sobre Coding Dojo
 
AOP
AOPAOP
AOP
 
TDD (Resumo)
TDD (Resumo)TDD (Resumo)
TDD (Resumo)
 

Test-Driven Development (TDD) overview