12 Integration Testing Flashcards
Unit Testing
Modules are individually tested
Software Module
Self contained element of a system
The Objective of Integration Testing
To Build a “working” version of the system.
Putting Modules together in an incremental manner.
Ensuring that the additional modules work
as expected without disturbing the functionalities of the modules already put together.
Integration testing is said to be completed when . .
The system is fully integrated together.
All the test cases have been executed.
All the severe and moderate defects found have been fixed.
Advantages of Integration Testing
Defects are detected early.
Easier to fix defects detected earlier.
Get Earlier Feedback on the health and acceptability of the individual moduels.
Scheduling of defect fixes is flexible and it can overlap with development.
Different Types of Interfaces.
3 Common Paradigms for Interfacing Modules:
- Procedure/Method call interface.
- Shared Memory Interface
- Message Passing Interface.
Interface Errors.
Granularity of System Integration Testing
Intra-System Testing
Inter-System Testing
Pairwise Testing
Intra System Testing
Low-Level integration testing with the objective of combining the modules together to build a cohesive system.
Inter-System Testing
High-Level testing phase which requires intefacing independently tested systems.
Pairwise testing
Only two interconnected systems in an overall system are tested at a time.
To ensure that two systems under consideration can function together.
Assume that the other system withikn the overall envirnoment behave as expected.
Common Approaches for IT.
Incremental
Top-down
Bottom-up
Big-Bang
Sandwich
Incremetnal Integration Testing
Testing is conducted in an incredmental manner as a series of test cycles.
In each test cycle, a few more modules are integrated with an existing and tested build to generate larger builds.
The complete system is built, cycle by cycle until the whole system is operational.
Top-down Advantages
Can continually observe system-level functions as the integration process continue.
Isolation of interface erros becomes easier because of the incremental nature of the top-down integration.
Test cases designed to test the integration are reused during regression tests peformed after integrating other modules.
Top-down Disadvantages
Absence of lower level modules and the presence of stubs may not be possible to oberve meaningful system functions.
Test case selection and stub design become increasingly difficult. (Stubs lie far away from top level modules)
Bottom-up Advantages
Easy to design a driver because you can get it by simplifying getting the behavior of the actual module.
If the low-level modules and their combined functions are often invoked by other modules, it is more useful to test them first so that meaningful effective integration of other modules can be done.