

Teste de Software


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
-
Planejar os testes com base nos requisitos.
-
Elaborar roteiros e cenários em Gherkin.
-
Executar testes manuais dentro da sprint.
-
Gerenciar bugs, evidências e regressões.
-
Finalizar e entregar o relatório de qualidade.
-
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.

