Software Testing · Git and GitHub
How Git and GitHub Help You Land a QA Tester Job Faster
Quick summary — how Git and GitHub help QA job seekers
Git and GitHub help you land a QA tester job faster because you can version automation code and test cases, work on branches, review and test pull requests, run test suites automatically with GitHub Actions, track bugs as issues and show recruiters a public portfolio of tidy, working test projects with clear READMEs.
In this guide you will learn:
- Core Git commands — QA testers use daily.
- Reviewing and testing — pull requests.
- Running tests — in GitHub Actions.
- A GitHub QA portfolio — template.
- Interview questions — on Git for testers.
SECTION 01Core Git commands for testers
QA testers do not need advanced Git tricks, but they must be comfortable with the daily workflow: cloning a repository, creating a branch for new tests, committing small changes with clear messages, pulling updates and resolving simple conflicts. These basics let you contribute automation code without breaking anyone else's work:
| Task | Command | When QA uses it | Tip |
|---|---|---|---|
| Get the project | git clone <url> | First day on a project | Read the README first |
| Start new work | git switch -c add-login-tests | Before writing tests | One branch per task |
| Save progress | git add, git commit -m | After each small step | Clear, specific messages |
| Stay up to date | git pull --rebase | Before pushing | Resolve conflicts carefully |
#!/usr/bin/env bash
set -euo pipefail
git switch main
git pull --rebase
git switch -c add-login-tests
# ... write or update tests ...
git status
git add tests/test_login.py
git commit -m "Add tests for login with invalid password"
git pull --rebase origin main
git push -u origin add-login-tests
# Then open a pull request on GitHub
#!/usr/bin/env bash
# Inspect history and changes before committing
git log --oneline --graph -n 10 # recent history
git diff # unstaged changes
git diff --staged # what will be committed
git blame tests/test_login.py | head # who changed each line
git restore tests/test_login.py # undo local changes to a file
SECTION 02Reviewing and testing pull requests
On many teams, developers open pull requests (PRs) for every change, and QA testers check them before they are merged. You can read the code diff, check out the branch locally, run the tests, try the feature and leave comments. Finding issues at the PR stage is cheaper than finding them after release, and it builds trust with developers:
| Step | What you do | Git/GitHub tool | Result |
|---|---|---|---|
| Read the PR | Understand what changed and why | PR description and diff | Know what to test |
| Check out the branch | Run it locally | git fetch, git switch | Hands-on testing |
| Run tests | Execute the test suite | pytest or similar | Pass/fail evidence |
| Comment | Report findings clearly | PR comments, suggestions | Issues fixed before merge |
#!/usr/bin/env bash
# Test a pull request branch locally (replace 42 with the PR number)
set -euo pipefail
git fetch origin pull/42/head:pr-42
git switch pr-42
python -m pip install -r requirements.txt
python -m pytest -q
# Or with the GitHub CLI:
# gh pr checkout 42 && python -m pytest -q
Tested on branch pr-42 (Chrome, local env).
Works:
- Login with valid email and password
- Error shown for wrong password
Issue found:
- Submitting an empty email shows a server error (500) instead of
a validation message.
Steps: open /login -> leave email empty -> click Sign in
Expected: 'Email is required' | Actual: 500 page
Suggest adding a test for the empty email case.
SECTION 03Running tests in GitHub Actions
GitHub Actions can run your test suite automatically on every push or pull request. For QA testers, this means tests become a safety net that runs without anyone remembering to start them. A simple workflow installs dependencies, runs the tests and uploads reports or screenshots as artefacts so failures are easy to investigate:
| Workflow part | What it does | QA benefit | Example |
|---|---|---|---|
| Trigger | When the workflow runs | Tests on every change | on: [push, pull_request] |
| Setup | Install tools and dependencies | Same environment each time | actions/setup-python |
| Run tests | Execute the suite | Pass/fail on each PR | pytest -q |
| Artefacts | Save reports and screenshots | Easier debugging | actions/upload-artifact |
# .github/workflows/tests.yml
name: tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with: { python-version: "3.12" }
- run: pip install -r requirements.txt pytest pytest-html
- run: pytest -q --html=report.html --self-contained-html
- if: always()
uses: actions/upload-artifact@v4
with:
name: test-report
path: report.html
# tests/test_discount.py
import pytest
def discount(total: float) -> float:
if total < 0:
raise ValueError("total cannot be negative")
return round(total * 0.9, 2) if total >= 1000 else total
@pytest.mark.parametrize("total,expected", [(999, 999), (1000, 900.0), (1500, 1350.0)])
def test_discount_boundaries(total, expected):
assert discount(total) == expected
def test_negative_total_rejected():
with pytest.raises(ValueError):
discount(-1)
SECTION 04GitHub QA portfolio template
Use these templates to build a GitHub profile that shows testing skills:
Repo 1: manual-testing-samples
- test plan, test cases (CSV or Markdown), bug reports with screenshots
Repo 2: api-tests
- pytest + requests tests for a public practice API, CI workflow
Repo 3: ui-tests
- Playwright or Selenium tests for a practice site, reports as artefacts
Each repo: README, how to run, sample report, CI badge
# API Tests for a Practice API
## What is tested
- Status codes, response fields, error handling
## How to run
pip install -r requirements.txt
pytest -q
## CI
Tests run on every push via GitHub Actions; reports are uploaded as artefacts.
## What I learned
- Boundary value tests
- Keeping tests independent
Week 1 Git basics: clone, branch, commit, push, pull requests
Week 2 Write pytest tests; add a GitHub Actions workflow
Week 3 Practise PR reviews with a friend; polish READMEs
SECTION 05Tips for QA testers learning Git and GitHub
These habits make you a strong team member from day one:
- Commit small and often — clear history helps everyone.
- Never commit secrets — keep passwords in environment variables.
- Test PRs hands-on — read the diff, then run it.
- Keep tests independent — CI runs them in any order.
- Polish your READMEs — recruiters read them first.
SECTION 06Interview Q&A — Git for testers
Q1Why should test code be in version control?
So changes are tracked, reviewed and reversible, and the whole team uses the same up-to-date tests.
Q2What is a pull request?
A request to merge changes from one branch into another, where teammates can review, comment, test and approve.
Q3How do you resolve a merge conflict?
Open the conflicting files, decide which changes to keep, remove the conflict markers, run the tests, then commit.
Q4What is the difference between git fetch and git pull?
fetch downloads changes without changing your files; pull fetches and then merges or rebases them into your branch.
Q5How do you run tests automatically on GitHub?
Add a GitHub Actions workflow that installs dependencies and runs the test suite on pushes and pull requests.
SECTION 07Test yourself — Git for testers quiz
Five questions. No sign-up.
0 / 5Pick an answer to see why it is right or wrong.
SECTION 08Frequently asked questions
Do manual testers need Git?
Increasingly yes. Even manual testers may store test cases in repositories and test pull requests, and Git is essential for automation work.
How long does it take a tester to learn Git basics?
With daily practice, the core workflow of clone, branch, commit, push and pull requests can be learned in about a week or two.
What is the difference between Git and GitHub?
Git is the version control tool on your computer; GitHub is a hosting platform for Git repositories with pull requests, issues and Actions.
Should my QA portfolio be on GitHub?
Yes, if possible. Public repositories with tests, CI workflows and clear READMEs are easy for recruiters to review.
Can I use GitHub Actions for free?
GitHub offers free usage for public repositories and limited minutes for private ones; check the current terms.
SECTION 09Related reads
Classroom & online · Noida
Build modern QA skills
Our Software Testing Training Course covers manual testing, test design, automation, API testing, Git and CI, with projects for your GitHub portfolio.
Talk to a counsellor for current fees- Test design and automation
- Git and CI
- API testing
- Weekday & weekend batches