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 developing
Renato Oliveira
 

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

Contra La Violencia Machista
Contra La Violencia MachistaContra La Violencia Machista
Contra La Violencia Machista
marburmr
 
P. EducacióN Virtual
P. EducacióN VirtualP. EducacióN Virtual
P. EducacióN Virtual
nancy anais
 
Aves De Casa
Aves De CasaAves De Casa
Aves De Casa
xiepa
 
Agr1beja 2ºciclo solidariedade_ daniel mateus
Agr1beja 2ºciclo solidariedade_ daniel mateusAgr1beja 2ºciclo solidariedade_ daniel mateus
Agr1beja 2ºciclo solidariedade_ daniel mateus
luiscontente
 
Atalayas Aztecas
Atalayas AztecasAtalayas Aztecas
Atalayas Aztecas
lorenasfete
 
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
lopezlopezchelo
 

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 Desenvolvimento orientado a Testes

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
abacrazy
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
Rodrigo Branas
 
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
Alini Rebonatto
 
Desenvolvimento ágil do jeito certo
Desenvolvimento ágil do jeito certoDesenvolvimento ágil do jeito certo
Desenvolvimento ágil do jeito certo
Marcos Petry
 

Semelhante a Desenvolvimento orientado a Testes (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 2013
Denis 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)
 

Desenvolvimento orientado a Testes