lightning talk test-driven development - tdd
DESCRIPTION
Lightning talk de Test-Driven Development - TDD realizado na Escola Regional de Informática RO/AC - ERIN3TRANSCRIPT
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.