Module 2 · Testing fundamentals
Test levels and test types
Unit to acceptance, functional to non-functional, and what regression and smoke tests are for.
About 9 min reading and 5 min practice (estimates)
Loading progress…
Read
Learning objectives
- Name the four common test levels and what each one checks.
- Distinguish functional from non-functional testing.
- Explain when regression and smoke tests are used.
Explanation
Test levels: how much of the system is involved
| Level | What is tested | Usually written by |
|---|---|---|
| Unit | A single function or component in isolation | Developers |
| Integration | Parts working together — e.g. the app and its database, or two services | Developers and QA |
| System | The complete product, end to end, in a test environment | QA |
| Acceptance | Whether it meets the agreed needs of users or the business | QA with product owners or users |
Test types: what quality you are checking
- Functional: does the feature do what it should? (A promotion code reduces the total correctly.)
- Non-functional: how well does it do it? Performance, security, usability, accessibility, compatibility across browsers and devices, localisation.
- Regression: did a change break something that used to work? Re-run the checks that cover affected areas.
- Smoke: a short, broad check that a build is basically usable before deeper testing — can I open the site, sign in and reach checkout?
Levels and types combine: you can run a performance test at system level, or an accessibility check on a single component. Choosing the right level matters — a rule like rounding is cheapest to check thoroughly with unit tests, while a full purchase is a system-level concern.
Example: one feature, several levels
- Unit: the function that calculates a 10% discount returns 1.650 OMR for 16.500 OMR.
- Integration: the cart service stores the applied code and the database row shows it.
- System: in a browser, a shopper applies the code and sees the new total on the cart and checkout pages.
- Acceptance: the marketing team confirms the promotion behaves as they announced it.
Common mistakes
- Testing every rule only through the user interface, which is slow and hard to diagnose.
- Forgetting non-functional qualities until users complain.
- Calling any quick check a "regression test" without knowing what it covers.
Try
Practise what you just read. Answers are checked here; nothing is graded publicly or counts toward Bug Arena.
Exercise
A new build has just been deployed to the test environment. What should you run first?
Review
Check yourself — you should now be able to:
- Name the four common test levels and what each one checks.
- Distinguish functional from non-functional testing.
- Explain when regression and smoke tests are used.
References
Continue
When you’re ready, mark the lesson complete in the Try step and move on.
Marked as read when you reach the end of the lesson.