9 min leitura • Guide 728 of 877
Integração de QA com GitScrum
Qualidade não é uma fase - está incorporada em cada etapa. GitScrum ajuda equipes a integrar QA em todo o ciclo de vida do desenvolvimento com workflows de teste, rastreamento de bugs e métricas de qualidade que capturam issues cedo.
QA no Ágil
Testes Shift-Left
ABORDAGEM DE TESTES SHIFT-LEFT:
┌─────────────────────────────────────────────────────────────┐
│ │
│ TRADICIONAL (Pesado à direita): │
│ │
│ [Requisitos]→[Design]→[Desenvolvimento]→[Testes]→[Release]│
│ ▲ │
│ │ │
│ Todos testes │
│ acontecem aqui │
│ (bugs caros) │
│ │
│ SHIFT-LEFT (Contínuo): │
│ │
│ [Requisitos]→[Design]→[Desenvolvimento]→[Testes]→[Release]│
│ ▲ ▲ ▲ ▲ │
│ │ │ │ │ │
│ Revisar Revisar Testando Validação │
│ & testar designs durante final │
│ critérios cedo dev │
│ │
│ BENEFÍCIOS: │
│ • Bugs encontrados antes = mais barato corrigir │
│ • Qualidade construída, não testada depois │
│ • Ciclos de release mais rápidos │
│ • Menos retrabalho │
│ │
│ CUSTO DO BUG POR FASE: │
│ Requisitos: $1 │
│ Design: $5 │
│ Desenvolvimento: $10 │
│ Testes: $20 │
│ Produção: $100+ │
└─────────────────────────────────────────────────────────────┘
Papel do QA no Sprint
QA DURANTE TODO O SPRINT:
┌─────────────────────────────────────────────────────────────┐
│ │
│ PLANEJAMENTO DO SPRINT: │
│ • QA revisa stories próximas │
│ • Clarifica critérios de aceite │
│ • Identifica complexidade de teste │
│ • Estima esforço de teste │
│ • Sinaliza riscos potenciais │
│ │
│ INÍCIO DO SPRINT: │
│ • Escreve casos de teste para itens do sprint │
│ • Revisa designs para testabilidade │
│ • Configura dados/ambientes de teste │
│ • Planejamento de automação │
│ │
│ MEIO DO SPRINT: │
│ • Testa features conforme completam │
│ • Reporta bugs imediatamente │
│ • Verifica correções de bugs │
│ • Testes exploratórios │
│ • Atualiza casos de teste conforme necessário │
│ │
│ FINAL DO SPRINT: │
│ • Testes de regressão │
│ • Testes de integração │
│ • Verificações pontuais de performance │
│ • Sign-off em itens completos │
│ │
│ FIM DO SPRINT: │
│ • Validação de release │
│ • Participação na demo │
│ • Input de retro sobre qualidade │
│ │
│ CHAVE: Sem "fase de testes" - testes são contínuos │
└─────────────────────────────────────────────────────────────┘
Integração de Workflow
Ciclo de Vida da Story
QA NO WORKFLOW DA STORY:
┌─────────────────────────────────────────────────────────────┐
│ │
│ BACKLOG → DEV → CODE REVIEW → QA → DONE │
│ │
│ BACKLOG: │
│ ☐ Critérios de aceite definidos │
│ ☐ QA revisou e concordou │
│ ☐ Abordagem de teste identificada │
│ │
│ EM DESENVOLVIMENTO: │
│ ☐ Desenvolvedor executa testes unitários │
│ ☐ Happy path básico verificado │
│ ☐ PR inclui cobertura de teste │
│ │
│ CODE REVIEW: │
│ ☐ Testes revisados junto com código │
│ ☐ Requisitos de cobertura atendidos │
│ ☐ Todas verificações passando │
│ │
│ TESTES DE QA: │
│ ☐ Critérios de aceite verificados │
│ ☐ Edge cases testados │
│ ☐ Regressão verificada │
│ ☐ Cross-browser se aplicável │
│ ☐ Aprovação do QA dada │
│ │
│ DONE: │
│ ☐ Todos critérios atendidos │
│ ☐ Sem bugs abertos │
│ ☐ Documentação atualizada │
│ ☐ Pronto para release │
│ │
│ CAMINHO BLOQUEADO: │
│ Se QA encontra issues → Volta para Desenvolvimento │
│ Deve ser corrigido antes de Done │
└─────────────────────────────────────────────────────────────┘
Workflow de Bugs
WORKFLOW DE RASTREAMENTO DE BUGS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ BUG ENCONTRADO → TRIAGEM → DEV → VERIFICAR → FECHADO │
│ │
│ FORMATO DO RELATÓRIO DE BUG: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ TÍTULO: [Área] Descrição clara do problema ││
│ │ ││
│ │ SEVERIDADE: Crítico/Alto/Médio/Baixo ││
│ │ AMBIENTE: Produção/Staging/Dev ││
│ │ BROWSER/DEVICE: Chrome 120, macOS ││
│ │ ││
│ │ PASSOS PARA REPRODUZIR: ││
│ │ 1. Ir para página de checkout ││
│ │ 2. Adicionar item ao carrinho ││
│ │ 3. Clicar "Aplicar cupom" ││
│ │ ││
│ │ ESPERADO: Desconto aplicado ao total ││
│ │ ATUAL: Mensagem de erro "Cupom inválido" ││
│ │ ││
│ │ SCREENSHOT: [anexado] ││
│ │ ERROS CONSOLE: [anexado] ││
│ │ STORY RELACIONADA: #123 ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ DEFINIÇÕES DE SEVERIDADE: │
│ Crítico: Sistema fora do ar, perda de dados, segurança │
│ Alto: Feature principal quebrada, sem workaround │
│ Médio: Feature prejudicada, workaround existe │
│ Baixo: Issue menor, cosmético, edge case │
│ │
│ SLA POR SEVERIDADE: │
│ Crítico: Corrigir imediatamente, mesmo dia │
│ Alto: Corrigir dentro do sprint │
│ Médio: Corrigir em 2 sprints │
│ Baixo: Backlog, corrigir quando conveniente │
└─────────────────────────────────────────────────────────────┘
Práticas de Teste
Tipos de Teste
PIRÂMIDE DE TESTES:
┌─────────────────────────────────────────────────────────────┐
│ │
│ /\ │
│ / \ │
│ / E2E \ Lento, caro, poucos │
│ /──────\ │
│ / \ │
│ / Integração\ Velocidade média, mais │
│ /──────────────\ │
│ / \ │
│ / Testes Unitários\ Rápido, barato, muitos │
│ /────────────────────\ │
│ │
│ TESTES UNITÁRIOS (70-80%): │
│ • Rápidos para executar │
│ • Testam componentes individuais │
│ • Escritos por desenvolvedores │
│ • Executam a cada commit │
│ │
│ TESTES DE INTEGRAÇÃO (15-20%): │
│ • Testam interações de componentes │
│ • Testes de API │
│ • Integração com banco de dados │
│ • Executam no PR/merge │
│ │
│ TESTES E2E (5-10%): │
│ • Testam fluxos completos de usuário │
│ • Testes de browser/UI │
│ • Lentos, executam menos frequentemente │
│ • Apenas caminhos críticos │
│ │
│ MAIS: │
│ • Testes exploratórios (manual, conduzido pelo QA) │
│ • Testes de performance (periódicos) │
│ • Testes de segurança (periódicos) │
└─────────────────────────────────────────────────────────────┘
Testes de Aceite
TESTES DE CRITÉRIOS DE ACEITE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ STORY: Usuário pode aplicar cupom de desconto │
│ │
│ CRITÉRIOS DE ACEITE: │
│ │
│ CA1: Cupom válido reduz total │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ DADO que tenho itens no carrinho totalizando R$100 ││
│ │ QUANDO eu insiro cupom válido "SAVE20" ││
│ │ ENTÃO total mostra R$80 ││
│ │ E mensagem "20% de desconto aplicado" exibe ││
│ │ ││
│ │ RESULTADO DO TESTE: ✅ PASSOU ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ CA2: Cupom inválido mostra erro │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ DADO que estou no checkout ││
│ │ QUANDO eu insiro cupom inválido "EXPIRADO" ││
│ │ ENTÃO erro "Cupom não válido" exibe ││
│ │ E total permanece inalterado ││
│ │ ││
│ │ RESULTADO DO TESTE: ✅ PASSOU ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ CA3: Um cupom por pedido │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ DADO que cupom já aplicado ││
│ │ QUANDO eu tento adicionar outro cupom ││
│ │ ENTÃO "Apenas um cupom por pedido" exibe ││
│ │ ││
│ │ RESULTADO DO TESTE: ❌ FALHOU ││
│ │ BUG: Segundo cupom substitui primeiro sem mensagem ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ STATUS DA STORY: Bloqueada - Bug encontrado no CA3 │
└─────────────────────────────────────────────────────────────┘
Métricas de Qualidade
Rastreando Qualidade
DASHBOARD DE MÉTRICAS DE QUALIDADE:
┌─────────────────────────────────────────────────────────────┐
│ Relatório de Qualidade Sprint 24 │
├─────────────────────────────────────────────────────────────┤
│ │
│ MÉTRICAS DE BUGS: │
│ ├── Bugs encontrados no sprint: 12 │
│ ├── Bugs corrigidos no sprint: 15 │
│ ├── Taxa de escape de bugs: 2 (chegaram em produção) │
│ └── Bugs críticos: 0 ✅ │
│ │
│ TENDÊNCIA DE BUGS: │
│ Bugs│ │
│ 20│ ▄ │
│ 15│ █ ▄ │
│ 10│ █ █ ▄ ▄ │
│ 5│ █ █ █ ▄ █ ▄ │
│ 0└───────────────── │
│ S19 S20 S21 S22 S23 S24 │
│ │
│ COBERTURA DE TESTES: │
│ ├── Cobertura testes unitários: 78% (+3%) │
│ ├── Testes de integração: 45 passando │
│ ├── Testes E2E: 12 passando, 1 flaky │
│ └── Cobertura código novo: 85% │
│ │
│ CYCLE TIME: │
│ ├── Tempo médio de Ready para QA: 2.5 dias │
│ ├── Tempo médio em QA: 0.8 dias │
│ └── Tempo médio correção de bug: 4 horas │
│ │
│ RECOMENDAÇÕES: │
│ • Investigar teste E2E flaky │
│ • Cobertura unitária abaixo da meta de 80% │
│ • Taxa de escape de bugs melhorou desde último sprint │
└─────────────────────────────────────────────────────────────┘