O documento discute a distribuição de testes em diferentes camadas de software. É apresentada uma visão geral de camadas como componentes organizados para reduzir a complexidade do sistema, com exemplos de camadas como controller e service. Também são discutidos níveis de teste como unidade, integração e aceitação e como mapear testes a essas camadas para obter benefícios como velocidade e cobertura de testes.
2. CAMADAS
Grupos de componentes de
software, organizados de maneira a
reduzir a complexidade do sistema.
Exemplo:
Controller, Service, etc.
Níveis de isolamento dos
componentes do software e seus
objetivos para execução de testes.
Exemplo:
Unidade, Integração, Sistema e Aceite
níveis DE TESTE
vs
Júlio de Lima @juliodelimasinsta
4. OUTRAS CAMADAS EXISTENTES POR
DETRÁS DAS PALAVRAS FRONT E BACK
Front-end Back-end
UI
Componente UI
Backend
for
Frontend
Gateway
Controller, Service, Client, Repository
Database
API
Funções Comuns
Assíncronos
Júlio de Lima @juliodelimasinsta
5. Alguns ITENS QUE compõem APLICAÇÕES
/ juliodelimas
Diagramas de Sistema Regras de Negócio Designs de UI, API, etc
Estudos Analíticos Critérios de Aceitação
COMO, QUERO, PARA
DADO, QUANDO, ENTÃO
Se isso, faça aquilo
</>
User Story
Aplicação e suas
diversas Camadas
Júlio de Lima @juliodelimasinsta
6. O que testar aqui, GALERA?
Como cliente
Quero transferir grana para meus amigos,
rapidamente, de modo seguro e sem sair de
casa
Para poder aproveitar melhor meu tempo livre
Regras:
- Se o saldo permanecer negativo por mais que 24
horas, uma taxa acumulativa de R$ 5,00 deve ser
cobrada
- Os valores monetários seguem padrão Brasil
- Usuários devem ser alertados quanto as taxas
através de notificações assíncronas
Imagem criada por stories @ freepik.com
Júlio de Lima @juliodelimasinsta
7. O USO DE TÉCNICAS COM
BASE EM REGRAS
Entrada
Saída
Saldo
Resultado
Período
Recorrência
Positivo
Negativo
Sem taxa
Taxa de R$ 5,00
Taxa de R$ 5,00 * N
Até de 24 horas
Mais que 24 horas
Uma vez
Mais de uma vez
T1 T2 T3 T4 T5 T6 T7 T8
Partições
Variáveis
Tipo
Júlio de Lima @juliodelimasinsta
8. Clientes terem não terem sua taxa contabilizada por atraso no mecanismo
assíncrono de cobrança na virada das 24:00:00 a 24:00:01 horas
(T9) Execução dos testes de cobrança durante o período de virada do
mecanismo de cobrança.
Podemos pensar em TESTES
PARA MITIGAR riscos
Júlio de Lima @juliodelimasinsta
9. (T10) A renderização da tela de
movimentações precisa ser
menor que 100ms
(T13) O endpoint de cálculo deve
ser retrocompatível
(T11) A mudança de hora do
relógio do cliente não deverá
impactar o disparo do cálculo.
TAMBÉM PODEMOS PENSAR EM
NÃO FUNCIONAIS
(T12) Todos os elementos da UI
devem ser compatíveis com
critérios de aceitação da WCAG
Júlio de Lima @juliodelimasinsta
10. (T14) As cores de valores
positivos ou negativos, não
devem mudar, dada a riqueza de
compreensão ao usuário
(T15) Estrutura das respostas da
API precisam seguir um formato
descrito na documentação 2.0
do Swagger
Podemos testar a
estrutura da aplicação
Júlio de Lima @juliodelimasinsta
11. (T16) Usar a ALTERFACE para
identificar inconsistências
relacionadas a utilização de
componentes Web modernos
(T17) Usar a VADER para
identificar inconsistências quanto
a estrutura da API Rest
(T18) Usar a T-PAIN para
identificar inconsistências quanto
a UI implementada para devices
Mobile
OU BASEADOS NA EXPERIÊNCIA, AO
EXPLORAR O SISTEMA
Júlio de Lima @juliodelimasinsta
12. E QUANTO AS CAMADAS ONDE
PODERÍAMOS DISTRIBUIR ESSES
TESTES?
Júlio de Lima @juliodelimasinsta
13. O USO DE TÉCNICAS COM
BASE EM REGRAS
Entrada
Saída
Saldo
Resultado
Período
Recorrência
Positivo
Negativo
Sem taxa
Taxa de R$ 5,00
Taxa de R$ 5,00 * N
Até de 24 horas
Mais que 24 horas
Uma vez
Mais de uma vez
T1 T2 T3 T4 T5 T6 T7 T8
Partições
Variáveis
Tipo
UI Componente UI
Backend for Frontend Gateway Controller, Service, Client, Repository
Database API Funções Comuns
Assíncronos
Camadas:
Júlio de Lima @juliodelimasinsta
14. O USO DE TÉCNICAS COM
BASE EM REGRAS
Entrada
Saída
Saldo
Resultado
Período
Recorrência
Positivo
Negativo
Sem taxa
Taxa de R$ 5,00
Taxa de R$ 5,00 * N
Até de 24 horas
Mais que 24 horas
Uma vez
Mais de uma vez
T1 T2 T3 T4 T5 T6 T7 T8
Partições
Variáveis
Tipo
Controller, Service, Client, Repository
UI Componente UI
Backend for Frontend Gateway Controller, Service, Client, Repository
Database API Funções Comuns
Assíncronos
Camadas:
Júlio de Lima @juliodelimasinsta
15. Clientes terem não terem sua taxa contabilizada por atraso no mecanismo
assíncrono de cobrança na virada das 24:00:00 a 24:00:01 horas
(T9) Execução dos testes de cobrança durante o período de virada do
mecanismo de cobrança.
Podemos pensar em TESTES
PARA MITIGAR riscos
UI Componente UI
Backend for Frontend Gateway Controller, Service, Client, Repository
Database API Funções Comuns
Assíncronos
Camadas:
Júlio de Lima @juliodelimasinsta
16. Clientes terem não terem sua taxa contabilizada por atraso no mecanismo
assíncrono de cobrança na virada das 24:00:00 a 24:00:01 horas
(T9) Execução dos testes de cobrança durante o período de virada do
mecanismo de cobrança.
Assíncronos
Funções Comuns
Podemos pensar em TESTES
PARA MITIGAR riscos
UI Componente UI
Backend for Frontend Gateway Controller, Service, Client, Repository
Database API Funções Comuns
Assíncronos
Camadas:
Júlio de Lima @juliodelimasinsta
17. (T12) Todos os elementos da UI
devem ser compatíveis com
critérios de aceitação da WCAG
(T10) A renderização da tela de
movimentações precisa ser
menor que 100ms
(T13) O endpoint de cálculo deve
ser retrocompatível
(T11) A mudança de hora do
relógio do cliente não deverá
impactar o disparo do cálculo.
TAMBÉM PODEMOS PENSAR EM
NÃO FUNCIONAIS
UI Componente UI
Backend for Frontend Gateway Controller, Service, Client, Repository
Database API Funções Comuns
Assíncronos
Camadas:
Júlio de Lima @juliodelimasinsta
18. (T10) A renderização da tela de
movimentações precisa ser
menor que 100ms
(T13) O endpoint de cálculo deve
ser retrocompatível
(T11) A mudança de hora do
relógio do cliente não deverá
impactar o disparo do cálculo.
API
TAMBÉM PODEMOS PENSAR EM
NÃO FUNCIONAIS
UI Backend for Frontend
Componente UI
(T12) Todos os elementos da UI
devem ser compatíveis com
critérios de aceitação da WCAG
UI Componente UI
Backend for Frontend Gateway Controller, Service, Client, Repository
Database API Funções Comuns
Assíncronos
Camadas:
Júlio de Lima @juliodelimasinsta
19. (T14) As cores de valores
positivos ou negativos, não
devem mudar, dada a riqueza de
compreensão ao usuário
(T15) Estrutura das respostas da
API precisam seguir um formato
descrito na documentação 2.0
do Swagger
Podemos testar a
estrutura da aplicação
UI Componente UI
Backend for Frontend Gateway Controller, Service, Client, Repository
Database API Funções Comuns
Assíncronos
Camadas:
Júlio de Lima @juliodelimasinsta
20. (T14) As cores de valores
positivos ou negativos, não
devem mudar, dada a riqueza de
compreensão ao usuário
(T15) Estrutura das respostas da
API precisam seguir um formato
descrito na documentação 2.0
do Swagger
Componente UI
Podemos testar a
estrutura da aplicação
UI Componente UI
Backend for Frontend Gateway Controller, Service, Client, Repository
Database API Funções Comuns
Assíncronos
Camadas:
API
Controller, Service, Client, Repository
Júlio de Lima @juliodelimasinsta
21. (T16) Usar a ALTERFACE para
identificar inconsistências
relacionadas a utilização de
componentes Web modernos
(T17) Usar a VADER para
identificar inconsistências quanto
a estrutura da API Rest
(T18) Usar a T-PAIN para
identificar inconsistências quanto
a UI implementada para devices
Mobile
OU BASEADOS NA EXPERIÊNCIA, AO
EXPLORAR O SISTEMA
UI Componente UI
Backend for Frontend Gateway Controller, Service, Client, Repository
Database API Funções Comuns
Assíncronos
Camadas:
Júlio de Lima @juliodelimasinsta
22. (T16) Usar a ALTERFACE para
identificar inconsistências
relacionadas a utilização de
componentes Web modernos
(T17) Usar a VADER para
identificar inconsistências quanto
a estrutura da API Rest
(T18) Usar a T-PAIN para
identificar inconsistências quanto
a UI implementada para devices
Mobile
OU BASEADOS NA EXPERIÊNCIA, AO
EXPLORAR O SISTEMA
UI Componente UI
Backend for Frontend Gateway Controller, Service, Client, Repository
Database API Funções Comuns
Assíncronos
Camadas:
API
Database UI
Controller, Service, Client, Repository
Componente UI
UI
Júlio de Lima @juliodelimasinsta
23. E OS BENEFÍCIOS?
Velocidade na execução, redução do tempo
desprendido em testes, aumento da cobertura e
redução dos testes mais sensíveis.
Júlio de Lima @juliodelimasinsta
24. 1) Pense em seus testes
de maneira abrangente
ainda em refinamento
2) ALINHE SUAS
ESTRATÉGIA COM
DEVS DO TIME
3) ECONOMIZE TEMPO
TESTANDO O QUE
IMPORTA, ANTES
DICAS PARA FAZER EM CASA
Júlio de Lima @juliodelimasinsta
25. ONDE ESSA ABORDAGEM TENDE A FALHAR?
1) TIMES SEGREGADOS,
ONDE DEV'S E QA’s
atuam em times
diferentes
2) times onde a
responsabilidade
em testes é apenas
direcionada a qa’S
3) TIMES ONDE QA’S
NÃO TEM PARTICIPAÇÃO
EM REUNIÕES DE
REFINAMENTO
Júlio de Lima @juliodelimasinsta