Lightning talk Test-Driven Development - TDD

30
Lightning talk - TDD

description

Lightning talk de Test-Driven Development - TDD realizado na Escola Regional de Informática RO/AC - ERIN3

Transcript of Lightning talk Test-Driven Development - TDD

Page 1: Lightning talk Test-Driven Development - TDD

Lightning talk - TDD

Page 2: Lightning talk Test-Driven Development - TDD

Willians de Paula PereiraEspecialista 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?

Page 3: Lightning talk Test-Driven Development - TDD

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

CorintianoMesatenistaDesenvolvedorAprendizGeek

Willians de Paula Pereira

Quem sou eu?

Page 4: Lightning talk Test-Driven Development - TDD

Contextualizando

Page 5: Lightning talk Test-Driven Development - TDD

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.

Page 6: Lightning talk Test-Driven Development - TDD

Tipos de testes

Caixa brancaCaixa pretaCaixa cinzaRegressãoTécnicas não funcionais

Page 7: Lightning talk Test-Driven Development - TDD

Fases

TESTE DE UNIDADETeste de integraçãoTeste de sistemaTeste de aceitaçãoTeste de operaçãoAlphaBetaRelease Cadidate

Page 8: Lightning talk Test-Driven Development - TDD

Problemas comuns no desenvolvimento de software

Difícil manutenção

Page 9: Lightning talk Test-Driven Development - TDD

Bugs geram mais bugs

Problemas comuns no desenvolvimento de software

Page 10: Lightning talk Test-Driven Development - TDD

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

Page 11: Lightning talk Test-Driven Development - TDD

Problemas comuns no desenvolvimento de software

Perda de tempo

Page 12: Lightning talk Test-Driven Development - TDD

Por que testar?

Saber que alguma coisa funciona

Tudo que você comprou na Bolívia funcionou

Page 13: Lightning talk Test-Driven Development - TDD

F5Ctrl + Shift + B

Como testamos hoje?

Page 14: Lightning talk Test-Driven Development - TDD
Page 15: Lightning talk Test-Driven Development - TDD
Page 16: Lightning talk Test-Driven Development - TDD

Compilar NÃO significa testarSignifica que seu CÓDIGO ATENDE AOS REQUISITOS DO COMPILADOR e NÃO DO SEU SISTEMA

Page 17: Lightning talk Test-Driven Development - TDD

Por que não testar?

Demora

Page 18: Lightning talk Test-Driven Development - TDD

Por que não testar?

Sou o JEDI

Page 19: Lightning talk Test-Driven Development - TDD

Por que não testar?

Preciso escrever mais código

Page 20: Lightning talk Test-Driven Development - TDD

Por que não testar?

Estamos sem tempo

Page 21: Lightning talk Test-Driven Development - TDD

Are you sure?

Pergunte aos universitários

Page 22: Lightning talk Test-Driven Development - TDD

Deixar de testar não te faz mais rápido, apenas dá uma FALSA sensação de velocidade

Por que não testar?

Page 23: Lightning talk Test-Driven Development - TDD

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.

Page 24: Lightning talk Test-Driven Development - TDD

RápidoPráticoExecuta quase que instantaneamenteAuxiliam o design da funcionalidadeEstá difícil? Refatore

Vantagens de Testes de Unidade (Unity Tests)

Page 25: Lightning talk Test-Driven Development - TDD

Ciclo do TDD

Page 26: Lightning talk Test-Driven Development - TDD

De forma prática

Page 27: Lightning talk Test-Driven Development - TDD

Desvantagens

Page 28: Lightning talk Test-Driven Development - TDD

DEMO

Page 29: Lightning talk Test-Driven Development - TDD

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.

Page 30: Lightning talk Test-Driven Development - TDD

/williansdepaula

@williansdepaula

[email protected]