8/7/2019 11305_Lect 33(Integration Testing)
1/10
8/7/2019 11305_Lect 33(Integration Testing)
2/10
Integration testingy Tests complete systems or subsystems composed of integrated
components
y Integration testing should be black-box testing with tests
derived from the specification
y Main difficulty is localising errors
y Incremental integration testing reduces this problem
8/7/2019 11305_Lect 33(Integration Testing)
3/10
Incrementa integration testing
T3
T2
T1
T4
T5
A
B
C
D
T2
T1
T3
T4
A
B
C
T1
T2
T3
A
B
Test sequence1
Test sequence2
Test sequence3
8/7/2019 11305_Lect 33(Integration Testing)
4/10
8/7/2019 11305_Lect 33(Integration Testing)
5/10
Top-down testing
Level 2Level 2Level 2Level 2
Level 1 Level 1Testing
sequence
Level 2stubs
Level 3stubs
. . .
8/7/2019 11305_Lect 33(Integration Testing)
6/10
Bottom-up testing
Level NLevel NLevel NLevel NLevel N
Level N1 Level N1Level N1
Testing
sequence
Testdrivers
Testdrivers
8/7/2019 11305_Lect 33(Integration Testing)
7/10
Testing approachesy Architectural validation
y Top-down integration testing is better at discovering errors in the system
architecture
y System demonstration
y Top-down integration testing allows a limited demonstration at an early
stage in the development
y Test implementation
y Often easier with bottom-up integration testing
y Test observation
y Problems with both approaches. Extra code may be required to observe
tests
8/7/2019 11305_Lect 33(Integration Testing)
8/10
Regression Testingy Each time a new module is added as part of integration testing, the software
changes.
y New data flow paths are established, new I/O may occur, and new control
logic is invoked.
y regression testing is the re-execution of some subset of tests that have already
been conducted to ensure that changes have not propagated unintended side
effects.
y Regression testing may be conducted manually, by re-executing a subset of all
test cases or using automated capture/playback tools
8/7/2019 11305_Lect 33(Integration Testing)
9/10
Smoke Testingy Smoke testing is an integration testing approach that is commonly used when
shrinkwrapped software products are being developed. the smoke testing
approach encompasses the following activities:
y 1. Software components that have been translated into code are integrated
into a build. A build includes all data files, libraries, reusable modules, and
engineered components that are required to implement one or more product
functions.
y 2. A series of tests is designed to expose errors that will keep the build from
properly performing its function. The intent should be to uncover show stopper
errors that have the highest likelihood of throwing the software project behind
schedule.
y 3. The build is integrated with other builds and the entire product (in its
current form) is smoke tested daily. The integration approach may be top down or
bottom up.
8/7/2019 11305_Lect 33(Integration Testing)
10/10
Smoke Testingy Smoke testing provides a number of benefits when it is applied on complex,
time critical software engineering projects:
y Integration risk is minimized. Because smoke tests are conducted daily.
y The quality of the end-product is improved. Because the approach is
construction (integration) oriented, smoke testing is likely to uncover both
functional errors and architectural and component-level design defects.
y Progress is easier to assess. With each passing day,more of the software has
been integrated and more has been demonstrated to work.
Top Related