Automação de testes sem Git significa testes que só rodam na sua máquina, sem pipeline de CI, sem code review e sem como colaborar com desenvolvedores. Todo cargo de QA automation exige o mesmo fluxo: criar branch, escrever testes, fazer push, abrir pull request e deixar o CI rodar a suite automaticamente.
O que o Git faz
O Git rastreia mudanças em arquivos ao longo do tempo. Toda mudança que você salva ("commit") é registrada com uma descrição, um timestamp e quem fez. Você pode ver o histórico completo de cada arquivo, voltar a qualquer estado anterior e trabalhar em mudanças sem afetar a codebase principal até estar pronto.
Para QA engineers: o Git é como você salva o trabalho de testes, compartilha com desenvolvedores e roda em pipelines de CI/CD. Você não pode ter um pipeline de CI sem um repositório.
Instalando o Git
Windows:Baixe em git-scm.com e instale. Durante a instalação, selecione "Use Git from the command line and also from 3rd-party software."
Mac:Rode xcode-select --install no Terminal. O Git já vem incluído.
git --version
# git version 2.44.0Os 10 comandos que você vai usar 90% do tempo
Configuração inicial (uma vez)
# Dizer ao Git quem você é
git config --global user.name "Seu Nome"
git config --global user.email "voce@exemplo.com"Iniciando ou clonando um repositório
# Inicializar um novo repositório na pasta atual
git init
# Clonar um repositório existente do GitHub
git clone https://github.com/username/repository-name.gitPara a maioria dos QA engineers, você vai usar clone mais do que init. Você vai entrar em um projeto já existente.
Verificando o que mudou
# Ver quais arquivos têm mudanças
git status
# Ver as mudanças específicas nos arquivos
git diffRode git status constantemente. Ele mostra exatamente onde você está.
Salvando seu trabalho (o fluxo principal)
# Adicionar arquivos específicos à staging area (lista "a ser commitado")
git add tests/login.spec.ts
git add pages/LoginPage.ts
# Ou adicionar todos os arquivos alterados
git add .
# Commitar as mudanças staged com uma mensagem
git commit -m "Add login test cases with negative scenarios"Stage → Commit. Esse é o ciclo de salvar. A mensagem descreve o que você mudou e por quê.
Sincronizando com o repositório remoto (GitHub)
# Pegar as mudanças mais recentes do GitHub
git pull
# Enviar seus commits para o GitHub
git pushPrimeiro pull, depois push. Sempre faça pull antes do push para evitar conflitos.
Trabalhando em features (branches)
# Criar uma nova branch e mudar para ela
git checkout -b feature/add-login-tests
# Ver todas as branches
git branch
# Mudar para uma branch existente
git checkout mainUm fluxo de trabalho diário completo
Aqui está como usar o Git na prática em um dia típico:
# 1. Começar o dia — pegar as mudanças mais recentes
git pull
# 2. Criar uma branch para o trabalho
git checkout -b test/payment-flow-automation
# 3. Escrever os testes no VS Code
# ... (tests/payment.spec.ts criado/modificado)
# 4. Verificar o que mudou
git status
# On branch test/payment-flow-automation
# Changes not staged for commit:
# modified: tests/payment.spec.ts
# Untracked files:
# pages/PaymentPage.ts
# 5. Adicionar os arquivos à staging area
git add tests/payment.spec.ts
git add pages/PaymentPage.ts
# 6. Commitar com uma mensagem clara
git commit -m "Add payment flow tests: happy path and card decline scenarios"
# 7. Fazer push para o GitHub
git push origin test/payment-flow-automation
# 8. Abrir um pull request no GitHub (feito no navegador)GitHub: hospedagem de repositório remoto
O GitHub armazena seu repositório online. As principais coisas que você vai fazer lá:
Criando um repositório:1. Vá para github.com → New repository
2. Dê um nome
3. Escolha Public ou Private
4. Clique em Create
Conectando seu repositório local ao GitHub:# Após criar o repositório no GitHub, conecte a pasta local a ele
git remote add origin https://github.com/seuusuario/seu-repo.git
git push -u origin mainQuando você termina o trabalho em uma branch, abre um pull request no GitHub. Isso:
- Mostra as mudanças que você fez
- Permite que colegas revisem e comentem
- Mescla suas mudanças na branch main após aprovação
Para QA engineers em um time: seu código de testes passa pelo mesmo processo de revisão que o código dos desenvolvedores. Abre um PR, pede revisão, faz merge.
Para seu portfólio: um repositório público no GitHub é a forma padrão de mostrar seu trabalho para empregadores. Veja Como Construir um Portfolio de QA que Te Contrata (GitHub + Playwright) para o que colocar nele..gitignore: o que não rastrear
Alguns arquivos não devem ir para o Git: output de build, segredos, node_modules. Crie um arquivo .gitignore na raiz do repositório:
# Node modules (sempre ignorado — instale com npm install)
node_modules/
# Resultados e relatórios de testes do Playwright
test-results/
playwright-report/
# Arquivos de ambiente que podem conter segredos
.env
.env.local
# Arquivos de SO
.DS_Store
Thumbs.dbO npm init playwright@latest cria um .gitignore automaticamente. Verifique o que está nele antes de commitar.
Branches: por que importam para QA
Branches permitem que várias pessoas trabalhem simultaneamente sem pisar umas nas outras. Convenções de nomenclatura padrão:
main # código estável, pronto para produção
feature/add-search # nova feature sendo desenvolvida
bugfix/login-error # bug sendo corrigido
test/checkout-flow # novo teste sendo escritoO padrão usado pela maioria dos times:
1. A branch main é sempre estável
2. Todos criam branches de feature/test para o trabalho
3. O trabalho é revisado em pull requests
4. Mudanças aprovadas fazem merge na main
5. CI/CD roda automaticamente quando mudanças chegam na main
Como QA engineer, você vai criar branches para novas suites de testes, atualizações de testes e reproduções de bugs.
Conflitos de merge: o que são e como resolver
Um conflito de merge acontece quando duas pessoas mudaram a mesma parte do mesmo arquivo e o Git não consegue combiná-los automaticamente.
<<<<<<< HEAD
await expect(page.getByText('Success')).toBeVisible();
=======
await expect(page.getByRole('alert')).toHaveText('Success');
>>>>>>> feature/update-assertionsA seção <<<<<<< HEAD é a sua versão. A seção >>>>>>> feature/update-assertions é a versão que está chegando. Você precisa escolher uma (ou combiná-las manualmente), deletar os marcadores de conflito e fazer commit.
A maioria dos conflitos em repositórios de testes é fácil de resolver. Acontecem mais em arquivos compartilhados como playwright.config.ts ou arquivos de Page Object que várias pessoas mexem.
Git log: entendendo o histórico
# Ver commits recentes
git log --oneline
# a3f2c1d Add payment tests
# b7e9a04 Fix login page locator after UI update
# c2d1f8e Add item creation test with validation scenarios
# Ver mudanças em um commit específico
git show a3f2c1d
# Ver quem modificou cada linha de um arquivo por último
git blame tests/login.spec.tsgit log e git blame são úteis quando você precisa entender por que um teste foi escrito de certa forma. Também ajudam quando um teste começou a falhar após um commit específico.
GitHub Actions: seu pipeline de CI
Com os testes no GitHub, o GitHub Actions pode rodá-los automaticamente a cada push. Um arquivo de workflow básico:
# .github/workflows/playwright.yml
name: Playwright Tests
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npx playwright install --with-deps
- run: npx playwright testEsse é o arquivo que o npm init playwright@latest oferece criar para você. Com ele no repositório, o GitHub roda seus testes a cada push e pull request. O artigo de CI/CD cobre isso em detalhes.
Cheat sheet de comandos
# Setup
git config --global user.name "Nome"
git config --global user.email "email"
# Diário
git status # ver o que mudou
git pull # pegar o mais recente do remoto
git add arquivo.ts # adicionar um arquivo à staging
git add . # adicionar todos os arquivos alterados
git commit -m "mensagem" # salvar mudanças staged
git push # enviar para o remoto
# Branches
git checkout -b nome-da-branch # criar e mudar para branch
git checkout main # mudar para main
git branch # listar branches
git merge nome-da-branch # fazer merge da branch na atual
# Histórico
git log --oneline # commits recentes
git diff # mudanças não staged
git show hash-do-commit # mudanças em um commitFAQ
Preciso usar linha de comando ou posso usar uma interface gráfica?Os dois funcionam. O VS Code tem suporte integrado a Git (o painel Source Control) que cobre a maioria das operações diárias sem linha de comando. O GitHub Desktop é outra opção. Vale aprender a linha de comando porque você vai encontrá-la em scripts de CI/CD e servidores remotos, mas começar com uma interface gráfica está ótimo.
Qual a diferença entre Git e GitHub?Git é o software de controle de versão que roda localmente. GitHub é um site que hospeda repositórios Git remotamente. GitLab e Bitbucket são alternativas ao GitHub. O Git funciona sem o GitHub; o GitHub armazena e compartilha seus repositórios Git.
O que minhas mensagens de commit devem dizer?Seja específico. "Add login tests" é fraco. "Add negative login tests: wrong password, empty fields, SQL injection" é útil. Uma boa mensagem de commit responde: o que mudou e por quê (não como; o código mostra como).
Fiz commit na main por engano. O que faço?Calma. Se não fez push ainda:
git reset HEAD~1 # desfaz o último commit, mantém as mudanças
git checkout -b minha-branch # cria uma branch adequada
git add .
git commit -m "mensagem"Se já fez push e o time usa uma branch main protegida, fale com o tech lead. Nunca faça force-push na main sem consenso do time.
Deletei um arquivo por engano. Consigo recuperar?Sim, se você fez commit dele antes:
git checkout HEAD -- caminho/para/arquivo.tsEsse é um dos recursos mais úteis do Git. Você consegue recuperar qualquer coisa que já foi commitada.
→ Veja também: CI/CD para QA: GitHub Actions, Jenkins e GitLab Comparados | Como Construir um Portfolio de QA que Te Contrata (GitHub + Playwright)