Software Testing System Testing

System testing evaluates the complete, fully integrated software application against its specified requirements. It treats the software as a whole — a finished product — rather than testing individual pieces. This is the first stage where the entire system is tested end-to-end.

Where System Testing Fits

  Unit Testing         → Test individual functions
  Integration Testing  → Test connected modules
  System Testing       → Test the COMPLETE application ← You are here
  Acceptance Testing   → Business user confirms readiness

System testing comes after integration testing and before the software is handed over to users for acceptance testing.

What System Testing Checks

System testing covers both functional and non-functional aspects of the complete application.

  SYSTEM TESTING SCOPE
  ─────────────────────────────────────────────────────────
  ✔ All features work as specified in requirements
  ✔ All modules work together seamlessly
  ✔ Data flows correctly from start to finish
  ✔ Error messages are clear and appropriate
  ✔ Performance meets acceptable thresholds
  ✔ Security controls are in place
  ✔ Software works across required environments
  ✔ Backup and recovery processes function correctly

End-to-End Testing: The Heartbeat of System Testing

End-to-end (E2E) tests simulate a complete user journey through the application — from the first action to the final result — just as a real user would experience it.

  E2E Test: Online Shopping Purchase

  Step 1: User visits the home page
  Step 2: User searches for "laptop bag"
  Step 3: User selects a product and views its details
  Step 4: User adds the item to the cart
  Step 5: User proceeds to checkout
  Step 6: User enters shipping address
  Step 7: User enters payment details
  Step 8: User places the order
  Step 9: Confirmation page displays order number
  Step 10: Confirmation email arrives in inbox

  Expected: Every step completes correctly, in sequence.

System Testing vs Integration Testing

  INTEGRATION TESTING           SYSTEM TESTING
  ───────────────────           ──────────────
  Tests module connections      Tests the whole application
  Partial system                Complete system
  Finds interface bugs          Finds end-to-end workflow bugs
  Done by developers/testers    Done by dedicated testing team
  Internal view                 External (user-perspective) view

Types of Tests Performed During System Testing

Functional System Tests

Verify that all features listed in the requirements document work correctly. Each requirement gets at least one test case.

GUI Testing

Checks the graphical user interface — that buttons, menus, forms, icons, and navigation behave correctly and match the approved design.

  GUI Test Checklist:
  ✔ Button labels are correct
  ✔ Form fields accept correct input types
  ✔ Error messages display in the right location
  ✔ Navigation links go to the correct pages
  ✔ Date picker allows only valid date ranges

Data Integrity Testing

Verifies that data entered at one point of the system appears correctly at all other points. If a user updates their phone number in their profile, the new number must appear in the admin panel, in receipts, and in any other place that displays it.

Error Handling Testing

Deliberately triggers errors to verify the system handles them gracefully — showing helpful messages, logging the error, and continuing without crashing.

Recovery Testing

Checks that the system can recover from failures like power loss, server crash, or network disconnection — and return to a consistent state without data loss.

The System Testing Environment

System testing requires an environment that closely mirrors the production environment — the same operating system, database version, server configuration, and network setup. Testing in a drastically different environment can produce results that do not reflect how the software behaves in real-world conditions.

  TEST ENVIRONMENT          PRODUCTION ENVIRONMENT
  ───────────────           ──────────────────────
  Should match exactly  →   Real servers, real data
  Same OS version           Same OS version
  Same database version     Same database version
  Similar server specs      Actual server specs
  Anonymised test data      Real user data

System Testing Entry and Exit Criteria

Entry Criteria (When to Start System Testing)

  • All modules have passed integration testing.
  • The test environment is set up and ready.
  • All test cases are reviewed and approved.
  • Test data is prepared.

Exit Criteria (When to Stop System Testing)

  • All planned test cases have been executed.
  • No critical or high-severity bugs remain open.
  • Test coverage meets the agreed threshold.
  • A test summary report has been signed off.

Leave a Comment