O mercado tem exigido cada vez mais rapidez nas entregas dos times de desenvolvimento, para atender as demandas de negócio e manter a competitividade. Para garantir que essas entregas aconteçam no tempo esperado e com qualidade, é muito importante investir em todos os níveis de teste automatizados. Vamos ver quais são esses níveis de teste e alguns exemplos práticos usando Python de testes unitários, integração, funcionais, performance e mutação.
2. Sobre mim
Importância de Testes Automatizados
Quadrante de Testes
Pirâmide de Testes & Antipadrões
Tipos de Teste & Continuous Delivery
Demo
Referências
@samantacicilia
14. Testes automatizados?
- Feedback rápido;
- Menos passível de erro de execução;
- Executar testes automatizados no decorrer do pipeline ++ qualidade;
15. Testes automatizados?
- Feedback rápido;
- Menos passível de erro de execução;
- Executar testes automatizados no decorrer do pipeline ++ qualidade;
- Melhoria Contínua na Estratégia de Testes;
16. Testes automatizados?
- Feedback rápido;
- Menos passível de erro de execução;
- Executar testes automatizados no decorrer do pipeline ++ qualidade;
- Melhoria Contínua na Estratégia de Testes;
- Testes = especificação executável do comportamento do sistema;
17. Testes automatizados?
- Feedback rápido;
- Menos passível de erro de execução;
- Executar testes automatizados no decorrer do pipeline ++ qualidade;
- Melhoria Contínua na Estratégia de Testes;
- Testes = especificação executável do comportamento do sistema;
- Feedback, Feedback, Feedback;
32. Testes Unitários
@samantacicilia
- Feedback extremamente rápido;
- 10-minute build (eXtreme Programming);
- Testes de valores limite, diferentes combinações, excessões…
- Cobertura de Código;
33. Testes Unitários
@samantacicilia
- Feedback extremamente rápido;
- 10-minute build (eXtreme Programming);
- Testes de valores limite, diferentes combinações, excessões…
- Cobertura de Código;
- Segurança para fazer mudanças (eXtreme Programming);
34. Testes Unitários
@samantacicilia
- Feedback extremamente rápido;
- 10-minute build (eXtreme Programming);
- Testes de valores limite, diferentes combinações, excessões…
- Cobertura de Código;
- Segurança para fazer mudanças (eXtreme Programming);
- Qualidade também nos testes unitários!
35. Testes Unitários
@samantacicilia
- Feedback extremamente rápido;
- 10-minute build (eXtreme Programming);
- Testes de valores limite, diferentes combinações, excessões…
- Cobertura de Código;
- Segurança para fazer mudanças (eXtreme Programming);
- Qualidade também nos testes unitários!
- Test Driven Development;
36. Testes Unitários
@samantacicilia
- Feedback extremamente rápido;
- 10-minute build (eXtreme Programming);
- Testes de valores limite, diferentes combinações, excessões…
- Cobertura de Código;
- Segurança para fazer mudanças (eXtreme Programming);
- Qualidade também nos testes unitários!
- Test Driven Development;
- Design de Código que permita testes;
37. Testes Unitários
@samantacicilia
- Feedback extremamente rápido;
- 10-minute build (eXtreme Programming);
- Testes de valores limite, diferentes combinações, excessões…
- Cobertura de Código;
- Segurança para fazer mudanças (eXtreme Programming);
- Qualidade também nos testes unitários!
- Test Driven Development;
- Design de Código que permita testes;
- Mocks;
42. Testes de Mutação
@samantacicilia
- Testar seus Testes Unitários;
- Ferramenta introduz mutações no seu código e executa os testes unitários;
43. Testes de Mutação
@samantacicilia
- Testar seus Testes Unitários;
- Ferramenta introduz mutações no seu código e executa os testes unitários;
- Se os testes falharem = OK!
44. Testes de Mutação
@samantacicilia
- Testar seus Testes Unitários;
- Ferramenta introduz mutações no seu código e executa os testes unitários;
- Se os testes falharem = OK!
- Se os testes passarem = NOK!
51. Testes de Serviço
@samantacicilia
- Depois dos Testes de Unidade e antes dos Testes de UI;
- Testar seu app + módulos, componentes, banco de dados;
52. Testes de Serviço
@samantacicilia
- Depois dos Testes de Unidade e antes dos Testes de UI;
- Testar seu app + módulos, componentes, banco de dados;
- Sem interface;
53. Testes de Serviço
@samantacicilia
- Depois dos Testes de Unidade e antes dos Testes de UI;
- Testar seu app + módulos, componentes, banco de dados;
- Sem interface;
- Stubs;
77. Testes de Performance
@samantacicilia
- Comportamento da aplicação diante de uma carga conhecida;
- Baselines;
- Ter um ambiente para esses testes;
- Definir as métricas;
78. Testes de Performance
@samantacicilia
- Comportamento da aplicação diante de uma carga conhecida;
- Baselines;
- Ter um ambiente para esses testes;
- Definir as métricas;
- Análise automática???
84. Testes X Estágios
@samantacicilia
- Estágio de Commit:
- Testes Unitários
- Testes de Mutação
- Estágio de Aceite (primeiro ambiente):
- Testes de Serviço
85. Testes X Estágios
@samantacicilia
- Estágio de Commit:
- Testes Unitários
- Testes de Mutação
- Estágio de Aceite (primeiro ambiente):
- Testes de Serviço
- Estágio de Aceite (pré-produção):
- Testes de UI
- Testes de Regressão Visual
- Testes de Performance