What is the non-functional testing family, and what are the four performance sub-types?
- Non-functional testing checks quality attributes, not features — how well the system performs, not what it does.
- The family includes performance, security, usability, and reliability.
- Performance splits into load, stress, soak (also called endurance), and spike testing.
- Load testing is one subset of performance testing, not a synonym for the whole umbrella.
The long answer
Non-functional testing checks quality attributes rather than correctness of behavior — does the system do it well, not does it do the right thing.
The family: performance, security, usability, and reliability, each protecting a different quality attribute.
Performance testing itself has four named sub-types, asked together constantly in interviews:
-
Load testing checks behavior under expected normal traffic.
-
Stress testing pushes well past normal load to find the breaking point.
-
Soak testing, also called endurance testing, sustains moderate load over a long duration to catch memory leaks or slow degradation.
-
Spike testing applies a sudden sharp burst of traffic to see how the system reacts.
Important nuance: load testing is a subset of performance testing, not a synonym — performance testing is the umbrella covering load, stress, soak, spike, plus scalability and resource usage.
Security testing checks for vulnerabilities like injection attacks, broken authentication, exposed data — recognize depth is enough: name it, give one example.
Usability testing checks how easy and intuitive the system is for real users — recognize depth, often overlaps UX and accessibility.
Reliability, sometimes grouped with resilience and scalability, checks the system keeps working correctly over time and under failure conditions, like recovering gracefully when a dependency goes down.
Positioning note: performance is the one sub-type you can credibly claim hands-on automation hooks for, given your framework experience; security and usability should stay recognize-level — name confidently, don’t oversell depth you don’t have.
Saying "load testing" when asked to define "performance testing" — the interviewer is checking you know load is one subset, not the whole umbrella term.