SlideShare uma empresa Scribd logo
1 de 30
Lightning talk - TDD
Quem sou eu?

Willians de Paula Pereira
 Especialista em Engenharia de Software
  com Ênfase em Software Livre




 Professor do Instituto Federal de
  Educação, Ciência e Tecnologia de
  Rondônia
Quem sou eu?

  Willians de Paula Pereira
Membro do Grupo de
 Pesquisa em Automação e
 Robótica – GPMecatrônica

Corintiano
Mesatenista
Desenvolvedor
Aprendiz
Geek
Contextualizando
O que são testes?
O teste do software é a investigação do
 software a fim de fornecer informações
 sobre sua QUALIDADE em relação ao
 contexto em que ele deve operar. Isso
 inclui o processo de utilizar o produto para
 encontrar seus defeitos.
Tipos de testes

Caixa branca
Caixa preta
Caixa cinza
Regressão
Técnicas não funcionais
Fases

TESTE DE UNIDADE
Teste de integração
Teste de sistema
Teste de aceitação
Teste de operação
 Alpha
 Beta
 Release Cadidate
Problemas comuns no
desenvolvimento de software
Difícil manutenção
Problemas comuns no
desenvolvimento de software

Bugs geram mais bugs
Problemas comuns no
desenvolvimento de software
 Código macarrão

 Procedure var você,eu:string;
 begin você:=eu; if (eu<>você) or (você<>eu)
 then showmessage('Eu não sou você e você
 muito menos eu') else if (você=eu) then
 showmessage('você é você, eu sou eu'); with
 você do begin caption:='Eu'; size:='28 cm';
 Name:='Jeremias'; //Jeremias eu sou homem
 coisa que você não é, e não atiro pelas costas
 não showmessage('Come on
 Bitch!!Motherfucker and fuck u');
 end;
 end.
Problemas comuns no
desenvolvimento de software
Perda de tempo
Por que testar?
Saber que alguma coisa funciona




Tudo que você comprou na
 Bolívia funcionou
Como testamos hoje?
F5
Ctrl + Shift + B
Compilar NÃO significa
 testar
Significa que seu CÓDIGO
 ATENDE AOS
 REQUISITOS DO
 COMPILADOR e NÃO DO
 SEU SISTEMA
Por que não testar?
Demora
Por que não testar?
Sou o JEDI
Por que não testar?
Preciso escrever mais código
Por que não testar?
Estamos sem tempo
Are you sure?




Pergunte aos universitários
Por que não testar?
Deixar de testar não te faz mais
 rápido, apenas dá uma FALSA sensação
 de velocidade
Vantagens de Testes de Unidade
(Unity Tests)
 Reduz o tempo gasto em depuração e em correção de bugs.
 Serve de suporte para testes de regressão.
 Encoraja o refactoring.
 Serve como documentação.
 Reduz o GAP entre a introdução, identificação e correção de
  bugs.
    80% do tempo de um desenvolvedor é dedicado à
     identificação e correção de bugs.
    Mais de 50% dos bugs não são detectados até a fase de
     homologação.
    Aproximadamente 50% dos bugs são introduzidos na fase
     implementação.
    Cerca de 50% do orçamento total de um projeto de
     software é gasto em correção de bugs.
Vantagens de Testes de Unidade
(Unity Tests)
Rápido
Prático
Executa quase que instantaneamente
Auxiliam o design da funcionalidade
 Está difícil? Refatore
Ciclo do TDD
De forma prática
Desvantagens
DEMO
Considerações finais sobre TDD
 Design evolui com o conhecimento adquirido com projeto;
 Desenvolvimento com passos de bebê;
 Expressa a boa intenção do programador em relação aos
  testes;
 Servem de documentação.
 Sobre código o que podemos dizer:
    Nome dos teste definem o comportamento esperado;
    Sem duplicação;
    Alta cobertura;
    Anti-código inútil;
    Alta qualidade do código.
@williansdepaula
      /williansdepaula
williansdepaula@gmail.com

Mais conteúdo relacionado

Mais procurados

Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de Testes
Paulo César M Jeveaux
 
Automação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas WebAutomação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas Web
Rodrigo Veiga
 

Mais procurados (20)

[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
[MTC 2021] Tests smells: aquele cheirinho de que algo não está bom no seu cód...
 
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
 
TDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVATDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVA
 
A importância dos Testes no Devops
A importância dos Testes no DevopsA importância dos Testes no Devops
A importância dos Testes no Devops
 
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
 
aGITe antes de versionar
aGITe antes de versionaraGITe antes de versionar
aGITe antes de versionar
 
Tdd na veia
Tdd na veiaTdd na veia
Tdd na veia
 
Boas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareBoas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de software
 
Automação de Teste com Robotium - Tche Mobile 2014
Automação de Teste com Robotium - Tche Mobile 2014Automação de Teste com Robotium - Tche Mobile 2014
Automação de Teste com Robotium - Tche Mobile 2014
 
BDD - Behaviour Driven Development
BDD - Behaviour Driven DevelopmentBDD - Behaviour Driven Development
BDD - Behaviour Driven Development
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Como integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu timeComo integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu time
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de Testes
 
Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.
 
[MTC 2021] Vieses da qualidade - Daniele Vieira Fiorot
[MTC 2021] Vieses da qualidade -  Daniele Vieira Fiorot[MTC 2021] Vieses da qualidade -  Daniele Vieira Fiorot
[MTC 2021] Vieses da qualidade - Daniele Vieira Fiorot
 
Automação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas WebAutomação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas Web
 
Agile testing
Agile testingAgile testing
Agile testing
 

Semelhante a Lightning talk Test-Driven Development - TDD

XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
Rodrigo Branas
 

Semelhante a Lightning talk Test-Driven Development - TDD (20)

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 Automatizados
Testes AutomatizadosTestes Automatizados
Testes Automatizados
 
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
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informação
 
Teste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedorTeste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedor
 
Testes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicandoTestes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicando
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
 
Teste de software - Conhecendo e Aplicando
Teste de software - Conhecendo e AplicandoTeste de software - Conhecendo e Aplicando
Teste de software - Conhecendo e Aplicando
 
Dba Testes Gerentes B2
Dba Testes Gerentes B2Dba Testes Gerentes B2
Dba Testes Gerentes B2
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de software Teste de software
Teste de software
 
Teste Tradicional e Teste Ágil: de que lado você esta?
Teste Tradicional e Teste Ágil: de que lado você esta?Teste Tradicional e Teste Ágil: de que lado você esta?
Teste Tradicional e Teste Ágil: de que lado você esta?
 
Tente desenvolver diferente com TDD
Tente desenvolver diferente com TDDTente desenvolver diferente com TDD
Tente desenvolver diferente com 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
 
Meus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de SoftwareMeus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de Software
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016
 

Último

Último (8)

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 - 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
 
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 - 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
 
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
 
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
 
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
 
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
 

Lightning talk Test-Driven Development - TDD

  • 2. Quem sou eu? Willians de Paula Pereira Especialista em Engenharia de Software com Ênfase em Software Livre Professor do Instituto Federal de Educação, Ciência e Tecnologia de Rondônia
  • 3. Quem sou eu? Willians de Paula Pereira Membro do Grupo de Pesquisa em Automação e Robótica – GPMecatrônica Corintiano Mesatenista Desenvolvedor Aprendiz Geek
  • 5. O que são testes? O teste do software é a investigação do software a fim de fornecer informações sobre sua QUALIDADE em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.
  • 6. Tipos de testes Caixa branca Caixa preta Caixa cinza Regressão Técnicas não funcionais
  • 7. Fases TESTE DE UNIDADE Teste de integração Teste de sistema Teste de aceitação Teste de operação Alpha Beta Release Cadidate
  • 8. Problemas comuns no desenvolvimento de software Difícil manutenção
  • 9. Problemas comuns no desenvolvimento de software Bugs geram mais bugs
  • 10. Problemas comuns no desenvolvimento de software  Código macarrão Procedure var você,eu:string; begin você:=eu; if (eu<>você) or (você<>eu) then showmessage('Eu não sou você e você muito menos eu') else if (você=eu) then showmessage('você é você, eu sou eu'); with você do begin caption:='Eu'; size:='28 cm'; Name:='Jeremias'; //Jeremias eu sou homem coisa que você não é, e não atiro pelas costas não showmessage('Come on Bitch!!Motherfucker and fuck u'); end; end.
  • 11. Problemas comuns no desenvolvimento de software Perda de tempo
  • 12. Por que testar? Saber que alguma coisa funciona Tudo que você comprou na Bolívia funcionou
  • 14.
  • 15.
  • 16. Compilar NÃO significa testar Significa que seu CÓDIGO ATENDE AOS REQUISITOS DO COMPILADOR e NÃO DO SEU SISTEMA
  • 17. Por que não testar? Demora
  • 18. Por que não testar? Sou o JEDI
  • 19. Por que não testar? Preciso escrever mais código
  • 20. Por que não testar? Estamos sem tempo
  • 21. Are you sure? Pergunte aos universitários
  • 22. Por que não testar? Deixar de testar não te faz mais rápido, apenas dá uma FALSA sensação de velocidade
  • 23. Vantagens de Testes de Unidade (Unity Tests)  Reduz o tempo gasto em depuração e em correção de bugs.  Serve de suporte para testes de regressão.  Encoraja o refactoring.  Serve como documentação.  Reduz o GAP entre a introdução, identificação e correção de bugs.  80% do tempo de um desenvolvedor é dedicado à identificação e correção de bugs.  Mais de 50% dos bugs não são detectados até a fase de homologação.  Aproximadamente 50% dos bugs são introduzidos na fase implementação.  Cerca de 50% do orçamento total de um projeto de software é gasto em correção de bugs.
  • 24. Vantagens de Testes de Unidade (Unity Tests) Rápido Prático Executa quase que instantaneamente Auxiliam o design da funcionalidade Está difícil? Refatore
  • 28. DEMO
  • 29. Considerações finais sobre TDD  Design evolui com o conhecimento adquirido com projeto;  Desenvolvimento com passos de bebê;  Expressa a boa intenção do programador em relação aos testes;  Servem de documentação.  Sobre código o que podemos dizer:  Nome dos teste definem o comportamento esperado;  Sem duplicação;  Alta cobertura;  Anti-código inútil;  Alta qualidade do código.
  • 30. @williansdepaula /williansdepaula williansdepaula@gmail.com