Term
What is Integration Testing? |
|
Definition
Integration Testing is defined as a type of testing where software modules are integrated logically and tested as a group.
A typical software project consists of multiple software modules, coded by different programmers. Integration Testing focuses on checking data communication among these modules.
Hence it is also termed as 'I & T' (Integration and Testing), 'String Testing' and sometimes 'Thread Testing'. |
|
|
Term
Why do Integration Testing? |
|
Definition
Although each software module is unit tested, defects still exist for various reasons like:
A Module, in general, is designed by an individual software developer whose understanding and programming logic may differ from other programmers. Integration Testing becomes necessary to verify the software modules work in unity
At the time of module development, there are wide chances of change in requirements by the clients. These new requirements may not be unit tested and hence system integration Testing becomes necessary.
Interfaces of the software modules with the database could be erroneous
External Hardware interfaces, if any, could be erroneous
Inadequate exception handling could cause issues. |
|
|
Term
Example of Integration Test Case |
|
Definition
Integration Test Case differs from other test cases in the sense it focuses mainly on the interfaces & flow of data/information between the modules. Here priority is to be given for the integrating links rather than the unit functions which are already tested.
Sample Integration Test Cases for the following scenario: Application has 3 modules say 'Login Page', 'Mailbox' and 'Delete emails' and each of them is integrated logically.
Here do not concentrate much on the Login Page testing as it's already been done in Unit Testing. But check how it's linked to the Mail Box Page.
Similarly Mail Box: Check its integration to the Delete Mails Module. |
|
|
Term
Approaches/Methodologies/Strategies of Integration Testing |
|
Definition
Software Engineering defines variety of strategies to execute Integration testing, viz.
Big Bang Approach Incremental Approach: which is further divided into the following
Top Down Approach Bottom Up Approach Sandwich Approach - Combination of Top Down and Bottom Up |
|
|
Term
How to do Integration Testing? |
|
Definition
1.Prepare the Integration Tests Plan
2.Design the Test Scenarios, Cases, and Scripts.
3.Executing the test Cases followed by reporting the defects.
4.Tracking & re-testing the defects.
5.Steps 3 and 4 are repeated until the completion of Integration is successful. |
|
|
Term
Description of Integration Test Plan |
|
Definition
It includes the following attributes:
Methods/Approaches to testing (as discussed above). Scopes and Out of Scopes Items of Integration Testing. Roles and Responsibilities. Pre-requisites for Integration testing. Testing environment. Risk and Mitigation Plans. |
|
|
Term
Entry and Exit Criteria of Integration Testing |
|
Definition
Entry Criteria:
Unit Tested Components/Modules All High prioritized bugs fixed and closed All Modules to be code completed and integrated successfully. Integration tests Plan, test case, scenarios to be signed off and documented. Required Test Environment to be set up for Integration testing
Exit Criteria:
Successful Testing of Integrated Application. Executed Test Cases are documented All High prioritized bugs fixed and closed Technical documents to be submitted followed by release Notes. |
|
|
Term
Best Practices/ Guidelines for Integration Testing |
|
Definition
First, determine the Integration Test Strategy that could be adopted and later prepare the test cases and test data accordingly.
Study the Architecture design of the Application and identify the Critical Modules. These need to be tested on priority.
Obtain the interface designs from the Architectural team and create test cases to verify all of the interfaces in detail.
Interface to database/external hardware/software application must be tested in detail.
After the test cases, it's the test data which plays the critical role.
Always have the mock data prepared, prior to executing. Do not select test data while executing the test cases. |
|
|