17
METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

Embed Size (px)

Citation preview

Page 1: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

METODOLOGIAS ÁGEISTESTES UNITÁRIOS

Page 2: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS
Page 3: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

http://agilemanifesto.org/iso/ptbr/

Page 4: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

Porque devemos testar?

Page 5: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

• Como desenvolvedores devemos buscar sempre a qualidade máxima do que escrevemos.

• Em um código testado, deixamos aos próximos desenvolvedores que forem trabalhar nesse fonte como herança a segurança.

• Testes unitários servem como documentação, no que tange a impactos.

• Reduzimos o retrabalho, erros uma vez descobertos são catalogados e não voltam a acontecer.

• Um sistema de testes automatizados logicamente executa mais testes em menos tempo do que um “tester”.

• Testes unitários nos ajudam manter a visão e o foco no que foi projetado.

Além disso....

Page 6: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

Alguns Bugs Históricos• 1987 – Segunda feira negra – Por um erro no sistema todas as

bolsas mundiais foram afetadas, e num único dia o índice Dow Jones perdeu 22,6% e o S&P 20%. Ainda hoje esta é a maior perda diária em Wall Street num único dia.

• 1991 – Misseis Patriots – Um erro de arredondamento em uma versão do software de gestão, resultou em uma base americana totalmente destruída além de 28 militares mortos.

• 1996 – Ariane 5 voo 501 - Durante o lançamento a tentativa de encaixar um número de 64 bits dentro de um “espaço” de 16-bits fez com quem o computador principal e de backups crashassem (utilizavam o mesmo software). Resultado, o foguete autodestruiu-se, mandando para o lixo um investimento de 8 milhões de dólares e mais 500 milhões em satélites.

• 2003 – Apagão na américa do norte – 55 milhões de pessoas ficaram sem luz por que uma estação de geração ficou off-line.

Page 7: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

• Os estados unidos estimam que bugs de software lhe custem aproximadamente 60 bilhões de dólares por ano...

Page 8: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

Porque não testamos?

Page 9: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

• Testar sai caro e por algum motivo os gestores preferem pagar todo mês uma pessoa para fazer o trabalho de um sistema de testes automatizados.

• Dificuldades ao iniciar os testes, escrever uma funcionalidade que seja testada unitariamente demanda uma fase de analise e desenvolvimento maior.

• Problema na organização de cronograma dos projetos. Geralmente quando um cronograma está apertado, a primeira coisa que é cortada é a fase de testes unitários.

• Resistência a mudança de cultura, pessoas tem enorme dificuldade quando o assunto é sair da zona de conforto. Reciclar-se é algo inerente a nossa atividade, e infelizmente alguns profissionais não fazem isso.

Page 10: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

Ciclo do TDD• 1 – Escreva um teste: Deve ser escrito um teste que

falhe, a partir do “Setup” de um cenário devidamente projetado. Neste momento os testes falharão.

• 2 – Implementando o código: Nesse momento a implementação/alteração deverá ser feita e os testes devem estar funcionando.

• 3 – Refatorando o código: Aqui efetuamos a refatoração do código, o objetivo nesta etapa é eliminar redundâncias de fonte e melhorar a sua qualidade como um todo. Aqui os testes devem funcionar.

Page 11: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS
Page 12: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

Escrevendo Testes

Entre várias técnicas e frameworks para escrever testes, hoje será mostrado:

•Dunit (Framework para testes unitários em Delphi);•Objetos Mock (Objetos Duble);

Page 13: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

DUnit

DUnit é um framework de testes Xtreme para programas Borland Delphi. Ele foi originalmente inspirado no JUnit quadro escrito em Java por Kent Beck e Erich Gamma, mas evoluiu para uma ferramenta que usa muito mais do potencial do Delphi para ser muito mais útil para desenvolvedores.

Page 14: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

Objetos Mock (Objeto Duble)

As vezes para criar testes unitários é necessário simular o comportamento de objetos complexos através dos mocks, são muito úteis quando os objetos reais são difíceis de criar ou impossíveis de serem incorporados no teste de unidade. Neste caso, em vez de usar o objeto real, usa-se um mock object que simula o seu comportamento.

Page 15: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

E finalmente..... Vamos Praticar...

Page 16: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

Indicações • Código Limpo (Robert C. Martin);• Test Driven Development Teste e Design no Mundo Real

(Mauricio Aniche);• Desenvolvimento de Software - Orientado a Objetos

Guiados Por Teste (Steve Freeman e Nat Pryce);• Programador Pragmático (Andrew Hunt e David Thomas);

Page 17: METODOLOGIAS ÁGEIS TESTES UNITÁRIOS

“...você não tem nada a perder, a não ser os seus bugs”Steve Freeman

http://agilemanifesto.org/iso/ptbr/