palestra tdd - rsjug
TRANSCRIPT
![Page 1: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/1.jpg)
TDDPor um mundo com mais testes
RSJUG
![Page 2: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/3.jpg)
O que são testes?
![Page 4: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/4.jpg)
O que são testes?
Teste é tudo aquilo que assegura que alguma coisa
está funcionado.
![Page 5: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/6.jpg)
O que são testes automatizados?
![Page 7: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/7.jpg)
O que são testes automatizados?
Qualquer instrução que teste automaticamente.
![Page 8: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/8.jpg)
O que são testes automatizados?
Ferramentas para execução dos testes:
![Page 9: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/9.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 10: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/10.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 11: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/12.jpg)
Teste de unidade
Ajuda na rastreabilidade de bugs no sistema.
![Page 13: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/13.jpg)
Teste de unidade
Previnem regressão do código
![Page 14: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/14.jpg)
Teste de unidade
Incentivam a refatoração.
![Page 15: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/15.jpg)
Teste de unidade
Servem como documentação.
![Page 16: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/17.jpg)
Teste de integração
Garantir que as duas partes do sistema se comuniquem corretamente.
![Page 18: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/19.jpg)
Teste de aceitação
Garante que o sistema funcione como um todo.
![Page 20: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/20.jpg)
Teste de aceitação
Simula o teste com o usuário final.
![Page 21: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/21.jpg)
Qual tipo de teste usar?
![Page 22: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/22.jpg)
Qual tipo de teste usar?
Em regras gerais
(isso não é uma estatística, apenas referência)
![Page 23: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/23.jpg)
O que é TDD?
![Page 24: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/24.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 25: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/25.jpg)
O que é TDD?
Ciclo do TDD: Vermelho-Verde-Amarelo
![Page 26: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/28.jpg)
![Page 29: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/29.jpg)
![Page 30: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/30.jpg)
![Page 31: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/31.jpg)
![Page 32: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/32.jpg)
![Page 33: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/33.jpg)
Referências
https://github.com/brunomaomeh http://www.slideshare.net/brunomaomeh https://www.linkedin.com/in/brunomaomeh
![Page 34: Palestra tdd - rsjug](https://reader034.vdocuments.pub/reader034/viewer/2022042908/58ec4f0c1a28abba7c8b463f/html5/thumbnails/34.jpg)
Obrigado e