System Testing
in Software Engineering
Definition • Types • Techniques • Examples • Tools
"Quality is never an accident; it is always the result of intelligent effort." — John Ruskin
What is System Testing?
Definition: System Testing is a level of software testing where a complete and integrated software system is
tested to evaluate its compliance with specified requirements. It is a Black-Box testing technique performed
on a fully integrated system.
Level Approach Goal
3rd level in V-model, after unit & Black-box: testers don't see internal Validate end-to-end functionality of
integration testing code structure the complete system
Position in Testing Pyramid: Unit → Integration → System → Acceptance
Objectives of System Testing
Verify the system meets functional and non-functional Detect defects that were not caught during unit or
01 requirements
02 integration testing
Evaluate system behavior under realistic conditions Validate performance, security, usability, and
03 and environments
04 reliability attributes
Build confidence in the system before release to end Ensure compliance with business requirements and
05 users
06 specifications
Types of System Testing (Part 1)
Functional Testing
Verifies that the system functions according to functional requirements. Tests each feature or function of the software against the
specification.
Performance Testing
Evaluates how the system performs under a particular workload, including speed, scalability, stability, and resource usage under
load.
Security Testing
Identifies vulnerabilities, threats, and risks in the software. Tests authorization, authentication, data confidentiality, and
penetration resistance.
Usability Testing
Assesses how easy the system is to use. Focuses on the user interface, user experience, and accessibility standards compliance.
Types of System Testing (Part 2)
Regression Testing
Ensures that new code changes do not adversely affect existing functionality. Re-runs previous test cases after modifications.
Recovery Testing
Tests how well the system recovers from crashes, hardware failures, or unexpected errors, verifying data integrity after failure.
Compatibility Testing
Verifies that the system works across different browsers, operating systems, hardware configurations, and network environment s.
Reliability Testing
Evaluates system stability and uptime over a period of time to ensure it meets its MTBF (Mean Time Between Failures) targets.
System Testing Techniques
Equivalence Partitioning Boundary Value Analysis
Divides input data into partitions that should behave the same,
Tests at the edges of input ranges. For example, if a field accepts 1-
reducing the number of test cases needed while maintaining
100, tests values 0, 1, 2, 99, 100, 101.
coverage.
State Transition Testing Use Case Testing
Focuses on the system's states and transitions between them. Derives test cases from use cases that describe user-system
Validates correct behavior during state changes. interactions to verify end-to-end scenarios.
Decision Table Testing
Uses a table to capture complex business logic with various input combinations and their corresponding actions.
Real-World Examples
Scenario: Login, browse products, add to cart, checkout, payment, order confirmation
E-Commerce Platform
Test Focus: Verify the entire purchase workflow works seamlessly end-to-end across all modules
Scenario: User transfers funds between accounts with different currencies
Banking System
Test Focus: Validate that debit, credit, currency conversion, and transaction logs all work correctly
Scenario: Patient registration → doctor assignment → prescription → billing
Hospital Management
Test Focus: Ensure data flows correctly between patient, medical, and billing subsystems
Scenario: User books ride → driver accepts → GPS tracking → payment deduction
Mobile App (Ride-Sharing)
Test Focus: Test integration of GPS, payment gateway, notifications, and database updates
System Testing Process
1 2 3 4 5 6
Test Environment
Test Planning Test Design Test Execution Defect Reporting Test Closure
Setup
Define scope, objectives, Configure hardware, Document bugs with
Create test cases, test Run test cases, log actual Analyze test results,
resources, schedule, and software, and network severity/priority levels and
scripts, and test data based results, and compare prepare reports, and
test environment environments that mirror assign to development
on system requirements against expected outcomes obtain sign-off for release
requirements production team
Popular System Testing Tools
Selenium JMeter LoadRunner
Functional / Web UI Performance Testing Performance Testing
Open-source load testing tool. Simulates Enterprise-grade tool by Micro Focus. Tests
Automated browser testing across Chrome,
high traffic to measure throughput and performance under thousands of
Firefox, Edge. Supports Java, Python, C#.
response times. concurrent users.
OWASP ZAP TestRail Postman
Security Testing Test Management API / Functional
Finds vulnerabilities in web applications. Organizes test cases, tracks execution
Tests REST APIs, validates responses, and
Runs automated scans for common security progress, and integrates with CI/CD
automates API test suites via collections.
issues. pipelines.
Advantages & Challenges
✓ Advantages ✗ Challenges
✓ Covers the entire system holistically, not just individual
✗ Time-consuming and resource-intensive process
units
✓ Detects integration issues missed by unit/integration ✗ Requires complete system integration before testing can
testing start
✓ Validates real-world workflows from the user's
✗ Identifying root cause of failures can be complex
perspective
✓ Identifies non-functional issues (performance, security) ✗ Test environment setup can be costly to maintain
✓ Increases stakeholder confidence before deployment ✗ Difficult to cover all possible user scenarios
Key Takeaways
System Testing validates the complete integrated software against requirements
It is a Black-Box technique — testers focus on behavior, not internal code
Covers Functional, Performance, Security, Usability, and Regression types
Follows a structured process: Plan → Design → Setup → Execute → Report → Close
Tools like Selenium, JMeter, and OWASP ZAP automate and enhance testing
Essential for ensuring software quality, reliability, and user satisfaction