What is System Testing?
System Testing is a type of software testing where the entire software application is tested as a whole to verify that it meets the specified requirements. It is conducted after Integration Testing and before User Acceptance Testing (UAT).
Key Objectives of System Testing
✅ Ensures that the complete system meets business and functional requirements.
✅ Identifies bugs and inconsistencies across modules.
✅ Evaluates performance, security, and usability.
✅ Tests system behavior under real-world conditions.
- Performed by: Independent Testers (QA Team)
- Automation Tools: Selenium, TestNG, JUnit, QTP, LoadRunner, JMeter
- Testing Phase in SDLC: After Integration Testing, Before UAT
Types of System Testing
System Testing is divided into Functional and Non-Functional testing types.
1️⃣ Functional System Testing (Validates Features & Business Logic)
Functional testing ensures that the system works correctly as per requirements.
1. Smoke Testing
- A quick test to check if major system functionalities are working.
- Performed before deeper testing to ensure system stability.
📌 Example: Checking if a login page loads properly before testing other features.
2. Sanity Testing
- Focuses on verifying specific bug fixes or new features.
📌 Example: If a checkout issue was fixed, sanity testing checks only that functionality.
3. Regression Testing
- Ensures new changes do not break existing functionality.
📌 Example: After adding a new payment method, regression testing verifies that all previous payment methods still work.
4. End-to-End Testing
- Tests complete workflows from start to finish.
📌 Example: Testing an e-commerce website from login → product search → checkout → payment → order confirmation.
5. User Interface (UI) Testing
- Ensures the system’s graphical interface is working correctly.
📌 Example: Checking if buttons, fonts, colors, and navigation in a mobile app appear correctly.
6. Database Testing
- Ensures data storage, retrieval, and integrity are correct.
📌 Example: Testing if a banking application saves user transactions correctly.
7. API Testing
- Verifies if APIs are returning correct responses and data.
📌 Example: A weather API should return correct temperature data for a given city.
2️⃣ Non-Functional System Testing (Checks Performance, Security & Usability)
Non-functional testing evaluates performance, security, and reliability of the system.
8. Performance Testing
- Checks speed and response time of the system.
📌 Example: An online store should load in under 2 seconds even with multiple users.
9. Load Testing
- Ensures the system handles expected traffic loads.
📌 Example: Testing if a ticket booking site supports 10,000 concurrent users.
10. Stress Testing
- Pushes the system beyond normal limits to find failure points.
📌 Example: Simulating 1 million users on a cloud app to check when it crashes.
11. Scalability Testing
- Evaluates if the system can scale up with increasing load.
📌 Example: Ensuring a video streaming service scales from 100 users to 100,000 users.
12. Endurance (Soak) Testing
- Runs the system for a long period to check for memory leaks or performance degradation.
📌 Example: Running a banking system for 24 hours non-stop to check stability.
13. Security Testing
- Identifies vulnerabilities, risks, and security flaws.
📌 Example: Checking if a banking app encrypts passwords correctly.
14. Penetration Testing
- Simulates cyber-attacks to check system security.
📌 Example: Ethical hackers try to break into an e-commerce site.
15. Compliance Testing
- Ensures the software follows legal and regulatory standards.
📌 Example: A healthcare app must comply with HIPAA regulations.
16. Usability Testing
- Ensures the software is user-friendly and intuitive.
📌 Example: Testing if a travel booking website is easy to use.
17. Accessibility Testing
- Ensures the software is usable by people with disabilities.
📌 Example: Checking if a government website supports screen readers.
18. Installation & Uninstallation Testing
- Ensures the software installs, updates, and uninstalls correctly.
📌 Example: Checking if a mobile banking app installs properly on Android & iOS.
19. Recovery Testing
- Tests how well the system recovers from failures.
📌 Example: If an e-commerce website crashes, it should restart within seconds.
Comparison of System Testing Types
Testing Type | Purpose | Example |
---|---|---|
Smoke Testing | Quick system check | Checking if login & homepage load |
Regression Testing | Ensures updates don’t break existing features | Testing old & new payment options |
Performance Testing | Measures system speed | Checking response time of a website |
Load Testing | Simulates expected traffic | Can the app handle 10,000 users? |
Security Testing | Checks for vulnerabilities | Is user data encrypted properly? |
Usability Testing | Ensures good UX | Can users easily book a flight? |
Database Testing | Ensures data integrity | Are transactions stored correctly? |