0% found this document useful (0 votes)
67 views40 pages

Integration - Testing Curs 6

Integration testing involves combining individual software modules into groups and testing them together. It occurs after unit testing and before system testing. There are different types of integration testing such as big bang testing, top-down testing, bottom-up testing, and sandwich testing. Big bang testing integrates all modules at once without formal testing, which can lead to many defects being found late. Top-down testing starts with the highest level modules and progressively adds lower level modules using stubs. Bottom-up testing starts with the lowest level modules and integrates higher level modules using drivers. Sandwich testing combines top-down and bottom-up approaches.

Uploaded by

Stelian Mitu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views40 pages

Integration - Testing Curs 6

Integration testing involves combining individual software modules into groups and testing them together. It occurs after unit testing and before system testing. There are different types of integration testing such as big bang testing, top-down testing, bottom-up testing, and sandwich testing. Big bang testing integrates all modules at once without formal testing, which can lead to many defects being found late. Top-down testing starts with the highest level modules and progressively adds lower level modules using stubs. Bottom-up testing starts with the lowest level modules and integrates higher level modules using drivers. Sandwich testing combines top-down and bottom-up approaches.

Uploaded by

Stelian Mitu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 40

Integration testing

Ernestas Kardzys, IFME-0/2


[email protected]
www.ernestas.info
http://www.ernestas.info/ktu/pt/Integration_Testing.pptx
Agenda
What Is Integration Testing?
Terminology
Different Types of Integration Testing:
◦ Big Bang Testing
◦ Top-down Testing
◦ Bottom-up Testing
◦ Performance vs. Load vs. Stress Testing
◦ Sandwich Testing
Questions For The Audience
Discussion
Literature

2
Definition of Integration Testing
Integration testing ("I&T") is the phase in
software testing in which individual software
modules are combined and tested as a group.
It occurs after unit testing and before system
testing.
Integration testing takes as its input modules that
have been unit tested, groups them in larger
aggregates, applies tests defined in an integration
test plan to those aggregates, and delivers as its
output the integrated system ready for system
testing.
3
Why Do You Need Integration Testing?
To make sure that
your components
satisfy the fallowing
requirements:
◦ Functional.
◦ Performance.
◦ Reliability.

4
Terminology (1)
Stub – the dummy modules that
simulates the low level modules.
Driver – the dummy modules that
simulate the high level modules.
Top-down approach (also known
as step-wise design) - the
breaking down of a system to gain
insight into its compositional sub-
systems.
A bottom-up approach is the
piecing together of systems to
give rise to grander systems, thus
making the original systems sub-
systems of the emergent system.

5
Terminology (2)
Bottleneck – a phenomenon
where the performance or
capacity of an entire system is
limited by a single or limited
number of components or
resources.
Regression testing - any type of
software testing that seeks to
uncover new errors, or
regressions, in existing
functionality after changes have
been made to the software, such
as functional enhancements,
patches or configuration
changes.

6
What Is Big Bang Testing?
In Big Bang Integration testing,
individual modules of the
programs are not integrated
until every thing is ready. It is
called 'Run it and see' approach.
In this approach, the program is
integrated without any formal
integration testing, and then
run to ensures that all the
components are working
properly.

7
Disadvantages of Big Bang
Defects present at the interfaces of
components are identified at very late
stage.
It is very difficult to isolate the defects
found, as it is very difficult to tell
whether defect is in component or
interface.
There is high probability of missing
some critical defects which might
surfaced in production.
It is very difficult to make sure that all the
cases for integration testing are covered.

8
Big Bang Testing: Conclusion
This is not the way
you should integrate
and test software!

But it might be good


with this assumption
applied:
◦ for small systems, but
not for enterprise
level applications.

9
How To Integrate?
If Big Bang integration is bad, then how to
integrate?
The answer: incremental integration.

10
Bottom-up Integration Testing (1)
In bottom up integration
testing, module at the
lowest level are developed
first and other modules
which go towards the
'main' program are
integrated and tested one
at a time.
Bottom up integration also
uses test drivers to drive
and pass appropriate data
to the lower level modules.

11
Bottom-up Integration Testing (2)
As and when code for other
module gets ready, these drivers
are replaced with the actual
module.
In this approach, lower level
modules are tested extensively
thus make sure that highest used
module is tested properly.

12
Bottom-up Testing Graphical
Represenation

13
Comments on Graphical Representation
Modules E and F are tested. Then
modules B, E, F are tested.
 Module F is tested. Then modules F and
G are tested.
Module C is tested.
Finally – modules A, B, C, D, E, F, G are
tested.

14
Advantages of Bottom-up Testing
Behavior of the interaction points are
crystal clear, as components are added in
the controlled manner and tested
repetitively.
Appropriate for applications where
bottom up design methodology is used.

15
Disadvantages of Bottom-up Testing
Writing and maintaining test drivers is
more difficult than writing stubs.
This approach is not suitable for the
software development using top-down
approach.

16
Top-down Testing
Top down integration testing is an
incremental integration testing technique
which begins by testing the top level
module and and progressively adds in
lower level module one by one.
Lower level modules are normally
simulated by stubs which mimic
functionality of lower level modules.
As you add lower level code, you will
replace stubs with the actual components.

17
Advantages of Top-down Testing
Driver do not have to
be written when top
down testing is used.
It provides early
working module of
the program and so
design defects can be
found and corrected
early.

18
Disadvantages of Top-down Testing
Stubs have to be written with utmost care
as they will simulate setting of output
parameters.
It is difficult to have other people or third
parties to perform this testing, mostly
developers will have to spend time on
this.

19
Top-down And Bottom-up Testing:
Conclusion
You’ll probably use a
combination of these
two techniques.

It’s called Sandwich


testing strategy.

20
Sandwich Testing Strategy
 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

21
Graphical Representation of Sandwich
Testing Strategy
A
Level I

B C D
Test E Level II

E F G H
Level III

Bottom Test B, E, F
Level Test F
Tests
Test
Test G A, B, C, D,
Test D,G,H E, F, G, H

Test H

Test A,B,C, D

Top Test A
Level
Tests 22
Comments on Graphical Representation
Modules E and F are tested. Then B, E, F
are tested.
Modules G and H are tested. Then D, G,
H are tested.
Module A is tested. Then A, B, C, D are
tested.
Finally – modules A, B, C, D, F, G, H are
tested.

23
Sandwich Testing Strategy: Conclusions
Top and Bottom Layer
Tests can be done in
parallel.
Does not test the
individual subsystems
thoroughly before
integration.

24
Performance vs. Load vs. Stress testing
There are three main
types of speed-
related testing:
performance testing,
load testing and
stress testing.

25
Performance testing
The goal of
performance testing
is not to find bugs,
but to eliminate
bottlenecks and
establish a baseline
for future regression
testing.

26
Load Testing
Load testing is usually
defined as the process of
exercising the system
under test by feeding it
the largest tasks it can
operate with.
Load testing is
sometimes called
volume testing, or
longevity/endurance
testing.

27
Examples of Load Testing
Testing a word processor by editing a
very large document
Testing a printer by sending it a very large
job
Testing a mail server with thousands of
users mailboxes
A specific case of volume testing is zero-
volume testing, where the system is fed
empty tasks
28
Stress Testing (1)
Testing conducted to
evaluate a system or
component at or beyond
the limits of its specified
requirements to
determine the load under
which it fails and how.
A graceful degradation
under load leading to
non-catastrophic failure
is the desired result.

29
Stress Testing (2)
Stress testing tries to break
the system under test by
overwhelming its resources
or by taking resources
away from it (in which case
it is sometimes called
negative testing).
The main purpose behind
this madness is to make
sure that the system fails
and recovers gracefully --
this quality is known as
recoverability.

30
Recommendations for Integration Testing
OK, I want to test the software. Any
recommendations?

31
Steps of Integration Testing (1)
Select component to test
and unit test the classes of
the component.
Put selected component
into system. Do any
preliminary fix-up
necessary to make the
integration test operational
(drivers, stubs).
Define test cases that
exercise all uses cases with
the selected component

32
Steps of Integration Testing (2)
Define test cases that exercise
the selected component
Execute performance tests
…and once again with another
component…

The primary goal of


integration testing is to
identify errors in the
(current) component
configuration.

33
Main Point: Incremental Integration
All the units of a
system must be
integrated
consequtively and
integrated in step
by step process by
incrementing the
levels of testing at
one end to other end.

34
Questions For The Audience
What is the main difference between unit
testing and integration testing?
What is Big Bang testing?
What is the difference between bottom-up
and top-down testing?
What is stress testing?

35
Literature (1)
http://en.wikipedia.org/wiki/Unit_testing
http://en.wikipedia.org/wiki/System_integ
ration_testing
http://en.wikipedia.org/wiki/Integration_t
esting
http://msdn.microsoft.com/en-us/library/a
a292128%28v=vs.71%29.aspx
http://www.testinggeek.com/
http://swen.uwaterloo.ca/~kostas/ECE453
-06/lectures/Lect17-Ch13-Unit5-Part1.ppt
36
Literature (2)
http://www.debianhelp.co.uk/apacheab.ht
m
http://agiletesting.blogspot.com/2005/02/
performance-vs-load-vs-stress-testing.htm
l
http://en.wikipedia.org/wiki/Regression_t
esting
http://en.wikipedia.org/wiki/Bottleneck

37
Youtube Links
http://www.youtube.com/watch?v=J22IjX
lHI4Y&feature=feedu
[Lecture “Software Integration Testing”,
1:50].
http://www.youtube.com/watch?v=bgIAn
WfNLOw&playnext=1&list=PLF7935AF
A888C74E2
[“Integration Testing In Software Testing
Projects”, 5:46]
http://www.youtube.com/watch?v=czyoK
fWp6z4 38
Topics for Discussion
“Good test is the test which reveals
errors.” Is it?
Incremental integration is too expensive?
Try to integrate 200-300 components…
What is the best method for testing?

39
Thank You For Attention!
Ernestas Kardzys, IFME-0/2
[email protected],
www.ernestas.info
http://www.ernestas.info/ktu/pt/Integration_Testing.pptx

40

You might also like