48
TDD Automatizando Testes com Java TDC - POA - 2016

Palestra TDD - TDC - 2016

Embed Size (px)

Citation preview

Page 1: Palestra TDD - TDC - 2016

TDDAutomatizando Testes com Java

TDC - POA - 2016

Page 2: Palestra TDD - TDC - 2016

Bruno MaomehUm grande aficionado pelo conhecimento, admirador do desenvolvimento de software e metodologias ágeis. Trabalhando por mais de 9 anos com desenvolvimento, eu também sou entusiasta por comunidades de desenvolvimento de sistemas, atuando como coordenador do Grupo de Usuários Java do Rio Grande do Sul (RSJug) e do JavaSF International Group (JavaSF).

Page 3: Palestra TDD - TDC - 2016

O que é um teste?

Page 4: Palestra TDD - TDC - 2016

O que é um teste?

Um teste é tudo aquilo que assegura que alguma coisa

está funcionando.

Page 5: Palestra TDD - TDC - 2016

O que é um teste?

"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, de fazer o que foi designado a cumprir, e sem realizar nada que não seja intencional.” (Myers - 2004)

Page 6: Palestra TDD - TDC - 2016

Testes Manuais● Faz alteração no código;

● Levanta o Tomcat;

● Abre o Chrome;

● Faz login na aplicação;

● Entra na página do formulário;

● Preenche um formulário;

● Envia o formulário;

● Verifica se a correção funcionou.

Page 7: Palestra TDD - TDC - 2016

Testes Manuais● Faz alteração no código;

● Levanta o Tomcat;

● Abre o Chrome;

● Faz login na aplicação;

● Entra na página do formulário;

● Preenche um formulário;

● Envia o formulário;

● Verifica se a correção funcionou.

Page 8: Palestra TDD - TDC - 2016

● Faz alteração no código;

● Levanta o Tomcat;

● Abre o Chrome;

● Faz login na aplicação;

● Entra na página do formulário;

● Preenche um formulário;

● Envia o formulário;

● Verifica se a correção funcionou.

Testes Manuais

Page 9: Palestra TDD - TDC - 2016

● Faz alteração no código;

● Levanta o Tomcat;

● Abre o Chrome;

● Faz login na aplicação;

● Entra na página do formulário;

● Preenche um formulário;

● Envia o formulário;

● Verifica se a correção funcionou.

Testes Manuais

Page 10: Palestra TDD - TDC - 2016

● Faz alteração no código;

● Levanta o Tomcat;

● Abre o Chrome;

● Faz login na aplicação;

● Entra na página do formulário;

● Preenche um formulário;

● Envia o formulário;

● Verifica se a correção funcionou.

Testes Manuais

Page 11: Palestra TDD - TDC - 2016

● Faz alteração no código;

● Levanta o Tomcat;

● Abre o Chrome;

● Faz login na aplicação;

● Entra na página do formulário;

● Preenche um formulário;

● Envia o formulário;

● Verifica se a correção funcionou.

Testes Manuais

Page 12: Palestra TDD - TDC - 2016

● Faz alteração no código;

● Levanta o Tomcat;

● Abre o Chrome;

● Faz login na aplicação;

● Entra na página do formulário;

● Preenche um formulário;

● Envia o formulário;

● Verifica se a correção funcionou.

Testes Manuais

Page 13: Palestra TDD - TDC - 2016

● Faz alteração no código;

● Levanta o Tomcat;

● Abre o Chrome;

● Faz login na aplicação;

● Entra na página do formulário;

● Preenche um formulário;

● Envia o formulário;

● Verifica se a correção funcionou.

Testes Manuais

Page 14: Palestra TDD - TDC - 2016

Testes Manuais● Faz alteração no código;

● Levanta o Tomcat;

● Abre o Chrome;

● Faz login na aplicação;

● Entra na página do formulário;

● Preenche um formulário;

● Envia o formulário;

● Verifica se a correção funcionou;

● Faz alteração no código.

Page 15: Palestra TDD - TDC - 2016

Testes Manuais

Fazer testes manuais É LENTO!!

Uma hora você vai esquecer ou errar algum passo!!

Page 16: Palestra TDD - TDC - 2016

Testes automatizados

Page 17: Palestra TDD - TDC - 2016

Testes automatizados

Page 18: Palestra TDD - TDC - 2016

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 19: Palestra TDD - TDC - 2016

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 20: Palestra TDD - TDC - 2016

Teste de Unidade

Page 21: Palestra TDD - TDC - 2016

Teste de unidade● Ajuda na rastreabilidade de

bugs no sistema;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação do código;

● Auxilia na criação do design do sistema.

Page 22: Palestra TDD - TDC - 2016

Teste de unidade● Ajuda na rastreabilidade de bugs

no sistema;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação do código;

● Auxilia na criação do design do sistema.

Page 23: Palestra TDD - TDC - 2016

Teste de unidade● Ajuda na rastreabilidade de bugs

no sistema;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação do código;

● Auxilia na criação do design do sistema.

Page 24: Palestra TDD - TDC - 2016

Teste de unidade● Ajuda na rastreabilidade de bugs

no sistema;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação do código;

● Auxilia na criação do design do sistema.

Page 25: Palestra TDD - TDC - 2016

Teste de unidade● Ajuda na rastreabilidade de bugs

no sistema;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação do código;

● Auxilia na criação do design do sistema.

Page 26: Palestra TDD - TDC - 2016

NÃO é Teste de Unidade

Se ele conversa com o banco de dados;

Se ele se comunica através da rede;

Se ele toca o sistema de arquivos;

Se ele não pode ser executado ao mesmo tempo de outros testes de unidade;

Se for necessário configurar ou preparar o ambiente para executá-los.

Page 27: Palestra TDD - TDC - 2016

Teste de Integração

Page 28: Palestra TDD - TDC - 2016

Teste de integração● Garante a comunicação

com outros módulos ou sistema;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação de código e de api.

Page 29: Palestra TDD - TDC - 2016

Teste de integração● Garante a comunicação

com outros módulos ou sistema;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação de código e de api.

Page 30: Palestra TDD - TDC - 2016

Teste de integração● Garante a comunicação

com outros módulos ou sistema;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação de código e de api;

Page 31: Palestra TDD - TDC - 2016

Teste de integração● Garante a comunicação

com outros módulos ou sistema;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação de código e de api.

Page 32: Palestra TDD - TDC - 2016

Teste de Aceitação

Page 33: Palestra TDD - TDC - 2016

Teste de aceitação● Garante a funcionalidade

do sistema como um todo;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação de código e de api;

● Simula o teste com o usuário final.

Page 34: Palestra TDD - TDC - 2016

Teste de aceitação● Garante a funcionalidade do

sistema como um todo;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação de código e de api;

● Simula o teste com o usuário final.

Page 35: Palestra TDD - TDC - 2016

Teste de aceitação● Garante a funcionalidade do

sistema como um todo;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação de código e de api;

● Simula o teste com o usuário final.

Page 36: Palestra TDD - TDC - 2016

Teste de aceitação● Garante a funcionalidade do

sistema como um todo;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação de código e de api;

● Simula o teste com o usuário final.

Page 37: Palestra TDD - TDC - 2016

Teste de aceitação● Garante a funcionalidade do

sistema como um todo;

● Previnem regressão do código;

● Incentivam a refatoração do código;

● Servem como documentação de código e de api;

● Simula o teste com o usuário final.

Page 38: Palestra TDD - TDC - 2016

Testes automatizados

Page 39: Palestra TDD - TDC - 2016

Qual tipo de teste usar?

Em regras gerais

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

Page 40: Palestra TDD - TDC - 2016

O que é TDD?

Page 41: Palestra TDD - TDC - 2016

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 42: Palestra TDD - TDC - 2016

O que é TDD?

Ciclo do TDD: Vermelho-Verde-Amarelo

Page 43: Palestra TDD - TDC - 2016

O que é TDD?

Ciclo do TDD: Vermelho-Verde-Amarelo

Page 44: Palestra TDD - TDC - 2016

O que é TDD?

Ciclo do TDD: Vermelho-Verde-Amarelo

Page 45: Palestra TDD - TDC - 2016

O que é TDD?

Ciclo do TDD: Vermelho-Verde-Amarelo

Page 46: Palestra TDD - TDC - 2016

O que é TDD?

Muito além de técnicas 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 47: Palestra TDD - TDC - 2016

@brunomaomeh

[email protected] https://github.com/brunomaomeh https://slideshare.net/brunomaomeh https://linkedin.com/in/brunomaomeh

Page 48: Palestra TDD - TDC - 2016

Obrigado e