SIT Testing – System integration testing importance in STLC
What is System integration testing?
System integration testing is to verify and check the systems, components and their interfaces with external systems like internet, electronic data exchange, such as mail communication through email, web such as File transfer protocol Secure (FTPS), Hyper Text Transport Protocol Secure (HTTPs).
Why system integration is required?
Testing system integration is important to verify that there is a proper hand shake between system / components in order to achieve application requirements. The output of one unit is an input of another unit which is integrated with each other. data flow between systems should transferred seamless and without any delay.
Advantage of system integration testing
The below are the advantages of performing System Integration Testing:
- checks units or modules that are tested by developers already when integrated with each other,
- Exchange the data between each other and perform desired tasks.
- In order to verify web services or HTTP requests sent from one module to integrated modules transfer data
- changes in requirements designed by developers can be tested once units are connected,
uncover data sharing defects between two or more different applications integrated
Examples of System Integration and Testing:
The below are few examples of System Integration and Testing:
Example#1:
When site senses someone exploring for the first time, cookies, a small text file is stored on client machine. The text file called cookies, track the user preferences during browsing session. The user clicking sub menus like contact us, selects product and its quantity for purchase. so next time when user browses the same web page, the cookies saved on the machine will identify the returning visitor.
The cookie store IP address, Location such as city, latitude and longitude where visitor’s machine is located, URL of the page being viewed. Testers verify that text files are created and stores user preferences and other information, when first time visitor explores the web pages of the application.
Example#2:
When registered customer logs into e commerce site with his credentials, application validates credentials, registration date, expiry date from current date. In system integration testing for web sites, tester validates In case of valid logged in user, all his previous activities like wish list, orders placed, items selected in shopping cart, security features like sending OTP one time password, in his registered mobile number or email address, so that valid customer can log in to modify his preferences like delivery address, select payment option, placing an order should get enabled.
Example#3:
Mobile or web-based banking applications after secured log in allow account holder to access his account, check his balance, pay bills online, set auto debit for payment of credit card. System integration test for security reasons for such applications will verify that session created by logged in valid user should get discontinued from site and logged out if unattended for some time and have to log in to the web application again.
Further, negative tests by deleting the cookies or blocking the cookies from getting created, the user preferences should not get stored and the web site should treat already visited user as new user and make him log in to the web site, so that his details will be verified by website’s database and only allow valid user to log in the application.
Stub and Drivers in integration testing
Stub is used to develop or test lower level components in isolation; it can also be used as replacement for called component.
Driver is similar to stub, is a tool that are tested as replacement for calling component or system.
Test bed created for top-down integration tests with stubs and bottom-up integration tests for drivers types are designed to execute system integration tests.
Types of system integration
The below are the types of the System Integration:
Big Bang integration
Big Bang integration testing is carried out only after completing all the modules, these modules are integrated with each other and then integration tests are carried out in order to verify that the integration is seamless and these modules work as desired.
Disadvantage of this type of testing is that executing tests after integrating all the modules at once, failure to any module or interface between these modules, it becomes difficult to locate root cause and developer have to disintegrate all modules and test again.
Top Down integration
Top Down integration testing for executing not yet integrated lower level modules. In Top Down integration, stubs are replacement for called modules. In Top Down testing test conditions and their expected outputs are difficult to evaluate.
For Top Down testing execution of integrated modules will be difficult in presence of test stubs and absence of lower level modules.
Bottom Up integration
Bottom Up integration testing is carried out from lowest level modules, this uses test drivers to pass appropriate data and execute these modules.
In Bottom up testing test conditions and their expected outputs are straight forward as the execution of tests starts from lower level modules to critical modules making easier to locate root cause if any defects occur.
Sandwich/ Hybrid integration
Sandwich/ Hybrid integration testing is a combination of top down and bottom up integration tests, Hybrid tests requires both stubs as well as drivers to execute tests.
Sandwich or Hybrid tests are suitable for large scale projects that have many sub projects linked with. These tests are complex to test, are high in cost and are not suitable for small projects.
System integration testing tools
The different Testing tools to verify system integration that are used across industry are
- VectorCAST(C++/Ada),
- Citrus,
- Jasmine,
- Protractor,
- LDRA,
- SITA(Smart Integration Test Accelerator),
- FitNesse,
- Rational Integration Tester from IBM,
- Tessy,
- Validata
Conclusion
System integration testing is to verify and check the systems, components and their interfaces with external systems. It is important to verify that there is a proper hand shake between system / components in order to achieve application requirements.
Integration testing approach includes big bang, top down, bottom up, and hybrid testing. Various testing tools that are used across software industries include Citrus, Jasmine, Protractor which can be integrated with automation framework for integration tests
Please leave your questions/comments/feedback below.
Happy Learning 🙂
Connect to me on Linked In (Click here)
On a mission to contribute to the Software Testing Community in all possible ways.