Palestra tdd - rsjug

34
TDD Por um mundo com mais testes RSJUG

Transcript of Palestra tdd - rsjug

Page 1: Palestra tdd - rsjug

TDDPor um mundo com mais testes

RSJUG

Page 2: Palestra tdd - rsjug

Bruno Maomeh

Um grande aficionado pelo conhecimento, admirador do desenvolvimento de software e metodologias ágeis. Trabalhando por mais de 9 anos com o desenvolvimento, eu também sou entusiasta por comunidades de desenvolvimento de sistemas, atuando como coordenador da JavaSF International Group (JavaSF) e membro ativo da Comunidade Java do Ceará (JavaCE).

Page 3: Palestra tdd - rsjug

O que são testes?

Page 4: Palestra tdd - rsjug

O que são testes?

Teste é tudo aquilo que assegura que alguma coisa

está funcionado.

Page 5: Palestra tdd - rsjug

O que são testes?

"Afirma-se que o teste de software é um processo, ou uma série de processos, projetado para se certificar a respeito do código de computador, além de fazer o que foi designado a cumprir, e sem realizar nada que não seja intencional.” (Myers - 2004)

Page 6: Palestra tdd - rsjug

O que são testes automatizados?

Page 7: Palestra tdd - rsjug

O que são testes automatizados?

Qualquer instrução que teste automaticamente.

Page 8: Palestra tdd - rsjug

O que são testes automatizados?

Ferramentas para execução dos testes:

Page 9: Palestra tdd - rsjug

Tipos de testes

Teste de unidade

Teste de integração

Teste de aceitação

Teste de segurança

Teste de performance

Teste de configuraçãoTeste de regressão

Page 10: Palestra tdd - rsjug

Tipos de testes

Teste de unidade

Teste de integração

Teste de aceitação

Teste de segurança

Teste de performance

Teste de configuraçãoTeste de regressão

Page 11: Palestra tdd - rsjug

Teste de unidade

É um teste que executa a menor parcela de código de um software.

Na maioria das linguagens atuais, a menor parcela de código é um método.

Page 12: Palestra tdd - rsjug

Teste de unidade

Ajuda na rastreabilidade de bugs no sistema.

Page 13: Palestra tdd - rsjug

Teste de unidade

Previnem regressão do código

Page 14: Palestra tdd - rsjug

Teste de unidade

Incentivam a refatoração.

Page 15: Palestra tdd - rsjug

Teste de unidade

Servem como documentação.

Page 16: Palestra tdd - rsjug

Teste de integração

É aquele que integra duas ou mais partes do sistema ou com outros sistemas.

Integração com banco de dados ou um webservice.

Page 17: Palestra tdd - rsjug

Teste de integração

Garantir que as duas partes do sistema se comuniquem corretamente.

Page 18: Palestra tdd - rsjug

Teste de integração

São testes de "caixa preta", o que reduz a rastreabilidade de problemas com o código (com relação ao teste unitário).

Page 19: Palestra tdd - rsjug

Teste de aceitação

Garante que o sistema funcione como um todo.

Page 20: Palestra tdd - rsjug

Teste de aceitação

Simula o teste com o usuário final.

Page 21: Palestra tdd - rsjug

Qual tipo de teste usar?

Page 22: Palestra tdd - rsjug

Qual tipo de teste usar?

Em regras gerais

(isso não é uma estatística, apenas referência)

Page 23: Palestra tdd - rsjug

O que é TDD?

Page 24: Palestra tdd - rsjug

O que é TDD?

TDD é uma prática de desenvolvimento de software

onde todo o código do sistema é escrito depois de escrever

testes automatizados.

"We never have enough time for testing, so let's just write the test first." (Kent Beck)

Page 25: Palestra tdd - rsjug

O que é TDD?

Ciclo do TDD: Vermelho-Verde-Amarelo

Page 26: Palestra tdd - rsjug

O que é TDD?

Só se escreve algum código novo no sistema se houver algum código de teste quebrando.

Page 27: Palestra tdd - rsjug

O que é TDD?

Muito além de tecnicas de "test-first"Auxilia na detecção de falhas no design do sistema.Também deve ter informações sobre o código testado.

Se um teste está ficando muito complicado, é um grande indício que exista problema com o design.

É hora de refatorar!!

Page 28: Palestra tdd - rsjug
Page 29: Palestra tdd - rsjug
Page 30: Palestra tdd - rsjug
Page 31: Palestra tdd - rsjug
Page 32: Palestra tdd - rsjug
Page 33: Palestra tdd - rsjug

Referências

https://github.com/brunomaomeh http://www.slideshare.net/brunomaomeh https://www.linkedin.com/in/brunomaomeh

Page 34: Palestra tdd - rsjug

Obrigado e