Continuous Testing: como essa técnica está transformando a execução de testes de Banking
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:
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.
Veja também
AnálisesO que é Big Data e para que serve? Saiba tudo!02 de maio de 2023 AnálisesO dado é o novo petróleo! Mas você vai usar petróleo no seu carro???? E qual a relação disso com preparação de dados? Entenda!27 de novembro de 2020 AnálisesMétricas de sucesso de produto: descubra o que são, qual a importância e quais técnicas podem ser usadas02 de julho de 2020
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.