Testing Foundation
Basics of Software Testing
What is Software Testing?
Objective of Testing
Why is testing necessary?
Common Terms used in Testing
Verification Vs Validations
QA Vs QC
Debugging Vs Testing
Seven Testing Principles
SDLC Vs STLC
Fundamentals of Test Process
Software quality Factors
Software Development Models
Waterfall Model
V models
Iterative Model
Test Levels
Component Testing
Integration Testing
System Testing
Acceptance Testing
Strategies for Integration Testing
Big Bang
Stubs and Driver
Top Down Testing
Bottom Up Testing
Test Types
Functional Testing
Non- Functional Testing
Structural Testing
Re-testing & Regression Testing
Static AND Dynamic Techniques
Static Technique
Dynamic Technique
Static Analysis by Tools
White Box Techniques
Statement Coverage Testing
Branch Coverage Testing
Decision Coverage Testing
Path Coverage
Black Box Techniques
Equivalence Partitioning
Boundary Value Analysis
Decision Table testing
State Transition testing
Experience Based TestingTechniques
Random Testing
Exploratory Testing
Error Guessing
Functional Testing
Integration Testing
Unit Testing
System Testing
Smoke testing
Sanity testing
Regression Testing
Usability Testing
Security Testing
User Acceptance Testing
White Box & Black Box Testing
Globalization & Localization Testing
Non Functional Testing
Compatibility testing
Endurance testing
Load testing
Performance testing
Recovery testing
Scalability testing
Stress testing
Volume testing
Test Planning and Estimation
Test Planning
Test Strategies Vs Test Plan
Test Approaches
Risk and Testing
Product Risks
Project Risks
Defect Management
Defect LifeCycle
Severity Vs Priority
What is Software Testing?
Objective of Testing
Why is testing necessary?
Common Terms used in Testing
Verification Vs Validations
QA Vs QC
Debugging Vs Testing
Seven Testing Principles
SDLC Vs STLC
Fundamentals of Test Process
Software quality Factors
Software Development Models
Waterfall Model
V models
Iterative Model
Test Levels
Component Testing
Integration Testing
System Testing
Acceptance Testing
Strategies for Integration Testing
Big Bang
Stubs and Driver
Top Down Testing
Bottom Up Testing
Test Types
Functional Testing
Non- Functional Testing
Structural Testing
Re-testing & Regression Testing
Static AND Dynamic Techniques
Static Technique
Dynamic Technique
Static Analysis by Tools
White Box Techniques
Statement Coverage Testing
Branch Coverage Testing
Decision Coverage Testing
Path Coverage
Black Box Techniques
Equivalence Partitioning
Boundary Value Analysis
Decision Table testing
State Transition testing
Experience Based TestingTechniques
Random Testing
Exploratory Testing
Error Guessing
Functional Testing
Integration Testing
Unit Testing
System Testing
Smoke testing
Sanity testing
Regression Testing
Usability Testing
Security Testing
User Acceptance Testing
White Box & Black Box Testing
Globalization & Localization Testing
Non Functional Testing
Compatibility testing
Endurance testing
Load testing
Performance testing
Recovery testing
Scalability testing
Stress testing
Volume testing
Test Planning and Estimation
Test Planning
Test Strategies Vs Test Plan
Test Approaches
Risk and Testing
Product Risks
Project Risks
Defect Management
Defect LifeCycle
Severity Vs Priority
Integration Testing Approaches: Big Bang , Top down & Bottom up
For a software to work different modules work together as a whole.The process of integrating these modules and testing them all together is called Integration Testing.The purpose is to find faults in the interaction between integrated units.
- Main traditional strategies can be classified as top-down integration, bottom-up integration, big-bang integration.
- We reconsider these strategies in an object-oriented environment.
- Various factors like cost, complexity of the application etc determine which approach is selected.
This article will present you with a complete idea about integration testing approaches/strategies, advantages, disadvantages etc.
We will learn below topics in this article:
Strategies for integration:
- Top Down integration Testing
- Bottom Up integration Testing
- Big Bang integration Testing
Big Bang Integration Testing:
Big Bang testing is a type of testing where all the components are integrated together at once and then tested as a whole.
- Individual modules are not integrated until and unless all the modules are ready.
- All the modules are integrated without performing any integration testing and then it’s executed to know whether all the integrated modules are working fine or not.
Advantages of Big Bang Integration Testing:
-
- Consists of completed and checked modules
- It is extremely suitable for small systems.
- The main advantage is that everything is finished before integration testing starts.
Disadvantages of Big Bang Testing:
-
- There is a high chance of missing some critical defects, which might pop up in the production environment.
- It is very difficult to cover all the cases for integration testing.
- Causes delay as tester needs to wait till all modules are integrated.
Stubs and Driver
Stubs and driver both are dummy modules and are only created for test purposes.
Driver:
Driver are the ones, which are the “calling” programs
-
- A component, that calls the unit under test
- Drivers are used in bottom up testing approach.
- Controls the test cases
- Drivers are dummy code, which is used when the sub modules are ready but the main module is still not ready.
Stub:
A component, the unit under test depends on Partial implementation
-
- Dummy modules that always used to simulate the low level modules.
- Stubs are used when sub programs are under construction.
- Stubs are used in top down testing approach, when you have the major module ready to test, but the sub modules are still not ready yet
Difference Between Stubs and Drivers:
S.No | Stubs | Drivers |
---|---|---|
1. | Stubs are used in the Top down integration testing. | Drivers are used in the Bottom up integration testing. |
2. | Stubs are also known as " called programs” | Drivers are also known as “calling program” |
3. | Stubs are usually used in the unavailability of low-level modules. | Drivers are mainly used in place of high-level modules |
4. | Stubs are used when lower-level of modules are missing and we need to test the main module. | Drivers are used when higher-level of modules are missing and we need to test the lower module. |
5. | The test stub is a dummy program that integrates with an application to complete its functionality. It is relevant for testing that uses the top-down approach. | The test driver is a section of code that calls a software component under test. It is useful in testing that follows the bottom-up approach. |
Top down Integration Testing
First Test the top layer or the controlling subsystem or Start with the ‘‘root’’ and one or more called modules.
-
-
- 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
- Stubs are needed to do the testing.
-
Advantages of Top down integration
- Test cases can be defined in terms of the functionality of the system.
- No drivers required
Disadvantages of Top Down Integration
-
- Writing stubs is difficult: Stubs must allow all possible conditions to be tested.
- Large number of stubs may be required, especially if the lowest level of the system contains many methods.
- Some interfaces are not tested separately.
Bottom Up Integration Testing
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.
-
Advantages of Bottom Up integration testing
- No stubs needed
- Useful for integration testing of the following systems
- Real-time systems
- Systems with strict performance requirements.
Disadvantages of Bottom Up integration testing
- Tests the most important subsystem i.e. UI last
- Drivers required
Recommended Articles:
Testing Foundation
Basics of Software Testing
What is Software Testing?
Objective of Testing
Why is testing necessary?
Common Terms used in Testing
Verification Vs Validations
QA Vs QC
Debugging Vs Testing
Seven Testing Principles
SDLC Vs STLC
Fundamentals of Test Process
Software quality Factors
Software Development Models
Waterfall Model
V models
Iterative Model
Test Levels
Component Testing
Integration Testing
System Testing
Acceptance Testing
Strategies for Integration Testing
Big Bang
Stubs and Driver
Top Down Testing
Bottom Up Testing
Test Types
Functional Testing
Non- Functional Testing
Structural Testing
Re-testing & Regression Testing
Static AND Dynamic Techniques
Static Technique
Dynamic Technique
Static Analysis by Tools
White Box Techniques
Statement Coverage Testing
Branch Coverage Testing
Decision Coverage Testing
Path Coverage
Black Box Techniques
Equivalence Partitioning
Boundary Value Analysis
Decision Table testing
State Transition testing
Experience Based TestingTechniques
Random Testing
Exploratory Testing
Error Guessing
Functional Testing
Integration Testing
Unit Testing
System Testing
Smoke testing
Sanity testing
Regression Testing
Usability Testing
Security Testing
User Acceptance Testing
White Box & Black Box Testing
Globalization & Localization Testing
Non Functional Testing
Compatibility testing
Endurance testing
Load testing
Performance testing
Recovery testing
Scalability testing
Stress testing
Volume testing
Test Planning and Estimation
Test Planning
Test Strategies Vs Test Plan
Test Approaches
Risk and Testing
Product Risks
Project Risks
Defect Management
Defect LifeCycle
Severity Vs Priority
What is Software Testing?
Objective of Testing
Why is testing necessary?
Common Terms used in Testing
Verification Vs Validations
QA Vs QC
Debugging Vs Testing
Seven Testing Principles
SDLC Vs STLC
Fundamentals of Test Process
Software quality Factors
Software Development Models
Waterfall Model
V models
Iterative Model
Test Levels
Component Testing
Integration Testing
System Testing
Acceptance Testing
Strategies for Integration Testing
Big Bang
Stubs and Driver
Top Down Testing
Bottom Up Testing
Test Types
Functional Testing
Non- Functional Testing
Structural Testing
Re-testing & Regression Testing
Static AND Dynamic Techniques
Static Technique
Dynamic Technique
Static Analysis by Tools
White Box Techniques
Statement Coverage Testing
Branch Coverage Testing
Decision Coverage Testing
Path Coverage
Black Box Techniques
Equivalence Partitioning
Boundary Value Analysis
Decision Table testing
State Transition testing
Experience Based TestingTechniques
Random Testing
Exploratory Testing
Error Guessing
Functional Testing
Integration Testing
Unit Testing
System Testing
Smoke testing
Sanity testing
Regression Testing
Usability Testing
Security Testing
User Acceptance Testing
White Box & Black Box Testing
Globalization & Localization Testing
Non Functional Testing
Compatibility testing
Endurance testing
Load testing
Performance testing
Recovery testing
Scalability testing
Stress testing
Volume testing
Test Planning and Estimation
Test Planning
Test Strategies Vs Test Plan
Test Approaches
Risk and Testing
Product Risks
Project Risks
Defect Management
Defect LifeCycle
Severity Vs Priority