Back to stories
<QA/>

Types of Testing: An Overview

Share by

Types of Testing: An Overview

Testing can be classified in many ways: by what you test (functional vs non-functional), by level (unit to UAT), or by technique (black-box, white-box). This post gives an overview of the main types you will use as a QA professional.


Functional testing

Functional testing checks what the system does: features, user flows, and business rules. Test cases are usually derived from requirements and specs. Examples: login, checkout, search, and report generation. Most manual and automated UI and API tests are functional.


Non-functional testing

Non-functional testing checks how the system behaves: performance, security, usability, reliability, and compatibility.

  • Performance: Load, stress, soak; response time and throughput.
  • Security: Vulnerabilities, auth, and data protection.
  • Usability: Ease of use and accessibility.
  • Compatibility: Browsers, devices, OS versions.

Black-box vs white-box

  • Black-box: You test without seeing code; you use requirements, UI, and APIs. Most QA testing is black-box.
  • White-box: You use code structure (e.g. branches, paths) to design tests. Often done by developers; useful for coverage and edge cases.

Other useful distinctions

  • Regression: Re-running tests after changes to ensure nothing broke.
  • Smoke: Quick checks that the build is stable enough for deeper testing.
  • Exploratory: Unscripted testing; you learn and design tests as you go.

Summary

  • Functional = what the system does; non-functional = how it behaves (performance, security, etc.).
  • Black-box (no code) vs white-box (with code) helps you choose test design approach.
  • Use regression, smoke, and exploratory testing as part of your test strategy.