top of page
Image by Jess Bailey

 

 

 

Processo de Qualidade 

 

 

 

O objetivo deste processo é garantir que o desenvolvimento de sistemas aconteça com previsibilidade, rastreabilidade e foco na qualidade, integrando as áreas de Desenvolvimento, QA e DevSecOps desde o início do ciclo.

🏗️ Ambientes e suas Finalidades

1️⃣ DEV (Desenvolvimento) - Objetivo: validar o comportamento inicial do código e garantir qualidade desde a origem.

  • Ambiente local utilizado pelos desenvolvedores para codificação e testes iniciais.

  • Aqui são realizados os testes unitários e de integração local, assegurando que o código novo não quebre funcionalidades existentes.

  • O foco é garantir que o código entregue em repositório já tenha qualidade mínima validada.

  • Antes do código ser promovido a HML, ocorre o peer review entre DEV e QA, em que o desenvolvedor apresenta a entrega ainda em localhost, permitindo que o QA visualize o comportamento, valide os cenários e proponha ajustes imediatos, se necessário.

2️⃣ HML (Homologação) - Objetivo: validar a funcionalidade completa e integração entre módulos em um ambiente controlado.

  • Ambiente controlado, espelhando as principais configurações de produção e com dados anonimizados.

  • É onde o QA executa os testes funcionais manuais WEB e API, validando requisitos e critérios de aceite.

  • O QA tem acesso ao Banco de Dados para consultas e inserts se necessário para massa de teste.

  • As publicações nesse ambeinte são controladas e com flags de mudança para controle das versões.

  • Integrada a pipeline estão validadores de código para vulnerabilidades no CI como SAST, SONARQUBE, Trivy, Dependabot, CodeQL, etc. 

SAST (Static Application Security Testing): Analisa o código-fonte, bytecode ou binários de uma aplicação sem executá-la. Ele encontra falhas de segurança como injeções de código, credenciais codificadas e outros erros comuns de programação.

SonarQube: Uma plataforma de código aberto e paga para análise de qualidade e segurança de código. Ela funciona como uma ferramenta SAST e pode ser integrada a pipelines de CI/CD para analisar o código a cada pull request, bloqueando o merge se o código não atender aos padrões de qualidade e segurança.

Trivy: Uma ferramenta "tudo em um" para escanear vulnerabilidades, frequentemente usada em ambientes cloud native. Ela analisa imagens de contêiner, sistemas de arquivos, repositórios Git e configurações de infraestrutura como código (IaC).

Dependabot: Uma ferramenta do GitHub que automatiza a verificação e atualização de dependências de código. Ela monitora repositórios em busca de vulnerabilidades conhecidas em bibliotecas de terceiros e cria automaticamente pull requests para que o desenvolvedor possa atualizá-las.

CodeQL: Desenvolvida pelo GitHub, é uma ferramenta de análise estática que trata o código como dados. Ela executa consultas personalizadas na base de código para encontrar falhas de segurança e outros problemas. 

Como funciona no pipeline de CI

Gatilho: O pipeline é ativado por um evento, como um push ou pull request para o repositório de código.

Validação: Os validadores são executados em diferentes fases do pipeline:

SAST (SonarQube, CodeQL): Analisa o código-fonte logo no início do processo de CI para encontrar vulnerabilidades antes da construção da aplicação.

Dependabot: Executa verificações nas dependências do projeto para encontrar vulnerabilidades conhecidas e sugere atualizações.

Trivy: Escaneia imagens de contêiner ou o sistema de arquivos em busca de problemas de segurança.

Feedback e Bloqueio: Os resultados das análises são mostrados na interface do pipeline. Se forem encontradas vulnerabilidades graves, a ferramenta pode falhar o build, impedindo a implantação de código não seguro.

Correção: Os desenvolvedores recebem feedback imediato e podem corrigir as vulnerabilidades antes que o código siga para as próximas etapas do processo. 

A integração dessas ferramentas promove a cultura de DevSecOps, garantindo que a segurança seja uma preocupação desde o início do ciclo de desenvolvimento, e não apenas no final. 

​​​

3️⃣ PRÉ-PRODUÇÃO (Pré-Prod)

  • Ambiente voltado para testes de automação, performance e simulação de erros de produção - HotFix.

  • É o momento de garantir estabilidade, integração entre sistemas e comportamento sob carga antes do deploy final.

  • Aqui, os testes automatizados de Web e API são executados, consolidando a confiança no sistema.

  • Garantir que o Código Novo que subiu neste ambiente é exatamente o mesmo que estava em HML e passou pelos Quality Gates.

4️⃣ PRD (Produção)

  • Ambiente real utilizado pelos usuários finais.

  • O foco é o monitoramento contínuo, detecção rápida de incidentes e feedback imediato para correção de falhas.

  • Erros identificados em PRD retornam ao ciclo via bug fix, passando novamente por QA e automação antes de nova liberação.

  • O Deploy para PRD é autprizado por um comitê baseado nos testes de HML e Pre Prod.

  • Há controle de verões através de um número de mudança

🔎 Papel do QA no Processo

O QA é parte essencial e ativa em todas as etapas do ciclo:

1️⃣ Documentação: participa da escrita e revisão técnica, mitigando dúvidas e prevenindo erros de entendimento.
2️⃣ Peer Review: avalia o comportamento da aplicação antes da subida para HML, garantindo que os testes e requisitos estão alinhados.
3️⃣ Execução de testes: conduz testes manuais, registra evidências, documenta e acompanha bugs.
4️⃣ Relatório de qualidade: consolida resultados e indicadores de cobertura, estabilidade e falhas.

⚙️ Etapas do Processo de QA

  1. Planejar os testes com base nos requisitos.

  2. Elaborar roteiros e cenários em Gherkin.

  3. Executar testes manuais dentro da sprint.

  4. Gerenciar bugs, evidências e regressões.

  5. Finalizar e entregar o relatório de qualidade.

  6. Automação.

🔺 Pirâmide de Testes: A Base da Estratégia de Qualidade

A Pirâmide de Testes é um modelo que orienta a quantidade e o tipo de testes em cada camada do sistema, garantindo equilíbrio entre velocidade, cobertura e custo.

Ela é composta por três níveis principais:

1️⃣ Base – Testes Unitários (DEV) e Pieer Review - Dev&QA

  • Executados pelos desenvolvedores, testam pequenas partes do código (funções, métodos, componentes).

  • São rápidos, baratos e devem ser a maioria dos testes do sistema.

  • Antes do código ser promovido a HML, ocorre o peer review entre DEV e QA, em que o desenvolvedor apresenta a entrega ainda em localhost, permitindo que o QA visualize o comportamento, valide os cenários e proponha ajustes imediatos, se necessário.

  • Garantem que a base de código é estável antes de subir para HML.

2️⃣ Meio – Testes de Manuais - WEB e API (HML)

  • Validam o comportamento do sistema do ponto de vista do usuário.

  • São mais lentos e custosos, por isso devem ser bem planejados e rodados sobre um sistema já estável.

  • Testes funcionais de API são priorizados aqui, pois oferecem velocidade e alta cobertura.

3️⃣ Topo – Testes Automatizados ( PRE - PROD)

  • Validam a comunicação entre componentes e serviços.

  • Testes automatizados WEB e de API

🤖 Automação de Testes e Pirâmide

  • O sistema considerado estável em HML passa a integrar o escopo de automação.

  • A automação cobre tanto Web quanto API.

  • Os testes automatizados de API são mais performáticos e executados a cada deploy, garantindo integridade contínua do sistema.

  • Assim, o ciclo de entrega se torna mais ágil, seguro e mensurável.

​​

🎯 Benefícios da Aplicação da Pirâmide no Processo

  • Diminuição de retrabalho e custos com testes manuais.

  • Aumento da cobertura de testes e detecção precoce de falhas.

  • Maior confiabilidade no produto entregue.

  • Padronização entre QA, DEV e DevSecOps.

  • Base sólida para automação contínua e qualidade sustentável.

​​​​​

​​

AAAAAAAAA CI CD.png
Gemini_Generated_Image_q9ymszq9ymszq9ym.png
Teste de Software - Em Foco.
bottom of page