Logo Zoop Blog
Ver Todos
Índice
    Ícone de E-mail
    Assine nossa newsletter

    Não perca nenhuma novidade.

    análises

    Continuous Testing: como essa técnica está transformando a execução de testes de Banking

    23 de setembro de 2020
    Por Redação Zoop
    Compartilhe
    Imagem

    Está sem tempo de ler agora? Que tal ouvir o artigo? Experimente no player abaixo!

    Escrito por Vinicius Trindade. Analista de Testes na Zoop

    Você já ouviu falar no termo Continuous Testing e sabe como implementá-lo? Não conhece? Pois fica tranquilo que nós vamos te explicar o que está por trás desse conceito.

    Para iniciar, uma breve introdução….

    A automação de testes, é, com certeza, o maior desejo dos Analistas de Qualidade de Software da atualidade.

    Nesse sentido, foram desenvolvidas diversas ferramentas e frameworks, dos mais simples até os mais complexos, com o mesmo objetivo em comum: tornar a execução dos testes contínuos mais ágeis.

    Mas será que somente automatizar esse processo será o suficiente para tornar  a fase de execução de testes de software mais  rápida e eficaz?

    Vem comigo que vou lhe contar como a equipe QA/Banking da Zoop está trabalhando com uma técnica chamada Continuous Testing e como estamos conseguindo melhorar a nossa execução de testes e, consequentemente, a garantia contínua dos produtos de Banking.

    Mas antes, uma observação!

    Vale ressaltar que estou considerando  que se você está interessado em conhecer um pouco sobre Continuous Testing especificamente e que já utiliza alguma ferramenta ou framework de testes automatizados no qual seu projeto melhor se adapta, certo?

    A ideia aqui é mostrar o conceito para que você possa conhecer um pouco mais sobre Continuous Testing e com isso aplicá-lo, mas usando a solução da sua escolha. Beleza? Então, vamos lá!

    O que é Continuous Testing?

    Continuous Testing, ou Teste Contínuo, é o processo de execução de testes automatizados como parte de um pipeline de entrega de software. 

    O objetivo é detectar previamente falhas causadas por mudanças na aplicação em ambientes não produtivos, que podem afetar pontos sensíveis do negócio e fornecer feedbacks rápidos para que ações corretivas sejam realizadas.

     Implementar o Continuous Testing não se resume a, simplesmente, agrupar todos os seus testes automatizados e inseri-los dentro de uma etapa do pipeline de CI/CD do seu projeto.

     É preciso, sim, que exista uma preocupação com a automação e/ou com a arquitetura escolhida para executar os testes em si, mas também com o valor agregado que a técnica proporcionará ao produto.

     É fundamental também considerar a maneira como o feedback será realizado com o time de desenvolvedores, para que as correções sejam implementadas de forma rápida e assertiva.

    Além disso, deve verificar a geração de KPIs (sim, KPIs) para medir a quantidade de bugs, recorrência e outros pontos importantes que devem ser mensurados  para que melhorias no processo de desenvolvimento possam ser realizadas.

    Quais os grupos de testes do Continuous Testing?

    Para conseguirmos atender melhor o Continuous Testing, decidimos criar três grandes grupos de execução de testes, cada um executado em momentos diferentes do pipeline. 

    Agora, vamos entender melhor cada grupo de teste e quais os seus reais objetivos. São eles:

    • Smoke Tests;
    • Regression Tests;
    • Performance Tests.

    Vamos lá!

    Smoke Tests

    Consiste na execução, dentro do pipeline, de um conjunto reduzido de cenários de testes das funcionalidades e fluxos mais importantes da aplicação.

    Ou seja, aqueles que possuem um potencial risco para o negócio e para o cliente caso apresentem falhas, de forma a garantir o pleno funcionamento constante a cada atualização do software.

    A ideia aqui é conseguir executar logo após a atualização da aplicação uma bateria de testes que seja capaz de encontrar falhas nos cenários mais críticos para a aplicação e, caso encontre, algum bug, impede que o software seja promovido para outros ambientes.

    Regression Tests

    Consiste em reexecutar, de forma agendada, ou seja, fora do pipeline da aplicação, todos os cenários de testes criados para uma determinada aplicação, de forma a garantir continuamente o correto funcionamento de todas as funcionalidades e fluxos.

    Sua execução está ligada ao sucesso da execução do Smoke Test.

    Já passamos pela execução dos cenários mais críticos da nossa aplicação, agora precisamos garantir a qualidade dos demais cenários que ficaram de fora do Smoke Test.

    Como a execução está fora do pipeline da aplicação, logicamente, ele não irá interferir na promoção do código para os demais ambientes, mas qualquer bug encontrado também deverá ser notificado e corrigido.

    Caso o Smoke Test seja executado com sucesso, o Regression Test deverá ser iniciado. Caso o Smoke Test falhe, a build também falhará e o Regression Test não será executado.

    Performance Tests

    Esse grupo de testes do Continuous Testing consiste em reexecutar testes de performance (carga, estresse, resistência, subida rápida, dentre outros tipos) executados anteriormente, de forma agendada (ou seja, fora do pipeline da aplicação).

    Garantimos os cenários funcionais com a execução dos Smoke Tests e Regression Tests. Mas se a alteração que foi aplicada for responsável pela degradação da performance da aplicação?

    Executar os testes de performance de forma contínua garantirá que os resultados obtidos durantes os primeiros testes de performance não serão degradados e que os critérios de aceite não funcionais não sejam infringidos.

    Na imagem abaixo, podemos ver, de forma resumida, como seria o fluxo dos testes contínuos:

    Como pode ser visto na imagem, o sucesso do Smoke Test será determinante para que o deploy no ambiente de teste seja realizado e, posteriormente, para que os testes automatizados (ou manuais) sejam executados.

    Em paralelo a isso os Regression Tests e Performance Tests também serão executados.

    Vale ressaltar também que optamos por executar todos os três grupos de testes em um ambiente próprio, apartado do de teste, para que dessa forma o pipeline fique mais coeso.

    Como implementar o Continuous Testing?

    O Continuous Testing requer uma transformação de processos, pessoas e não somente de tecnologia.

    Somente assim a implementação causará, de fato, o impacto positivo necessário para o negócio no qual ele está envolvido.

    A correta implementação não exige um esforço único do QA da sua equipe, mas de todos do time para que essa iniciativa seja realmente possível.

    Mas você deve estar se perguntando agora:

    Por que preciso olhar para os meus processos e para as pessoas da minha equipe? Não é só organizar os testes e acoplá-los no pipeline de deploy das aplicações?

    A resposta é: não!

    Se você pretende implementar o Continuous Testing na sua equipe ou empresa, precisa ficar atento para alguns questionamentos, tais como:

    •  Se o Smoke Test encontrar uma falha, quem fará  a primeira avaliação, o QA ou o DEV? Todos os bugs encontrados pelo Smoke Test são críticos para o negócio e precisam de atenção dos desenvolvedores. Isso é possível na sua equipe?
    • Se um teste de regressão encontrar uma falha, como os QAs e DEVs serão notificados  e o que fazer após a notificação?
    • Se um teste de performance encontrar uma falha, como os QAs, DEVs, DBAS, DEVOPS e outros envolvidos serão notificados? O que fazer após a notificação?
    • Se um falso positivo ocorrer, como proceder?
    • Como será feita a notificação em tempo real das falhas?
    • Como retirar métricas (KPIs) das execuções dos testes em tempo real?

     

    Como você pôde ver, existem muitos questionamentos que, quando respondidos e conectados, devem configurar um processo que suportará a criação, monitoramento e melhoria dos seus testes contínuos.

    Testes automatizados X Testes contínuos

     Muitos têm dúvidas sobre a diferença entre os testes automatizados e os testes contínuos. Em um breve resumo, podemos dizer que:

    •  os testes automatizados funcionais têm como finalidade principal agilizar as verificações que serão feitas dentro de uma sprint ou dentro de um estágio de um cronograma de projetos para uma determinada funcionalidade ou aplicação;
    •  os testes contínuos usam os automatizados, com foco na prevenção dos bugs, principalmente nas funcionalidades ou aplicações que apresentam risco para o negócio e para o cliente.

    Em outras palavras, enquanto os testes automatizados funcionais (ou até mesmo manuais) testarão as novas implementações, o Continuous Testing está  encarregado de garantir tudo que já foi validado por QA e já implementado em produção.

    Lembrem-se que vivemos em um mundo que constantemente busca agilidade e, consequentemente, a redução de esforços com execução testes de suas aplicações — que com o passar do tempo crescem vertiginosamente em números de funcionalidade e cenários de testes.

    Adotar os testes contínuos nos seus processos de verificações pode se tornar uma excelente técnica para alcançar altos níveis de cobertura e de qualidade no software.

    Em níveis “negociais”, dependendo da maturidade do seu processo, pode se tornar um ganho na árdua corrida de lançamento de novos produtos.

    Quais as melhores ferramentas para testes contínuos?

    Como você pôde analisar durante todo o artigo, não mencionei nenhuma ferramenta específica para criar o Continuous Testing.

    Afinal, o Continuous Testing pode ser feito em qualquer ferramenta de testes funcionais e não funcionais, como também em em qualquer ferramenta de CI/CD.

    O mais importante aqui é a estrutura correta dos seus testes, ter um processo bem definido para que a técnica possa ser aderida e o alinhamento certeiro com o seu time.

    Bom, espero que tenha gostado e, principalmente, ajudado você a entender um pouco mais sobre Continuous Testing.

    Desejo que este artigo possa contribuir para você implementar essa excelente técnica também no seu time. Um grande abraço! Até a próxima!

    Para mais artigos que nem esse, continue acompanhando as novidades do blog da Zoop!

    A Zoop é uma fintech líder em tecnologia para serviços financeiros. Converse agora mesmo com um dos nossos especialistas e conheça as melhores soluções para gerenciamento financeiro de pagamentos.

    Na imagem abaixo, podemos ver, de forma resumida, como seria o fluxo dos testes contínuos:

     

    Fluxo Continuous Testing

     

     

    Como pode ser visto na imagem, o sucesso do Smoke Test será determinante para que o deploy no ambiente de teste seja realizado e, posteriormente, para que os testes automatizados (ou manuais) sejam executados.

    Em paralelo a isso os Regression Tests e Performance Tests também serão executados.

    Vale ressaltar também que optamos por executar todos os três grupos de testes em um ambiente próprio, apartado do de teste, para que dessa forma o pipeline fique mais coeso.

    Como implementar o Continuous Testing?

    O Continuous Testing requer uma transformação de processos, pessoas e não somente de tecnologia.

    Somente assim a implementação causará, de fato, o impacto positivo necessário para o negócio no qual ele está envolvido.

    A correta implementação não exige um esforço único do QA da sua equipe, mas de todos do time para que essa iniciativa seja realmente possível.

    Mas você deve estar se perguntando agora:

    Por que preciso olhar para os meus processos e para as pessoas da minha equipe? Não é só organizar os testes e acoplá-los no pipeline de deploy das aplicações?

    A resposta é: não!

    Se você pretende implementar o Continuous Testing na sua equipe ou empresa, precisa ficar atento para alguns questionamentos, tais como:

    •  Se o Smoke Test encontrar uma falha, quem fará  a primeira avaliação, o QA ou o DEV? Todos os bugs encontrados pelo Smoke Test são críticos para o negócio e precisam de atenção dos desenvolvedores. Isso é possível na sua equipe?
    • Se um teste de regressão encontrar uma falha, como os QAs e DEVs serão notificados  e o que fazer após a notificação?
    • Se um teste de performance encontrar uma falha, como os QAs, DEVs, DBAS, DEVOPS e outros envolvidos serão notificados? O que fazer após a notificação?
    • Se um falso positivo ocorrer, como proceder?
    • Como será feita a notificação em tempo real das falhas?
    • Como retirar métricas (KPIs) das execuções dos testes em tempo real?

     

    Como você pôde ver, existem muitos questionamentos que, quando respondidos e conectados, devem configurar um processo que suportará a criação, monitoramento e melhoria dos seus testes contínuos.

    Testes automatizados X Testes contínuos

     Muitos têm dúvidas sobre a diferença entre os testes automatizados e os testes contínuos. Em um breve resumo, podemos dizer que:

    •  os testes automatizados funcionais têm como finalidade principal agilizar as verificações que serão feitas dentro de uma sprint ou dentro de um estágio de um cronograma de projetos para uma determinada funcionalidade ou aplicação;
    •  os testes contínuos usam os automatizados, com foco na prevenção dos bugs, principalmente nas funcionalidades ou aplicações que apresentam risco para o negócio e para o cliente.

    Em outras palavras, enquanto os testes automatizados funcionais (ou até mesmo manuais) testarão as novas implementações, o Continuous Testing está  encarregado de garantir tudo que já foi validado por QA e já implementado em produção.

    Lembrem-se que vivemos em um mundo que constantemente busca agilidade e, consequentemente, a redução de esforços com execução testes de suas aplicações — que com o passar do tempo crescem vertiginosamente em números de funcionalidade e cenários de testes.

    Adotar os testes contínuos nos seus processos de verificações pode se tornar uma excelente técnica para alcançar altos níveis de cobertura e de qualidade no software.

    Em níveis “negociais”, dependendo da maturidade do seu processo, pode se tornar um ganho na árdua corrida de lançamento de novos produtos.

    Quais as melhores ferramentas para testes contínuos?

    Como você pôde analisar durante todo o artigo, não mencionei nenhuma ferramenta específica para criar o Continuous Testing.

    Afinal, o Continuous Testing pode ser feito em qualquer ferramenta de testes funcionais e não funcionais, como também em em qualquer ferramenta de CI/CD.

     

    Preencha o formulário para que nossos especialistas avaliem sua solicitação.
    (*) Campos Obrigatórios
    1/3
    Continuar
    2/3
    Voltar
    Continuar
    *Você pode alterar suas permissões de comunicação a qualquer momento.
    3/3
    Voltar
    Suas informações estão seguras
    Ícone de E-mail

    Assine nossa newsletter

    Receba os melhores insights diretamente na sua caixa de entrada para construir jornadas de pagamento e experiências bancárias que impulsionam o seu negócio.