0% found this document useful (0 votes)
48 views

System & Integration Testing

This document discusses different types of software testing including system integration testing, integration testing approaches, system testing, and acceptance testing. System integration testing ensures subsystems work together as a whole by verifying proper execution and interfacing. Common integration testing approaches include top-down, bottom-up, sandwich, and big bang. System testing focuses on functionality and performance. Acceptance testing demonstrates the system is ready for operational use by the client.

Uploaded by

Sheelaj Babu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views

System & Integration Testing

This document discusses different types of software testing including system integration testing, integration testing approaches, system testing, and acceptance testing. System integration testing ensures subsystems work together as a whole by verifying proper execution and interfacing. Common integration testing approaches include top-down, bottom-up, sandwich, and big bang. System testing focuses on functionality and performance. Acceptance testing demonstrates the system is ready for operational use by the client.

Uploaded by

Sheelaj Babu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

System & Integration Testing

Overview
➢ Testing
➢ System Integration Testing
➢ Integration testing & Approaches
➢ Stubs And Drivers
¤ Big bang
¤ Bottom up
¤ Top down
¤ Sandwich
➢ System testing
¤ Functional
¤ Performance
➢ Acceptance testing
➢ Conclusion
Testing
Testing is a systematic approach to find the
errors in system.
■ accomplished by exercising defects in
the system and revealing problems
■ failed test: an error was

demonstrated.
■ passed test: no error was found, so

far.
■ not used to show absence of errors in
software
■ does not directly reveal the actual bugs in
the code
System Integration Testing
▪ It is the testing of the sub-systems, as a
whole, to ensure that they work as a
system.

▪ verifies the proper execution of software


components and proper interfacing
between components within the solution.

▪ For eg. In case of lab thermostate changes


in the environment can affect the
performance of a system.
Integration Testing

✓ The Integration testing strategy determines


the order in which the subsystems are
selected for testing and integration.

✓ The entire system is viewed as a collection


of subsystems (sets of classes) determined
during the system and object design.

✓ Goal: Test all interfaces between


subsystems and the interaction of
subsystems.
Stubs and drivers
Driver

Tested
Unit

Stub

• Stub:
¤ A component, the TestedUnit depends on
¤ Partial implementation
¤ Returns fake values.
• Driver:
¤ A component, that calls the Tested
unit.
¤ Controls the test cases.
Approaches for Performing SIT

Common approaches to perform integration


testing:
• Top-down (from higher levels □ no
test drivers are needed)
• Bottom-up (from lower levels□ No test
stubs necessary)
• Sandwich (combination of
bottom-up and top-down □ no
test stubs and drivers needed)
• Big-bang (all components together)
Top−down Testing Approach

● Test the top layer or the controlling


subsystem first.
● Then combine all the
subsystems that are called by
the tested subsystems and test
the resulting collection of
subsystems.
● Do this until all subsystems are
incorporated into the test.
Bottom−upTesting Approach

● The subsystems in the lowest


layer of the call hierarchy are
tested individually.
● Then the next subsystems are
tested that call the previously
tested subsystems.
● This is repeated until all subsystems
are included.
● Drivers are needed.
Sandwich Testing Approach
*Combines top-down strategy with bottom-up strategy.
● The system is view as having three
layers
¤ A target layer in the middle
¤ A layer above the target
¤ A layer below the target
¤ Testing converges at the target layer
● How do you select the target
layer if there are more than
3 layers?
¤ Heuristic: Try to minimize the
number of stubs and drivers
Big Bang Approach
● Bring all components
together all at once.All
interfaces tested in one
go.
● Entry criteria
– all components have passed unit testing
● Exit criteria
– Test suite passes
System Testing

❖ Functional Testing
▪ Validates functional
requirements
❖ Performance Testing
▪ Validates non-functional
requirements
❖ Acceptance Testing
▪ Validates clients expectations
Functional Testing

Goal: Test functionality of system


● Test cases are designed from
the requirements analysis
document (better: user
manual) and centered around
requirements and key
functions (use cases).
● The system is treated as black
box.
● Unit test cases can be reused, but
new test cases have to
be developed as well.
Performance Testing

Goal: Try to violate non-functional


requirements.

● Test how the system behaves


when overloaded.
● Try unusual orders of execution
● Check the system’s response to
large volumes of data
Types of Performance Testing
● Stress Testing
¤ Stress limits of system

● Volume testing
¤ Test what happens if large amounts of
data are handled
● Configuration testing
¤ Test the various software and hardware
configurations
● Compatibility test
¤ Test backward compatibility with existing
systems
● Timing testing
¤ Evaluate response times and time to perform a
function
● Security testing
¤ Try to violate security
requirements
● Quality testing
¤ Test reliability, maintain- ability & availability
Acceptance Testing
● Goal: Demonstrate system is ready for
operational use

¤ Choice of tests is made by client


¤ Many tests can be taken from
integration testing
¤ Acceptance test is performed by the
client, not by the developer
● Alpha test:
¤ Client uses the software at the
developer’s environment.
¤ Software used in a controlled
setting, with the developer always
ready to fix bugs.
● Beta test:
¤ Conducted at client’s
environment (developer is not
present)
¤ Software gets a realistic
workout in target environ- ment
-:Conclusion:-
As we Know that Software testing is an
important part of the software development
process. It is not a single activity that takes
place after code implementation, but is part of
each stage of the lifecycle. A successful test
strategy will begin with consideration during
requirements specification. Testing details will
be fleshed through high and low level system
designs, and testing will be carried out by
developers and separate test groups after code
implementation.

You might also like