Módulo 3: Pull Request e o papel do QA
Abrir um PR, ler um diff com olhos de quem testa, e entender o ✓ e o ✗ do CI
Aquecimento: 2 perguntas do Módulo 2
1. Para que serve a área de preparo (staging)?
Para escolher o que entra em cada commit: commit é uma unidade de sentido,
não um backup de tudo que você mexeu no dia.
2. Por que trabalhar em branch e não direto na main?
Porque o branch cria o "antes de entrar": o CI roda, o PR mostra o resultado,
e a main só recebe o que passou.
O que é um Pull Request
O Pull Request (no GitLab, Merge Request) é o pedido formal:
"peguei este branch, fiz estas mudanças, por favor revisem e juntem na
main".
Ele é muito mais do que um botão de juntar. Um PR reúne, num lugar só:
- o diff: todas as linhas adicionadas e removidas, arquivo por arquivo;
- a discussão: comentários presos a linhas específicas do código;
- os checks do CI: o ✓ ou ✗ de cada pipeline que rodou;
- a aprovação: quem revisou e liberou.
Para QA, o PR é o melhor momento do processo. É onde você descobre o que mudou antes de a mudança existir em qualquer ambiente, em vez de receber a versão pronta e adivinhar o que testar.
Abrindo o seu
- Depois do
git push, abra o seu repositório no GitHub. Aparece uma faixa amarela: "Compare & pull request". - Escreva um título que diga o que muda (mesma lógica do título de bug do Módulo 5 de Fundamentos) e uma descrição com: o que muda, por quê, e como testar.
- Clique em Create pull request.
- Espere: em alguns segundos os checks aparecem no rodapé do PR. É o CI rodando sozinho.
Se você está trabalhando no seu próprio fork, abra o PR do seu branch para a
main do seu próprio repositório, assim o pipeline roda na
sua conta e você pode mexer nele à vontade.
Ler um diff com olhos de QA
Você não precisa saber programar para tirar valor de um diff. Precisa saber fazer perguntas. Ao abrir a aba Files changed:
- Quais arquivos foram tocados? Se a história era sobre o carrinho e o diff mexe em autenticação, isso é uma pergunta, não uma acusação, uma pergunta.
- Algum número mudou? Limites, percentuais, tamanhos máximos. Todo número alterado é um caso de valor limite esperando por você (Fundamentos, Módulo 3).
- Alguma condição mudou? Um
>que virou>=, umandque virouor. São as mudanças de uma linha que mais causam defeito. - O que foi removido? Linhas vermelhas são risco: uma validação apagada é um caminho que ficou aberto.
- Veio teste junto? Um PR que muda comportamento sem tocar em nenhum teste é uma pergunta legítima na revisão.
- Mexeu em migração de banco? Então existe risco de dados, e vale conferir no banco depois de subir, é exatamente o que a Trilha de SQL te prepara pra fazer.
Comentário de QA em PR não precisa ser sobre código. "Essa condição agora aceita valor igual a 300: o requisito diz 'acima de 300'. Qual é o certo?" é o tipo de comentário que evita bug antes de ele existir.
Os checks: o ✓ e o ✗
No rodapé do PR aparece uma lista de verificações automáticas. Neste repositório existem duas, que você vai conhecer por dentro na Trilha de CI/CD:
✓ trilha-3-pytest / pytest Successful in 42s
✗ trilha-5-k6 / carga Failing after 1m 10s Details
- ✓ verde: aquele pipeline rodou e todos os comandos terminaram bem.
- ✗ vermelho: algum comando falhou. Clique em Details pra ver o log completo: a saída é a mesma que apareceria no seu terminal.
- 🟡 amarelo: ainda rodando.
O que fazer diante de um ✗: abra o log, role até o fim (a falha normalmente está nas últimas linhas), e leia a mensagem. Na prática ela cai em três casos: um teste falhou de verdade (ótimo, o CI fez o trabalho dele), o ambiente do pipeline quebrou (faltou dependência), ou o teste é instável (flaky), e aí você tem um problema mais sério do que o bug.
Nunca normalize o vermelho. Um time que convive com checks falhando perde o sinal: quando o ✗ importar de verdade, ninguém vai olhar.
Olhar de QA
Aprender Git não é sobre decorar comandos: é sobre conseguir participar da conversa onde as decisões acontecem. Com Git você lê o que mudou em vez de perguntar, comenta na linha exata em vez de mandar mensagem solta, versiona os seus próprios testes, e entende por que o build está vermelho. É o que transforma QA de "quem recebe a versão pronta" em parte do time que a constrói.
Sua vez
- Abra um Pull Request do branch que você publicou no Módulo 2.
- Escreva uma descrição com três seções: o que muda, por quê, como testar.
- Espere os checks e veja o resultado. Clique em Details em um deles e leia o log até achar a linha onde os testes rodaram.
- Vá na aba Files changed e deixe um comentário numa linha específica do seu próprio arquivo, só pra ver como funciona.
- Faça o merge do PR e depois rode, na sua máquina:
git switch mainegit pull. A sua mudança está lá.
Feito isso, você tem o ciclo completo de trabalho de um time de software, e está pronto pras Trilhas de pytest e CI/CD, que partem exatamente daqui.