<!-- Generated from applied-computing-au vic/unit3-4/sat/C08-2026/C08-Reference-Godot by port-reference-godot-to-wiki.py — do not hand-edit; re-run the port. -->
# Software Testing Hierarchy

*Where your C8 work sits in the testing world — and why it's called **alpha** testing.*

## The hierarchy

```
1. Development Phase Tests (early, internal)
   ├── Unit Testing (α)
   └── Integration Testing (α)

2. Pre-Release Tests (later, internal/external)
   ├── System Testing (α/β)
   └── User Acceptance Testing (UAT) (β)

3. Post-Release Tests (after launch)
   ├── Regression Testing
   ├── Performance Testing
   └── Security Testing
```

| Test | What it checks |
|---|---|
| **Unit** | one component in isolation — a single function returns the right value |
| **Integration** | components working together — the "Add Student" form updates the database *and* the timetable |
| **System** | the entire product end to end, against all requirements |
| **UAT** | real users doing real tasks — is it usable, does it meet their needs? |
| **Regression** | after a fix or update, do the old features still work? |
| **Performance** | speed, scalability, stability under load |
| **Security** | vulnerabilities — can data be accessed that shouldn't be? |

## Alpha vs beta

- **Alpha (α)** — *internal*: the developers (or company insiders) test, in a controlled environment. **Your C8 work is alpha testing** — you test your own SAT against your own testing table.
- **Beta (β)** — *external*: real users test in their real environment. **That's Criterion 9** — beta testing with your actual users comes next.

It's not about location — it's about **who** is testing and **how**.

## Check Your Understanding

Alpha or beta?

1. A dev team spends a week testing its own new timetable app with fake student data.
2. A games company invites 1,000 players worldwide to play an early build for two weeks.
3. Company staff and their families use a new app feature for a month before public release.
4. Fifty teachers use a quiz platform with their real classes for a semester and report back.
5. A bank hires an external professional testing company (not real customers) to systematically test its new app. *(tricky)*

>| ### Answer
>| 1. **Alpha** — internal team, controlled environment (system testing).
>| 2. **Beta** — real external users in their own environments (UAT).
>| 3. **Alpha** — still inside the company, before release.
>| 4. **Beta** — the real target users, in real classrooms.
>| 5. **Alpha** — professional testers are not real users; it's controlled, systematic testing.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9