Unit - 3: Integration Testing, System Testing, Interaction Testing
Unit - 3: Integration Testing, System Testing, Interaction Testing
SHIVANJALI KESHARWANI
Features of Integration Testing
Interaction Testing- It focuses on the communication between the different modules
or components ,how they work well together
Interface Validation- It effectively validates the interfaces between the modules. This
involves checking data exchange, method calls and communication protocols
Dependency management –It ensures that changes in one module does not impact
the other interconnected modules adversely
Incremental approach – It proceeds in an incremental fashion starting from
individual units and gradually integrating them to form larger components which
helps to detect the integration issues early.
Types of integration – Each type of integration testing (top-down,bottom-up etc. )
focuses on a integrating components in a specific order.
SHIVANJALI KESHARWANI
Features of Integration Testing
SHIVANJALI KESHARWANI
Types of Integration testing
Integration
testing
SHIVANJALI KESHARWANI
1. Decomposition based Integration
Decomposition-based integration testing is an approach used to test the interfaces among
separately tested units. In this view of integration, all the units are compiled together and tested
at once. They are of following types :
1. Top-Down Integration: This approach starts with the highest-level modules and progressively
integrates lower-level modules. It’s like building a pyramid from the top down.
2. Bottom-Up Integration: Here, we begin with the lowest-level modules and gradually integrate
higher-level modules. It’s akin to constructing a pyramid from the bottom up.
3. Sandwich Integration: This combines elements of both top-down and bottom-up approaches. It
integrates some high-level modules, then adds lower-level modules, creating a “sandwich” effect.
SHIVANJALI KESHARWANI
1.1 Top-Down Integration testing
In this strategy ,the focus is on integrating and testing the main control
modules or components first followed by the integration of subordinate
modules .
The top-down testing strategy deals with the process in which higher level modules are
tested with lower level modules until the successful completion of testing of all the
modules.
Major design flaws can be detected and fixed early because critical modules tested first. In
this type of method, we will add the modules incrementally or one by one and check the
data flow in the same order.
SHIVANJALI KESHARWANI
1.1 Top-Down Integration testing -
Working
SHIVANJALI KESHARWANI
1.1 Top-Down Integration testing-
Example
Suppose we have an online banking application with the following modules:
1. Authorization Module: Responsible for user authentication and authorization.
2. Personal Cabinet Module: Displays user account information, transaction history, and
other personal details.
Integration Testing Objective:
Our goal is to ensure correct integration between the “Authorization” module and the
“Personal Cabinet” module. Specifically, we want to verify that user data is displayed
accurately in the personal cabinet after successful authorization
SHIVANJALI KESHARWANI
1.1 Top-Down Integration testing-
Example
Steps for Top-Down Integration Testing:
1. Start from the Top Module (Authorization):
1. Begin by performing unit testing on the “Authorization” module alone.
2. Ensure that user login, session management, and access control work as expected.
2. Integrate Lower Modules (Personal Cabinet):
1. Next, integrate the “Personal Cabinet” module with the “Authorization” module.
2. Verify that user data (such as account balances, transaction history, and profile details) is
correctly retrieved and displayed in the personal cabinet.
SHIVANJALI KESHARWANI
1.1 Top-Down Integration testing-
Example
3. Stubs and Drivers:
1. During integration, use dummy programs called stubs and drivers.
2. Stubs simulate the behavior of unintegrated lower-level modules, producing
the same output as the actual components.
3. The main module (in this case, the “Authorization” module) serves as the test
driver, while stubs replace components directly under its control.
4. Gradually replace stubs with actual components to complete the integration.
SHIVANJALI KESHARWANI
1.1 Top-Down Integration testing-
Example
What Are Stubs and Drivers?
•Stubs:
• Act as temporary replacements for lower-level modules (modules
that are called by the module under test).
• They simulate the behavior of the actual module by returning
hardcoded or expected outputs.
• Used in top-down integration testing.
•Drivers:
• Used to call and test a lower-level module when the higher-level
modules (which would normally call it) are not yet available.
• Essentially serve as a temporary caller or “main” function.
• Used in bottom-up integration testing.
SHIVANJALI KESHARWANI
1.1 Top-Down Integration testing
Advantages:
• Identification of defect is difficult.
• An early prototype is possible.
Disadvantages:
• Due to the high number of stubs, it gets quite complicated.
• Lower level modules are tested inadequately.
• Critical Modules are tested first so that fewer chances of defects.
SHIVANJALI KESHARWANI
1.2 Bottom –up Integration Testing
SHIVANJALI KESHARWANI
1.2 Bottom –up Integration Testing-
Working
SHIVANJALI KESHARWANI
1.2 Bottom –up Integration Testing-
Example
E-commerce application :
• Lowest Level modules : Payment processing,Inventory management
• Higher level module : order fulfillment
1. Lowest Level module testing :
Testing the Payment processing module responsible for payment transactions ,functionality like
payment validation ,processing with bank is verified and tested
Inventory management that tracks the product availability is checked.
2. Higher- Level Module testing :
Integrating the Inventory management module with payment processing module
Drivers are used to simulate the Order Fulfillment (higher level module)module’s behavior
Inventory management and Payment processing are tested in conjunction
SHIVANJALI KESHARWANI
1.2 Bottom –up Integration Testing-
Example
3. Further Integration : The order fulfillment is integrated with Payment processing and Inventory
management modules .
Drivers are replaced with actual modules as they become available
Order processing and shipment handling are tested in integrated system
4. Complete System Testing :
Once all the modules are integrated ,end-to-end testing is performed to ensure that the entire
e-commerce application functions correctly.
Data flow ,error handling and system performance are evaluated as a whole.
SHIVANJALI KESHARWANI
1.2 Bottom –up Integration Testing
1. Advantages:
1. Early Detection: Bottom-up testing identifies issues at the component level, allowing early
detection of defects.
2. Parallel Development: Developers can work on individual modules simultaneously.
3. Focused Testing: Each module is thoroughly tested before integration, ensuring robustness.
2. Disadvantages:
1. Stubs Required: Stubs (dummy programs) are needed for untested modules during integration.
2. Complexity: Assembling the entire system from the bottom up can be complex.
3. Integration Effort: The effort required for integration increases as more components are added
SHIVANJALI KESHARWANI
1.3 Sandwich integration testing
Testing begins by integrating and testing main control modules at the top
level and individual modules are the bottom level in parallel.
As testing progresses, integration moves towards middle layer,where both
components are integrated.
Such integration is tested for interactions between the top and bottom
layer.
Integration is then done incrementally maintaining the interactions go
smoothly and finally a comprehensive test ,checks for the entire system
integrity
SHIVANJALI KESHARWANI
1.3 Sandwich integration testing-
Example
Social Media Platform
Advantages:
• Fault localization is easier. If a fault is found during testing, it is easier to localize because it
is likely to be caused by a top-level module or a lower-level module that has already been
tested.
• Time- savings. Testing can start earlier because you don't have to wait until all modules
are developed.
• Critical modules are tested in priority order. This can help identify and fix critical bugs
early in development when fixing them is easier.
Disadvantages:
• More stubs and drivers are required.
• Lower-level modules may not be tested adequately.
SHIVANJALI KESHARWANI
2.Call Graph Based Testing
Call Graph-based Integration Testing is an approach that uses the call graph to analyze the relationships
between different modules or components in a software system to guide integration testing.
By examining the call graph,testers can identify the flow of control and data between components .This helps
in identifying the priorities for integration testing based on dependencies.
• The call graph is a directed, labeled graph that shows how a module or function calls each other.
• Each module or function is a node or Vertex
• Vertices represent program units (e.g., methods or functions).
• Directed edges connect calling vertices to called vertices.
• It captures the calling relationships between different program units.
• It avoids the effort of development of stubs and drivers.
SHIVANJALI KESHARWANI
Call Graph Based Testing –
Characteristics
Call graph generation-illustrates the relationships between the modules or
functions in the software system.
Identifying dependencies-analysis of call graphs to identify the
dependencies between the components like function calls ,data
exchange, control flow
Prioritizing Integration Testing- priorities are set based on dependencies and
interactions to focus on critical paths and interactions between modules.
Testing scenarios – Test cases are developed to cover interactions identifies
in call graph.
Regressing testing- when changes are made to the software, testing helps
in identifying potential regression issues.
SHIVANJALI KESHARWANI
Call-graph Based Integration testing
Advantages Disadvantages
Dependency visualization Complexity
Focused Testing Dynamic environments
Early issue detection Tool dependency
Efficient testing
SHIVANJALI KESHARWANI
Example-Call Graph Based Integration
testing
SHIVANJALI KESHARWANI
Call graph testing-Types
SHIVANJALI KESHARWANI
2.1 Pairwise Integration Testing
SHIVANJALI KESHARWANI
Example
SHIVANJALI KESHARWANI
Example : Searching a you tube video
based on different filters
Upload
Type Duration Features Sort By
date
Under 4
Last hour Video Live Relevance
min
Upload
Today Channel 4-20 min 3D
date
Above 20 360
This week Playlist Rating ..
min degree
SHIVANJALI KESHARWANI
Example -explanation
SHIVANJALI KESHARWANI
Example continues (PTI)
If there is a bug with test case 1 ,for (A,M) and test case 6 (M,Y) ,we can
discard test case 2 ,as the same has been tested in test case 2
SHIVANJALI KESHARWANI
Characteristics –Pairwise Testing
SHIVANJALI KESHARWANI
Working-
SHIVANJALI KESHARWANI
Pairwise Integration testing
Advantages Disadvantages
Efficient coverage Dependency identification can
be challenging
Focuses testing
Test case design complexity
Early issue identification
Dynamic systems
Reduced test effort
Limited scope
Optimized testing
Maintenance overhead
SHIVANJALI KESHARWANI
2.2 Neighbourhood Integration testing
The neighbourhood of a node is the node that is one edge away from the
node
This testing focuses on testing the interactions and integration between
modules or components under test and its neighbouring modules or
components within a software system .
It ensures smooth functioning and integration with neighbouring modules .
Last Monday of
may in US
memorialDay
celebrated in has
memory of US
military personnel
neighbour as
isMonday
A day which is
Friday and has
date 13
considered as
unlucky in US SHIVANJALI KESHARWANI
Characteristics
SHIVANJALI KESHARWANI
Working
SHIVANJALI KESHARWANI
Ecommerce
Example
1. Cluster Identification :
All modules due to their
dependencies, are identified User Product
as neighbourhood clusters Shopping cart
Authentication Catalogue
Advantages Disadvantages
Focused testing Limited scope
Early issue detection Dependency risks
Improved collaboration Integration gaps
Efficient testing Complexity management
Enhanced stability Maintenance challenges
SHIVANJALI KESHARWANI
3. Path Based Integration Testing
SHIVANJALI KESHARWANI
Characteristics- PB testing
Path
Identification
Path
selection
Data flow
validation
Control flow
verification
Error handling
testing
Integration
SHIVANJALI KESHARWANI
point testing
Working- PB Testing
6.
4.Path 5.Result
execution analysis Issue
Resolution
SHIVANJALI KESHARWANI
Example- PB Testing
1. Identify Paths : User
All Paths for fund transfer Authentic
ation
2. Path Selection Updating
Select the critical path for fund a/c Selecting
transfer balances & transfer
Send option
3. Design test cases : notification
Funds
Transfer
Processing Entering
the transfer
transfer option
Verifying
transactio
SHIVANJALI KESHARWANI n
Path-1 :All valid
User Authentication → Select Transfer Option → Enter Details → Verify → Process → Update &
Notify
Test Case: All correct inputs
Expected Result: Transfer success, notification sent
Path-2 :(Authentication Failed):
User Authentication → [Fail] → Terminate
Expected Result: Show error, stop process
Path-3 (Invalid Transfer Option):
User Authentication → Select Transfer Option → [Invalid Entry] → Terminate
Expected Result: Show input error, stop process
Path-4 (Verification failed)
User Authentication → Select Transfer Option → Enter Details → Verify → [Fail] → Terminate
Expected Result: Verification failure message, no funds transferred
Path-5 (Transfer Process Error):
User Authentication → Select Transfer Option → Enter Details → Verify → Process → [Fail] →
Terminate
Expected Result: Processing error, rollback initiated
SHIVANJALI KESHARWANI
Levels of Testing
Unit Testing
Integration testing
System testing
SHIVANJALI KESHARWANI
Waterfall model
SHIVANJALI KESHARWANI
Waterfall Model
SHIVANJALI KESHARWANI
Coding
Alternative life cycle methods
New alternative models have been devised to replace the existing drawbacks of e
Shifting from functional decomposition to composition models
Functional decomposition is fit for Top-don and bottom-up -> This requires complete knowledge
of the requirement before itself .
This results in a big gap between the requirement specification to completed system
Alternative to this is COMPOSITION is closer to how people work actually
Composition means gradually
adding units
development
increment
evolving units
This is like a big bang development where every phase runs in parallel together. It reuires removing
unwanted andKESHARWANI
SHIVANJALI adding the required ones
Waterfall Spin offs
SHIVANJALI KESHARWANI
Requirement
Detailed design specification
Preliminary Design
Coding
Series Build
Unit testing
Integration testing
SHIVANJALI KESHARWANI
Regressing testing
Progressing Testing
Other models
SHIVANJALI KESHARWANI
SATM System
Simple Automated Teller Machines
It is designed as a teaching tools or simplified version of a commercial ATM
system containing only the essential features required to perform basic ATM
functions like transactions and user interactions.
SATM system consists of two components :
Screens and Terminal Layouts : The screen illustrates the user interface flow, that
demonstrates how the users interact with the system through various screens. For
example : entering PIN,selecting transaction type,receiveing notificaitons etc.
The SATM terminal : It details the physical components of the ATM such as the
ATM such as the keyboard for input, a screen for display,a card reader,receipt
printer and cash dispensing units.This is crucial in understandin user interactions
with the system and planning the physical security measures and usability testing.
SHIVANJALI KESHARWANI
SATM System
Simple Automated Teller Machines
To understand the SATM system, we use three complementary models:
• Functional Model: Represented using dataflow diagrams.
• Data Model: Utilizes the Entity-Relationship (E/R) model.
• Control Model: Modeled as a finite state machine
SHIVANJALI KESHARWANI
1.Functional Model :
•Context Diagram: Provides an overview of the SATM system’s interactions with external entities.
•Level 1 Data Flow Diagram: Breaks down the system’s processes and data flows
SHIVANJALI KESHARWANI
1.Functional Model :
•Level 1 Data Flow Diagram: Breaks down the system’s processes and data flows
SHIVANJALI KESHARWANI
1.Functional Model :
Simple ATM System : Central to the diagram is the ATM machine that
External Entities and interactions :
Terminal Keys : users input data like PIN, transaction choices ,which are processed by the ATM
system.
Terminal Screen : Displays transaction information ,instructions and prompts to the user controlled
by the ATM system based on the user inputs and transaction status.
Terminal Slots and doors : for card inputs,money dispensing,receipt printing .The ATM system sends
commands based on user requests and transaction requirements.
Data flows :
Keystrokes to system: data from user inputs to ATM for processing
Information to screen : data from ATM system to the screen
Commands to slots/doors : control commands for mechanical actions like closing and opening
doors/slots for money dispensing,card accesing etc.
Integration with Central Bank : ATM communication to central bank for
▪ Authenticate transactions
▪ Check balance
▪ Account updates
SHIVANJALI KESHARWANI
SHIVANJALI KESHARWANI
2. Data Model (Entity/Relationship Diagram):
Relationships :
• Has –
• Uses-
• Occurs-
• Session-
SHIVANJALI KESHARWANI
3. Control Model (Finite State Machine):
While dataflow and E/R models focus on structure, the control model addresses system
behavior.
The SATM system’s behavior is captured using a finite state machine.
Finite state machines can be hierarchically decomposed to represent different system
states and transitions . The following example is for PIN entry process
SHIVANJALI KESHARWANI
3. Control Model (Finite State Machine):
1. States :
1. Idle
2. Legitimate card Display Screen S2
3. Awaiting First PIN try
4. Awaiting Second PIN try and Awaiting Third PIN try
5. Correct PIN Display Screen S5
6. Awaiting Transaction choice
2. Transitions :
1. From Idle to legitimate card
2. Incorrect PIN
3. Correct PIN
There are three levels of testing amongst which System testing focuses
on customer’s expectations based on his requirements.
It doesn’t focuses on finding faults but to demonstrate performance
The testing has an approach towards testing performance and
functional attributes rather than structural aspects.
“System testing is the phase in the software testing process where the
complete integrated system is evaluated to ensure that it meets specified
requirements”.
Characteristics :
Granularity- taking and verifying PIN
Independence- entering PIN can be tested independently
Specificity- has clear ,concise purpose- accepting and verifying PIN
Self-contained – This function includes all the logic needed to accept user input and
verify the PIN against stored data
Test Scenarios :
Correct PIN
Precondition : stored PIN is 1234
Test input : user enters 1234
Expected outcome : PIN is verified successfully and the system proceeds to the next
steps
MADE BY SHIVANJALI KESHARWANI
Example ––Withdrawal function in ATM
Incorrect PIN :
Precondition : stored PIN is 1234
Test input : user enters 4231
Expected outcome : PIN verification fails and the system prompts the user to re-
enter the PIN
Maximum attempts exceeded :
Precondition : stored PIN is 1234,the user has already entered incorrect PIN twice
Test input : user enters 4231
Expected outcome : PIN verification fails ,the system locks the card ,and the user
is prompted to contact their bank.
1. Unit level Threads : Smallest testable parts of a system like individual functions or
methods within a module.
Eg .
Function: add(a, b)
• Thread: Test the function with different pairs of numbers to ensure it returns
the correct sum.
• Test Cases: add(2,3), add(-l, 5), add(0,0]
Validation Function:
• Function: isValidEmail(email)
Thread: Check the function with different email formats to ensure proper
validation.
Test Cases-. isValidEmail[”[email protected]“)->true ___________
isValidEmail["ss@gmaii")
MADE BY SHIVANJALI KESHARWANI -> false
Different Types of Threads
2. Integration level Threads :focus on interactions between different modules or components to
ensure they work together correctly.
Database Interaction
Scenario: Test the interaction between a data access module and the database.
Thread: Verify that data is correctly retrieved, inserted, updated, and deleted.
Test Cases ; Retrieve user data, insert a new record, update an existing record, delete a record.
(CRUD)
3. System level Threads :System-level threads involve testing the complete and integrated
system to ensure it meets the specified requirements. These threads simulate real-world
usage scenarios.
E-commerce Checkout Process
Scenario: Test the entire checkout process in an e-commerce application.
Thread ; Simulate a user selecting items, adding them to the cart, entering shipping information,
making a payment, and receiving an order confirmation.
Test Cases: Add items to cart, proceed to checkout, enter shipping details, select payment
method, complete payment,
MADE BY SHIVANJALI verify order confirmation
KESHARWANI
Thread possibilities
The endpoints of threads needs to be defined as in where they start and where they
end.
This is done using graph theory based definitions.
In graph theory, the threads can be viewed as series of nodes interconnecting each
other with a definite start and end points .
By working backward from the outcome, we can trace the entire user journey through
the system
Here there are four candidate threads in our SATM system
Entry of a digit - simplest ,granular thread representing Min ASF – Port input,Port output –
Stimulus /response pair
Entry of PIN – common ASF ,which acts as a bridge b/w integration Testing and system testing
A simple transaction : ATM card entry,PIN entry ,select transaction ,present account details, and
reports the results -
An ATM session containing two or more simple transactions
3. The simple transaction – This thread represents a complete, end-to-end user transaction
commonly executed by customers.
Sequence:
1. Card Entry: User inserts ATM card.
2. PIN Entry: User enters their PIN.
3. Transaction Selection : User selects the transaction type (e.g., deposit or withdrawal).
4. Account Details: User provides account details (checking or savings, amount).
5. Conduct Operation: The system processes the transaction.
6. Report Results: The system reports the transaction results and returns the card.
This is a good example of a system-level thread involving the interaction of several ASFs. It ensures
the end-to-end completion of a transaction, making it an ideal candidate for system testing.
MADE BY SHIVANJALI KESHARWANI
Basic concepts for requirements
specification
Every system can be modeled in terms of some five
fundamental concepts and every requirements
specification model uses some combination of these.
Data
Each concept plays a crucial role in defining how a
system operates and how it can be tested effectively.
Threads Action
Requirement
Specifications
data
Basic concepts for requirements
specification
ACTION
operations performed by the system
• transforms, processes, activities, tasks, methods, or
services.
• Actions have inputs and outputs, which can be data
or events.
• They can be decomposed into lower-level actions,
particularly in methodologies like Structured Analysis
with data flow diagrams.
Example: The SATM system includes devices such as the keypad for
entering PINs, the display screen for showing prompts and transaction
results,
MADE the
BY SHIVANJALI card reader for reading ATM cards, and the cash dispenser
KESHARWANI
In system testing, threads are sequences of actions and events that represent user
interactions within the system to achieve specific goals.
We need to define and identify these threads for comprehensive system testing.
Solution - > Use A graph theory-based approach.
Finite state machines (FSMs) are a powerful tool for modeling these threads, as they
capture the stages of processing and the transitions between them caused by various
events.
States: Represent different stages in a process, each reflecting a specific condition or situation
within the system. For example, in an ATM system, states can include "Card Entry," "PIN Entry,"
and "Transaction Processing.”
Transitions: These are the changes from one state to another, triggered by events such as user
inputs or system conditions. In the ATM example, a transition occurs when a user inserts a card,
moving from the "Idle" state to the "Card Entry" state.
MADE BY SHIVANJALI KESHARWANI
General steps for finding thread
Transitions:
• Digit Entry
• Cancel
• Correct PIN
MADE BY SHIVANJALI KESHARWANI
• Incorrect PIN.
General steps for finding thread
Output Events
• Legitimate Card: Display Screen 2
• Wrong Card: Display Screen 1
• Correct PIN: Display Screen 5
• Incorrect PIN: Display Screen 4
• Cancelled: Display Screen
For detailed interactions, use lower-level FSMs like the Detailed PIN Entry
MADE BY SHIVANJALI KESHARWANI
State Machine to capture fine-grained user interactions
General steps for finding thread
Path: Card Entry-> PIN Entry (Correct PIN)-> Await Transaction Choice
Path: Card Entry-> PIN Entry (Incorrect PIN)-> Retry Correct PIN -> Await
Transaction Choice
Path: Card Entry-> PIN Entry (Partial Entry)-> Cancel Eject Card
MADE BY SHIVANJALI KESHARWANI
General steps for finding thread
Structural strategies for thread testing focus on the system’s architecture and its underlying
state machines (FSMs). These strategies ensure that all possible paths, nodes, and edges in the
state machines are covered during testing.
The goal is to achieve comprehensive coverage by testing all possible transitions and states to
ensure that every part of the system's structure is validated.
• Node coverage is a
fundamental metric in FSM-
based testing.
• It ensures that every state in "PIN Entry,"
the state machine is visited at
least once during testing
confirming that no nodes are
skipped. ""Await Transaction
Choice"
Introduction
A Taxonomy of Interactions
Static Interaction in a Single Processor,
Static Interaction in Multiple Processors,
Dynamic Interaction in a Single Processor,
Dynamic Interaction in Multiple Processors, Client-Server Testing.
Interaction testing aims to identify and address these issues by focusing on how
different parts of the system interact under various conditions
MADE BY SHIVANJALI KESHARWANI
Features or Characteristics of CC-SS-CARD
Interaction testing
1. Component Interaction Analysis: Examines how different parts of the system work together.
2. Complex Dependency Testing: Identifies and tests complex dependencies between
components.
3. Scenario-Based Testing: Uses various scenarios to simulate real-world conditions and
interactions.
4. Sequential Event Validation: Checks for issues that arise from specific sequences of events.
5. Comprehensive Coverage: Ensures all possible interactions are tested for faults.
6. Automated Test Execution: Utilizes automated tools to efficiently test numerous interaction
scenarios.
7. Risk-Based Prioritization: Focuses on interactions with the highest potential impact on
system performance.
8. Dynamic Testing: Adapts to changes in the system and tests new interactions as they arise.
MADE BY SHIVANJALI KESHARWANI
Taxonomy of Interaction testing
Interaction
testing criteria
Time Position
Time
Dependent
MADE BY SHIVANJALI KESHARWANI
Types of Interactions –Time
Interaction testing
criteria
1. Static Interactions in a Single Processor: Interactions independent of time within a single processor.
Example:: Accessing and displaying the ATM's welcome screen. When a user approaches the ATM the
machine's processor fetches the static welcome message stored in its local memory and displays It on the
screen. The timing of this interaction is irrelevant; the welcome message will alwaj/s be the same,
regardless of when it is accessed or displayed.
2. Static interactions in Multiple Processors: Time-independent interactions across multiple processors.
Synchronizing static data between different processors to maintain consistency
Example: Synchronizing static configuration data between the ATM and the central server For instance,
updating the list of supported languages or currencies in the ATM. The central server periodically sends
updated static data to all connected ATMs to ensure consistency This process is independent of the specific
timing of individual updates as long as the data remains consistent across the network
Web applications often utilize client-server architecture, with the user’s web
browser (client) sending requests to a web server for data or services. In this
scenario, client-server testing involves ensuring that web pages load
correctly and that user interactions, such as form submissions, result in
proper data transmission and server responses.
Test Scenario 1: Simulate a user registration process on a web application.
Verify that user data entered via the client-side form is correctly transmitted
to the server, stored in the database, and retrievable upon subsequent
logins.
Components Tested: Client, Web Server, Database
Test Scenario 2: Test email synchronization between the email client and
the email server (e.g., IMAP). Ensure that newly received emails are
correctly displayed in the client’s inbox and that read / unread statuses are
synchronized with the server.
Components Tested: Email Client, Email Server, Database.
2. Client:
Role: The client is the interface through which users interact with the system,
tr user interface (UI) and presentation logic.
Functions: The client sends requests to the server (e.g., querying account
balance submitting transaction requests) and displays the server's responses
to the user
Example: In the same banking system, the client would be the application
on a user’s smartphone or computer or ATM through which they access
their account inform and perform banking operations.
3. Network:
Role: The network is the medium that connects the clients to the server to
communication between them.
Functions: It facilitates data transmission to ensure that requests and responses
can travel back and forth between the client and server reliably and
efficiently.
Example: The internet or a private organizational network (intranet) serves as
the network connecting clients and servers in a banking system.
Client-server systems can be categorized based on where the majority of processing takes
place: on de client side or the server side.
1. Fat Client:
In a fat client architecture, most of the processing and computational tasks are performed
on the client side. The server's primary role is to manage data storage and handle requests
for data retrieval.
Benefits: This approach can reduce the load on the server since much of the processing is
distributed to the clients. It can also lead to faster response times for the user since the
client does not have to wait for the server to process every request.
Drawbacks: Fat clients can be more complex to maintain and update since the
application logic resides on the client devices. This can lead to inconsistencies if clients are
not uniformly updated.
Example: A graphics-intensive application where rendering and processing of images are
done on the client device, while the server stores the image files and handles data
requests.MADE BY SHIVANJALI KESHARWANI
Types of Client Server Systems
2. Fat Server:
Description: In a fat server architecture, most of the processing is done on the server
side. The client is primarily responsible for managing the user interface and handling
input/output operations.
Benefits: This approach simplifies client devices since they only need to handle the
presentation logic. It also centralizes the application logic, making maintenance and
updates easier and more consistent.
Drawbacks: Fat server architectures can place a significant load on the server,
especially if there are many clients. This can lead to scalability issues and the need for
powerful server hardware.
Example: Web applications where the server handles all the business logic and
database operations, while the client (web browser) simply renders the user interface
and captures user input.
MADE BY SHIVANJALI KESHARWANI
Challenges in Client-Server Testing
1.Complex Interactions: The dynamic interactions between clients and servers across
multiple processors can be difficult to predict and test.
2. Network Issues: Network latency, packet loss, and bandwidth constraints can affect
the performance and reliability of client-server communications.
3. Concurrency: Handling multiple simultaneous requests without data corruption or
performance degradation requires robust concurrency control mechanisms.
4. Security: Ensuring secure data transmission and protecting against threats such as SQL
Injection, cross-site scripting, and man-in-the-middle attack
5.Data Consistency: Ensuring that data remains consistent across the client and server,
especially in the face of concurrent updates.
Analyze Results: Analyze the test results to identify any issues or inconsistencies in
the client-server Interactions
.Example: Check if the server correctly handles multiple simultaneous balance
inquiries without causing data inconsistencies.
Fix Issues and Retest: Correct any identified issues and perform retesting to ensure
that the are solutions effective.
Example: If an issue is found in handling concurrent transactions, fix the server logic
and retest with multiple ATMs
Security Testing: Ensure that data transmitted between the client and server is
secure and that the system can withstand potential security threats.
Example: Test for SQL, Injection, cross-site scripting (XSS), and secure data
transmission protocols (eg, HTTPS).