Distribuição de testes em
diferentes camadas
Júlio de Lima @juliodelimasinsta
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
UMA VISÃO LIMITADA
SOBRE CAMADAS
Júlio de Lima @juliodelimasinsta
Front-end Back-end
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
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
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
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
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
(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
(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
(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
E QUANTO AS CAMADAS ONDE
PODERÍAMOS DISTRIBUIR ESSES
TESTES?
Júlio de Lima @juliodelimasinsta
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
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
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
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
(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
(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
(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
(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
(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
(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
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
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
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
Hey!
Júlio de Lima
@juliodelimasinsta



Slides em:

t.me/juliodelimas
Dúvidas?
Júlio de Lima @juliodelimasinsta

[ATC2021] Distribuição de Testes em Diferentes Camadas

  • 1.
    Distribuição de testesem diferentes camadas Júlio de Lima @juliodelimasinsta
  • 2.
    CAMADAS Grupos de componentesde 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
  • 3.
    UMA VISÃO LIMITADA SOBRECAMADAS Júlio de Lima @juliodelimasinsta Front-end Back-end
  • 4.
    OUTRAS CAMADAS EXISTENTESPOR 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 QUEcompõ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 testaraqui, 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 DETÉ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ãoterem 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çãoda 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 coresde 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 aALTERFACE 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 ASCAMADAS ONDE PODERÍAMOS DISTRIBUIR ESSES TESTES? Júlio de Lima @juliodelimasinsta
  • 13.
    O USO DETÉ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 DETÉ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ãoterem 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ãoterem 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 oselementos 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çãoda 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 coresde 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 coresde 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 aALTERFACE 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 aALTERFACE 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? Velocidadena 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 emseus 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 ABORDAGEMTENDE 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
  • 26.
    Hey! Júlio de Lima @juliodelimasinsta
 
 Slidesem:
 t.me/juliodelimas Dúvidas? Júlio de Lima @juliodelimasinsta