Lightning talk Test-Driven Development - TDD

Post on 06-May-2015

810 views 1 download

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

Lightning talk - 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?

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

CorintianoMesatenistaDesenvolvedorAprendizGeek

Willians de Paula Pereira

Quem sou eu?

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 brancaCaixa pretaCaixa cinzaRegressãoTécnicas não funcionais

Fases

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

Problemas comuns no desenvolvimento de software

Difícil manutenção

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

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

F5Ctrl + Shift + B

Como testamos hoje?

Compilar NÃO significa testarSignifica 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

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

Por que não testar?

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.

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

Vantagens de Testes de Unidade (Unity Tests)

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