SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Desenvolvimento Guiado por Testes Test-Driven Development (TDD) Guilherme Chapiewski http://gc.blog.br
O que é TDD?
Regras fundamentais do TDD: ,[object Object],[object Object],[object Object],[object Object]
Ciclo do desenvolvimento com TDD: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Motivação
Motivações para adoção de TDD: ,[object Object],[object Object],[object Object],[object Object],[object Object]
Conceitos
Tipos de testes: ,[object Object],[object Object],[object Object]
1. Testes Unitários: ,[object Object],[object Object],[object Object],[object Object]
2. Testes de Integração: ,[object Object],[object Object],[object Object],[object Object]
3. Testes de Aceitação: ,[object Object],[object Object],[object Object],[object Object]
Demonstração
1. Definção da interface:
2. Criação do teste:
3. Execução do teste: (deve falhar pois sequer há implementação)‏
4. Criação da classe de implementação: (somente o esqueleto da classe retornando sempre o mesmo resultado)‏
5. Execução do teste: (falhou porque a implementação desenvolvida sempre retorna FALSE)‏
6. Programação do método:
7. Execução do teste: (teste passou: 100% de certeza que o código funciona!!!)‏
8. Refactoring:
9. Execução do teste: (teste falhou por distração do programador: não verificou se cep é nulo!!!)‏
10. Corrigindo o refactor:
11. Execução do teste: (teste passou: temos 100% de certeza que o código CONTINUA funcionando e que nenhum componente que depende deste código quebrou após o refactor)‏
Consequências
Consequências: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Consequências: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Consequências: ,[object Object]
Consequências: ,[object Object]
Conclusões
Conclusões: ,[object Object],[object Object],[object Object],[object Object]
Conclusões: ,[object Object]
Conclusões: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Leitura complemetar: ,[object Object],[object Object],[object Object],[object Object],[object Object]
Obrigado! Guilherme Chapiewski http://gc.blog.br

Weitere ähnliche Inhalte

Was ist angesagt?

Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes Unitários
Vitor Silva
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Domingos Teruel
 
Selenium
SeleniumSelenium
Selenium
fatec
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
PHP Day Curitiba
 

Was ist angesagt? (20)

Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes Unitários
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Selenium
SeleniumSelenium
Selenium
 
TDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software ÁgilTDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software Ágil
 
Testes de Unidade, por que você deve começar a fazer? - Javaneiros
Testes de Unidade, por que você deve começar a fazer? - JavaneirosTestes de Unidade, por que você deve começar a fazer? - Javaneiros
Testes de Unidade, por que você deve começar a fazer? - Javaneiros
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipe
 
Teste de aplicações web com selenium
Teste de aplicações web com seleniumTeste de aplicações web com selenium
Teste de aplicações web com selenium
 
Como criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressComo criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com Cypress
 
Selenium
SeleniumSelenium
Selenium
 
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
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows Azure
 
Acelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidosAcelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidos
 
JUnit Sample
JUnit SampleJUnit Sample
JUnit Sample
 
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvemMinas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
 
QA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a SessõesQA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a Sessões
 
Testes unitários e Mocks
Testes unitários e MocksTestes unitários e Mocks
Testes unitários e Mocks
 
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
 
Selenium: visão geral
Selenium: visão geralSelenium: visão geral
Selenium: visão geral
 
Testes Automatizados No Cakephp
Testes Automatizados No CakephpTestes Automatizados No Cakephp
Testes Automatizados No Cakephp
 

Andere mochten auch

O assedio moral nas relações de trabalho
O assedio moral nas relações de trabalhoO assedio moral nas relações de trabalho
O assedio moral nas relações de trabalho
desandres
 
A convivência humana
A convivência humanaA convivência humana
A convivência humana
Isaquel Silva
 
As relações nos grupos e equipes de trabalho
As relações nos grupos e equipes de trabalhoAs relações nos grupos e equipes de trabalho
As relações nos grupos e equipes de trabalho
Nadia Santana
 
Grupos e Equipas de trabalho (RH)
Grupos e Equipas de trabalho (RH)Grupos e Equipas de trabalho (RH)
Grupos e Equipas de trabalho (RH)
Nicole Fernandes
 
Relações Interpessoais: Trabalho em Equipe
Relações Interpessoais: Trabalho em EquipeRelações Interpessoais: Trabalho em Equipe
Relações Interpessoais: Trabalho em Equipe
Rosangella Bermanelly
 
Relações interpessoais na organização e gestão de conflitos
Relações interpessoais na organização e gestão de conflitosRelações interpessoais na organização e gestão de conflitos
Relações interpessoais na organização e gestão de conflitos
Janaina Becker
 
Relações Interpessoais 4
Relações Interpessoais 4Relações Interpessoais 4
Relações Interpessoais 4
Jorge Barbosa
 

Andere mochten auch (20)

A arte dos relacionamentos1
A arte dos relacionamentos1A arte dos relacionamentos1
A arte dos relacionamentos1
 
Lição 5 - Relacionamento com Pessoas Difíceis - 4 Trimestre 2015 - CPAD
Lição 5 - Relacionamento com Pessoas Difíceis - 4 Trimestre 2015 - CPAD Lição 5 - Relacionamento com Pessoas Difíceis - 4 Trimestre 2015 - CPAD
Lição 5 - Relacionamento com Pessoas Difíceis - 4 Trimestre 2015 - CPAD
 
11/09/2014 - Palestra "Gestão Estratégica de Pessoas" (Sudoexpo 2014, Rio Verde)
11/09/2014 - Palestra "Gestão Estratégica de Pessoas" (Sudoexpo 2014, Rio Verde)11/09/2014 - Palestra "Gestão Estratégica de Pessoas" (Sudoexpo 2014, Rio Verde)
11/09/2014 - Palestra "Gestão Estratégica de Pessoas" (Sudoexpo 2014, Rio Verde)
 
Gestão para Pessoas e Equipes
Gestão para Pessoas e EquipesGestão para Pessoas e Equipes
Gestão para Pessoas e Equipes
 
Framework - Estrategia Empresarial
Framework - Estrategia EmpresarialFramework - Estrategia Empresarial
Framework - Estrategia Empresarial
 
Liderando Equipes Ágeis
Liderando Equipes ÁgeisLiderando Equipes Ágeis
Liderando Equipes Ágeis
 
Palestra gestão do relacionamento digital - fal - 19052010
Palestra  gestão do relacionamento digital - fal - 19052010Palestra  gestão do relacionamento digital - fal - 19052010
Palestra gestão do relacionamento digital - fal - 19052010
 
O assedio moral nas relações de trabalho
O assedio moral nas relações de trabalhoO assedio moral nas relações de trabalho
O assedio moral nas relações de trabalho
 
Treinamento FGV Comunicação, Gestão do Tempo, Relacionamento e Endomarketing
Treinamento FGV Comunicação, Gestão do Tempo, Relacionamento e EndomarketingTreinamento FGV Comunicação, Gestão do Tempo, Relacionamento e Endomarketing
Treinamento FGV Comunicação, Gestão do Tempo, Relacionamento e Endomarketing
 
Liderança servidora e os Desafios da Motivação em Grupo
Liderança servidora e os Desafios da Motivação em GrupoLiderança servidora e os Desafios da Motivação em Grupo
Liderança servidora e os Desafios da Motivação em Grupo
 
A convivência humana cap 2
A convivência humana cap 2A convivência humana cap 2
A convivência humana cap 2
 
A convivência humana
A convivência humanaA convivência humana
A convivência humana
 
As relações nos grupos e equipes de trabalho
As relações nos grupos e equipes de trabalhoAs relações nos grupos e equipes de trabalho
As relações nos grupos e equipes de trabalho
 
Grupos e Equipas de trabalho (RH)
Grupos e Equipas de trabalho (RH)Grupos e Equipas de trabalho (RH)
Grupos e Equipas de trabalho (RH)
 
Desafios e convivencia
Desafios e convivenciaDesafios e convivencia
Desafios e convivencia
 
Gestão De Equipas
Gestão De EquipasGestão De Equipas
Gestão De Equipas
 
1. DinâMica De Grupo
1. DinâMica De Grupo1. DinâMica De Grupo
1. DinâMica De Grupo
 
Relações Interpessoais: Trabalho em Equipe
Relações Interpessoais: Trabalho em EquipeRelações Interpessoais: Trabalho em Equipe
Relações Interpessoais: Trabalho em Equipe
 
Relações interpessoais na organização e gestão de conflitos
Relações interpessoais na organização e gestão de conflitosRelações interpessoais na organização e gestão de conflitos
Relações interpessoais na organização e gestão de conflitos
 
Relações Interpessoais 4
Relações Interpessoais 4Relações Interpessoais 4
Relações Interpessoais 4
 

Ähnlich wie Desenvolvimento Guiado Por Testes

Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 

Ähnlich wie Desenvolvimento Guiado Por Testes (20)

TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
TDD
TDDTDD
TDD
 
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
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
Final Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applicationsFinal Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applications
 
TDD na Prática
TDD na PráticaTDD na Prática
TDD na Prática
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
TDD
TDDTDD
TDD
 
Test-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netTest-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.net
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
 
Tdd x testes unidades
Tdd x testes unidadesTdd x testes unidades
Tdd x testes unidades
 
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
 
Teste automatizados e tdd
Teste automatizados e tddTeste automatizados e tdd
Teste automatizados e tdd
 
Desenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesDesenvolvimento Orientado a Testes
Desenvolvimento Orientado a Testes
 
Teste Driven Development
Teste Driven DevelopmentTeste Driven Development
Teste Driven Development
 

Kürzlich hochgeladen

Kürzlich hochgeladen (9)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Desenvolvimento Guiado Por Testes