Download - Palestra TDD - TDC - 2016
![Page 1: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/1.jpg)
TDDAutomatizando Testes com Java
TDC - POA - 2016
![Page 2: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/3.jpg)
O que é um teste?
![Page 4: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/4.jpg)
O que é um teste?
Um teste é tudo aquilo que assegura que alguma coisa
está funcionando.
![Page 5: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/8.jpg)
● 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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/9.jpg)
● 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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/10.jpg)
● 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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/11.jpg)
● 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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/12.jpg)
● 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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/13.jpg)
● 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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/15.jpg)
Testes Manuais
Fazer testes manuais É LENTO!!
Uma hora você vai esquecer ou errar algum passo!!
![Page 16: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/16.jpg)
Testes automatizados
![Page 17: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/17.jpg)
Testes automatizados
![Page 18: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/20.jpg)
Teste de Unidade
![Page 21: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/27.jpg)
Teste de Integração
![Page 28: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/32.jpg)
Teste de Aceitação
![Page 33: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/38.jpg)
Testes automatizados
![Page 39: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/39.jpg)
Qual tipo de teste usar?
Em regras gerais
(isso não é uma estatística, apenas referência)
![Page 40: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/40.jpg)
O que é TDD?
![Page 41: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/42.jpg)
O que é TDD?
Ciclo do TDD: Vermelho-Verde-Amarelo
![Page 43: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/43.jpg)
O que é TDD?
Ciclo do TDD: Vermelho-Verde-Amarelo
![Page 44: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/44.jpg)
O que é TDD?
Ciclo do TDD: Vermelho-Verde-Amarelo
![Page 45: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/45.jpg)
O que é TDD?
Ciclo do TDD: Vermelho-Verde-Amarelo
![Page 46: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/47.jpg)
@brunomaomeh
[email protected] https://github.com/brunomaomeh https://slideshare.net/brunomaomeh https://linkedin.com/in/brunomaomeh
![Page 48: Palestra TDD - TDC - 2016](https://reader035.vdocuments.pub/reader035/viewer/2022070518/58ec4f0c1a28abba7c8b4641/html5/thumbnails/48.jpg)
Obrigado e