Software Testing - Functional Testing
Software testing types can be grouped into broad categories based on their goals, methods, and the stage of testing. Here’s a clear breakdown:
1. Functional Testing
Checks whether the software meets the specified requirements and works as intended.
Examples:
-
Unit Testing – Testing individual modules/components.
-
Integration Testing – Ensuring modules work together.
-
System Testing – Testing the complete system as a whole.
-
Acceptance Testing – Validating the system against business needs (e.g., UAT).
-
Regression Testing – Making sure new changes don’t break existing features.
-
Smoke Testing – Quick check to see if the basic build is stable.
-
Sanity Testing – Narrow testing after fixes to verify correctness.
2. Non-Functional Testing
Evaluates how the system performs, rather than what it does.
Examples:
-
Performance Testing (load, stress, endurance, spike)
-
Security Testing
-
Usability Testing
-
Compatibility Testing
-
Scalability Testing
-
Reliability Testing
-
Localization & Internationalization Testing (language, culture, date formats)
3. Maintenance Testing
Happens after deployment to ensure ongoing quality.
Examples:
-
Regression Testing after updates
-
Confirmation Testing to verify bug fixes
-
Patch Testing for small updates
4. Specialized Testing
Targets specific areas or risks.
Examples:
-
Exploratory Testing – Testers explore the application without predefined cases.
-
Ad-hoc Testing – Unstructured, quick checks.
-
Alpha & Beta Testing – Pre-release testing with internal or external users.
-
A/B Testing – Comparing two versions for user preference.
-
Recovery Testing – Checking how the system recovers from crashes or failures.
-
Installation Testing – Ensuring setup and updates work correctly.
-
Compliance Testing – Checking against legal or regulatory standards.