SlideShare a Scribd company logo
1 of 26
Download to read offline
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

More Related Content

What's hot

Test Automation - Principles and Practices
Test Automation - Principles and PracticesTest Automation - Principles and Practices
Test Automation - Principles and PracticesAnand Bagmar
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Softwaremarthahuback
 
Software Test Metrics and Measurements
Software Test Metrics and MeasurementsSoftware Test Metrics and Measurements
Software Test Metrics and MeasurementsDavis Thomas
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes ExploratóriosAlan Carlos
 
Automation testing introduction for FujiNet
Automation testing introduction for FujiNetAutomation testing introduction for FujiNet
Automation testing introduction for FujiNetHai Tran Son
 
Testes automatizados com Cypress
Testes automatizados com CypressTestes automatizados com Cypress
Testes automatizados com CypressCOTIC-PROEG (UFPA)
 
Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot frameworkPrayoch Rujira
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de softwareQualister
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework IntroductionPekka Klärck
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test AutomationPekka Klärck
 
Como criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressComo criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressWalmyr Lima e Silva Filho
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation TestingArchana Krushnan
 
ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6Yogindernath Gupta
 
Arquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaArquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaElias Nogueira
 

What's hot (20)

Test Automation - Principles and Practices
Test Automation - Principles and PracticesTest Automation - Principles and Practices
Test Automation - Principles and Practices
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Software
 
Software Test Metrics and Measurements
Software Test Metrics and MeasurementsSoftware Test Metrics and Measurements
Software Test Metrics and Measurements
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
 
Automation testing introduction for FujiNet
Automation testing introduction for FujiNetAutomation testing introduction for FujiNet
Automation testing introduction for FujiNet
 
Testes automatizados com Cypress
Testes automatizados com CypressTestes automatizados com Cypress
Testes automatizados com Cypress
 
Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot framework
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Software testing
Software testingSoftware testing
Software testing
 
Introduction to Software Test Automation
Introduction to Software Test AutomationIntroduction to Software Test Automation
Introduction to Software Test Automation
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de software
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introduction
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test Automation
 
Como criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressComo criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com Cypress
 
Carreira de QA
Carreira de QA Carreira de QA
Carreira de QA
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6
 
Arquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaArquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto Java
 
Teste de software
Teste de softwareTeste de software
Teste de software
 

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

Robot Framework projetos multifuncionalidades - all-in-one.
Robot Framework projetos multifuncionalidades - all-in-one.Robot Framework projetos multifuncionalidades - all-in-one.
Robot Framework projetos multifuncionalidades - all-in-one.Rosa Sampaio
 
Prodemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitosProdemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitosGustavo Lopes
 
Uma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicaçõesUma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicaçõesMarkus Christen
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSFabrício Campos
 
CakeSP - Specta Platform: CakePHP, Flex, Fake
CakeSP - Specta Platform: CakePHP, Flex, FakeCakeSP - Specta Platform: CakePHP, Flex, Fake
CakeSP - Specta Platform: CakePHP, Flex, FakeSpecta TI
 
requisitos de software.pptx
requisitos de software.pptxrequisitos de software.pptx
requisitos de software.pptxAlanCunha14
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
 
Arquitetura funcional em microservices, 4 anos depois
Arquitetura funcional em microservices, 4 anos depoisArquitetura funcional em microservices, 4 anos depois
Arquitetura funcional em microservices, 4 anos depoisLucas Cavalcanti dos Santos
 
Plano de Projeto - OUTLAY
Plano de Projeto - OUTLAYPlano de Projeto - OUTLAY
Plano de Projeto - OUTLAYJocelino Neto
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devopsDiego Pacheco
 
Tipos de automação de teste
Tipos de automação de testeTipos de automação de teste
Tipos de automação de testeMarcos Pessoa
 
Monitoração de Aplicações Distribuídas
Monitoração de Aplicações DistribuídasMonitoração de Aplicações Distribuídas
Monitoração de Aplicações DistribuídasMarkus Christen
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 
Análise de Pontos de Função
Análise de Pontos de FunçãoAnálise de Pontos de Função
Análise de Pontos de FunçãoCristhiano Garcia
 
Automação industrial em grafcet
Automação industrial em grafcetAutomação industrial em grafcet
Automação industrial em grafcetRicardo Akerman
 

Similar to [ATC2021] Distribuição de Testes em Diferentes Camadas (20)

Robot Framework projetos multifuncionalidades - all-in-one.
Robot Framework projetos multifuncionalidades - all-in-one.Robot Framework projetos multifuncionalidades - all-in-one.
Robot Framework projetos multifuncionalidades - all-in-one.
 
Apresentacao ponto acesso_v0.5
Apresentacao ponto acesso_v0.5Apresentacao ponto acesso_v0.5
Apresentacao ponto acesso_v0.5
 
Prodemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitosProdemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitos
 
Uma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicaçõesUma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicações
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATS
 
Testes ágeis
Testes ágeisTestes ágeis
Testes ágeis
 
Protheus V12
Protheus V12Protheus V12
Protheus V12
 
CakeSP - Specta Platform: CakePHP, Flex, Fake
CakeSP - Specta Platform: CakePHP, Flex, FakeCakeSP - Specta Platform: CakePHP, Flex, Fake
CakeSP - Specta Platform: CakePHP, Flex, Fake
 
requisitos de software.pptx
requisitos de software.pptxrequisitos de software.pptx
requisitos de software.pptx
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
 
Arquitetura funcional em microservices, 4 anos depois
Arquitetura funcional em microservices, 4 anos depoisArquitetura funcional em microservices, 4 anos depois
Arquitetura funcional em microservices, 4 anos depois
 
Plano de Projeto - OUTLAY
Plano de Projeto - OUTLAYPlano de Projeto - OUTLAY
Plano de Projeto - OUTLAY
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
Tipos de automação de teste
Tipos de automação de testeTipos de automação de teste
Tipos de automação de teste
 
Monitoração de Aplicações Distribuídas
Monitoração de Aplicações DistribuídasMonitoração de Aplicações Distribuídas
Monitoração de Aplicações Distribuídas
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
DevQA: UI Testing , como fazer?
DevQA: UI Testing , como fazer?DevQA: UI Testing , como fazer?
DevQA: UI Testing , como fazer?
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
Análise de Pontos de Função
Análise de Pontos de FunçãoAnálise de Pontos de Função
Análise de Pontos de Função
 
Automação industrial em grafcet
Automação industrial em grafcetAutomação industrial em grafcet
Automação industrial em grafcet
 

More from Júlio de Lima

[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testesJúlio de Lima
 
Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)Júlio de Lima
 
[TDC2019] Inteligência Artificial e Testes in a Nutshell
[TDC2019] Inteligência Artificial e Testes  in a Nutshell[TDC2019] Inteligência Artificial e Testes  in a Nutshell
[TDC2019] Inteligência Artificial e Testes in a NutshellJúlio de Lima
 
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de SoftwareJúlio de Lima
 
Mindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosMindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosJúlio de Lima
 
[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvemJúlio de Lima
 
[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de API[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de APIJúlio de Lima
 
[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAs[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAsJúlio de Lima
 
Mindset do QA em diferentes contextos
Mindset do QA em diferentes contextosMindset do QA em diferentes contextos
Mindset do QA em diferentes contextosJúlio de Lima
 
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen FrameworkJúlio de Lima
 
[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com Prophecy[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com ProphecyJúlio de Lima
 
[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?Júlio de Lima
 
[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com CodeceptionJúlio de Lima
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)Júlio de Lima
 
[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com CodeceptionJúlio de Lima
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e WebdriverJúlio de Lima
 
[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeter[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeterJúlio de Lima
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwareJúlio de Lima
 
[TICNOVA2015] Palestra sobre Automação de Testes
[TICNOVA2015] Palestra sobre Automação de Testes[TICNOVA2015] Palestra sobre Automação de Testes
[TICNOVA2015] Palestra sobre Automação de TestesJúlio de Lima
 
TDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-AssuredTDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-AssuredJúlio de Lima
 

More from Júlio de Lima (20)

[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes
 
Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)
 
[TDC2019] Inteligência Artificial e Testes in a Nutshell
[TDC2019] Inteligência Artificial e Testes  in a Nutshell[TDC2019] Inteligência Artificial e Testes  in a Nutshell
[TDC2019] Inteligência Artificial e Testes in a Nutshell
 
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
 
Mindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosMindset de QA em Diferentes Contextos
Mindset de QA em Diferentes Contextos
 
[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem
 
[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de API[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de API
 
[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAs[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAs
 
Mindset do QA em diferentes contextos
Mindset do QA em diferentes contextosMindset do QA em diferentes contextos
Mindset do QA em diferentes contextos
 
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
 
[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com Prophecy[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com Prophecy
 
[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?
 
[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
 
[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
 
[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeter[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeter
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de Software
 
[TICNOVA2015] Palestra sobre Automação de Testes
[TICNOVA2015] Palestra sobre Automação de Testes[TICNOVA2015] Palestra sobre Automação de Testes
[TICNOVA2015] Palestra sobre Automação de Testes
 
TDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-AssuredTDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-Assured
 

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

  • 1. Distribuição de testes em diferentes camadas Júlio de Lima @juliodelimasinsta
  • 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
  • 3. UMA VISÃO LIMITADA SOBRE CAMADAS Júlio de Lima @juliodelimasinsta Front-end Back-end
  • 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
  • 26. Hey! Júlio de Lima @juliodelimasinsta
 
 Slides em:
 t.me/juliodelimas Dúvidas? Júlio de Lima @juliodelimasinsta