# Quality Assurance & Software Testing 🧪

> Making sure apps actually *work* before anyone else uses them — the people who catch
> bugs, break things on purpose, and protect users from frustration.

[← Back to all career paths](README.md)

---

## What is it?

Before an app reaches millions of phones, someone has to check: *Does the login work? What
happens if I enter the wrong password? Does it break on a small screen?* That's **Quality
Assurance (QA)**.

QA testers are the **guardians of quality**. They try to break the app *on purpose* — in a
helpful way — so that bugs are found and fixed **before** users ever see them.

There are two main styles:

- **Manual testing** — a human carefully clicks through the app looking for problems.
- **Automated testing** — writing code that tests the app automatically, over and over.

> 🧪 Think of a QA tester like a taste-tester in a kitchen: they check everything is right
> *before* the meal reaches the customer.

---

## What would I actually do?

- Try every button and screen to make sure it works as expected
- Deliberately do "wrong" things (blank forms, huge numbers, bad passwords) to see what breaks
- Write clear **bug reports** so developers can understand and fix the problem
- Test the app on different phones, browsers, and screen sizes
- Later: write **automated tests** so checks run by themselves

---

## Is this me? ✅

You might love QA & testing if you:

- Have a sharp eye for detail and notice when something is "off"
- Are curious and love asking *"but what if I do this...?"*
- Are patient, organised, and thorough
- Like being the person who makes things better for everyone

> 💡 QA is one of the **friendliest ways into tech** — you can start with no coding at all,
> then add automation skills over time.

---

## Skills to build (in order)

1. **Attention to detail** — the core superpower of every great tester
2. **Testing basics** — test cases, bug reports, "expected vs actual" results
3. **Clear writing** — a good bug report is easy to read and repeat
4. **A little programming** — **Python** or **JavaScript** for automation later
5. **Automation tools** — like **Selenium** (web) or **Playwright** — when you're ready
6. **Basic Git & GitHub** — to work alongside developers

> 🐢 You can become a solid **manual tester** before writing a single line of code.

---

## Free resources

- **[Test Automation University](https://testautomationu.applitools.com/)** — free, high-quality QA courses
- **[Ministry of Testing (Dojo)](https://www.ministryoftesting.com/dojo)** — friendly testing community & lessons
- **[Software Testing on freeCodeCamp](https://www.youtube.com/@freecodecamp)** — free full tutorials
- **[Guru99 Testing tutorials](https://www.guru99.com/software-testing.html)** — clear beginner guides
- **[Playwright docs](https://playwright.dev/)** — modern, beginner-friendly test automation
- **[The Definitive Bug Report guide](https://www.softwaretestinghelp.com/how-to-write-good-bug-report/)**

---

## Starter projects 🚀

You can start testing **today** — no special setup needed.

1. **Bug hunt** — pick any app you use and find 5 things that could be clearer or that break. Write each up as a bug report.
2. **Write a test plan** — list every step to test a login screen (right password, wrong password, blank fields).
3. **Break a classmate's project** — test a friend's CodePen or Scratch project and report what breaks.
4. **Cross-device check** — open a website on a phone and a laptop; note what looks different or wrong.
5. **First automated test** — follow a Playwright "hello world" tutorial to make a test run by itself.

---

## Your first steps (do these this week)

- [ ] Pick an app and write your **first bug report** (steps, what you expected, what happened)
- [ ] Write a test plan for a login page — list at least 5 things to check
- [ ] Test a classmate's project and share your findings kindly
- [ ] Watch one "What is software testing?" beginner video
- [ ] Learn the phrase **"expected result vs actual result"** — it's the heart of testing
- [ ] Explore one free lesson on Test Automation University

---

## Roles this can grow into

QA Tester • QA Analyst • Test Automation Engineer • Software Development Engineer in Test (SDET) •
QA Lead • Quality Engineer

> 💡 Every app you love was tested by someone like this. QA is a **welcoming entry point** into
> tech — and automation testers are in high demand and well paid.
