written 5.8 years ago by | • modified 5.8 years ago |
Testing that occurs at the lowest level is called unit testing or module testing. As the units are tested and the low-level bugs are found and fixed, they are integrated and integration testing is performed against groups of modules.
This process of incremental testing continues, putting together more and more pieces of the software until the entire product or at least a major portion of it is tested at once in a process called system testing. With this testing strategy, it's much easier to isolate bugs.
When a problem is found at the unit level, the problem must be in that unit. If a bug is found when multiple units are integrated, it must be related to how the modules interact. Of course, there are exceptions to this, but by and large, testing and debugging is much more efficient than testing everything at once.
Types of Integration testing:
1). Top down Testing: In this approach testing is conducted from main module to sub module. If the sub module is not developed a temporary program called STUB is used for simulate the sub module.
Advantages:
Advantageous if major flaws occur toward the top of the program.
Once the I/O functions are added, representation of test cases is easier.
Early skeletal Program allows demonstrations and boosts morale.
Disadvantages:
Stub modules must be produced
Stub Modules are often more complicated than they first appear to be.
Before the I/O functions are added, representation of test cases in stubs can be difficult.
Test conditions may be impossible, or very difficult, to create.
Observation of test output is more difficult.
Allows one to think that design and testing can be overlapped.
Induces one to defer completion of the testing of certain modules.
2). Bottom up testing: In this approach testing is conducted from sub module to main module, if the main module is not developed a temporary program called DRIVERS is used to simulate the main module.
Advantages:
Advantageous if major flaws occur toward the bottom of the program.
Test conditions are easier to create.
Observation of test results is easier.
Driver Modules must be produced.
The program as an entity does not exist until the last module is added.
3). Bi-Directional Integration.
Bi-directional Integration is a kind of integration testing process that combines top-down and bottom-up testing.
With an experience in delivering Bi-directional testing projects custom software development services provide the best quality of the deliverables right from the development of software process.
Bi-directional Integration testing is a vertical incremental testing strategy that tests the bottom layers and top layers and tests the integrated system in the computer software development process.
Using stubs, it tests the user interface in isolation as well as tests the very lowest level functions using drivers. Bi-directional Integration testing combines bottomup and top-down testing
Bottom-up testing is a process where lower level modules are integrated and then tested.
This process is repeated until the component of the top of the hierarchy is analysed. It helps custom software development services find bugs easily without any problems.
Top down testing is a process where the top integrated modules are tested and the procedure is continued till the end of the related module.
Top down testing helps developers find the missing branch link easily.
4). Incremental Integration.
After unit testing is completed, developer performs integration testing.
It is the process of verifying the interfaces and interaction between modules.
While integrating, there are lots of techniques used by developers and one of them is the incremental approach.
In Incremental integration testing, the developers integrate the modules one by one using stubs or drivers to uncover the defects.
This approach is known as incremental integration testing.
To the contrary, big bang is one other integration testing technique, where all the modules are integrated in one shot. Features:
Each Module provides a definitive role to play in the project/product structure
Each Module has clearly defined dependencies some of which can be known only at the runtime.
The incremental integration testing's greater advantage is that the defects are found early in a smaller assembly when it is relatively easy to detect the root cause of the same.
A disadvantage is that it can be time-consuming since stubs and drivers have to be developed for performing these tests
5). Non- Incremental Integration.
The non-incremental approach is also known as ―Big-Bang‖ Testing.
Big Bang Integration Testing is an integration testing strategy wherein all units are linked at once, resulting in a complete system.
When this type of testing strategy is adopted, it is difficult to isolate any errors found, because attention is not paid to verifying the interfaces across individual units.