The simplest distinction
Non-functional testing asks: How well, safely, reliably, and efficiently does it do it?
A feature can be functionally correct and still be too slow, insecure, inaccessible, unstable, or difficult to operate.
Functional testing
Functional testing validates behaviour against requirements, business rules, user stories, workflows, and interfaces.
Examples include login, calculations, permissions, searches, transactions, approvals, data updates, notifications, API responses, and error handling.
Non-functional testing
| Attribute | Example question |
|---|---|
| Performance | Can the system meet response targets under expected load? |
| Security | Are access, data, and attack surfaces sufficiently protected? |
| Accessibility | Can people with disabilities use the product effectively? |
| Reliability | Does the system behave consistently over time? |
| Resilience | What happens when dependencies fail? |
| Compatibility | Does it work across supported platforms? |
| Recoverability | Can service and data be restored? |