Non-functional testing is a type of software testing to test non-functional parameters such as reliability, load test, performance, and accountability of the software. The primary purpose of non-functional testing is to test the reading speed of the software system as per non-functional parameters. The parameters of non-functional testing are never tested before the functional testing.
It answers: “How good is the software?” instead of just “Does it work?”
Let’s use the ATM machine example:
“How fast does the ATM dispense cash?” (Performance)
“Does it work 24/7 without crashing?” (Reliability)
“Can it handle 1000 users withdrawing at the same time?” (Scalability)
“Is the PIN stored securely?” (Security)
“Is the screen easy to read and use?” (Usability)
Types of Non-Functional Testing
1. Load Testing
What: Checks how the system performs under a specific expected number of users/transactions.
Goal: Ensure the system can handle normal usage.
Example (ATM): 500 people use ATMs at the same time across the city → does the system still work smoothly?
2. Performance Testing
What: Measures speed, response time, and stability of the system.
Goal: Ensure it is fast and responsive under normal conditions.
Example (ATM): How many seconds does it take from inserting card → cash dispensed?
3. Stress Testing
What: Push the system beyond its limits to see how it behaves when overloaded.
Goal: Check if it fails gracefully (without crashing completely).
Example (ATM): 10,000 people try to withdraw at once → does the ATM system show proper error messages or crash?
4. Security Testing
What: Ensures the system is safe from threats and data breaches.
Goal: Protect sensitive information and prevent unauthorized access.
Example (ATM): Is the PIN encrypted? Can hackers bypass login? Is there protection from skimming attacks?
5. Accessibility Testing
What: Checks if the system can be used by people with disabilities.
Goal: Ensure inclusivity (as per WCAG/ADA standards).
Example (ATM): Does the ATM have audio guidance for blind users? Is the keypad accessible for wheelchair users?
6. Scalability Testing
What: Checks if the system can grow with increased users, transactions, or data.
Goal: Ensure it can expand without performance loss.
Example (ATM): If the bank doubles its customers, can the ATM network handle it without slowing down?
7. Compatibility Testing
What: Ensures the software works correctly on different devices, OS, browsers, or environments.
Goal: Provide a smooth experience across platforms.
Example (ATM): ATM software should work on different ATM hardware models, different operating systems, and still connect with different bank servers.
Load – Normal expected users.
Performance – Speed & responsiveness.
Stress – Beyond limits.
Security – Safe from attacks.
Accessibility – Usable by everyone.
Scalability – Can grow with demand.
Compatibility – Works across environments/devices.