System Integration Testing

System Integration

System integration is the bringing together of the component Sub Systems into one system and ensuring that the subsystems function together as a system (Wikipedia).

Integration is the process of inter-connecting multiple systems with each other in order to provide a useful exchange of information, data and/or control between the systems.


A system is a group of hardware and software components that work together in a cohesive manner to perform a task.

A system may be as simple as a single controller or as complex as the telephone network. A personal computer with a video card, memory, a disk drive and an operating system is also a system.

An interface is a point where interaction occurs between multiple systems, devices, programs, etc . BizTalk Server is an example of Interface

System integration can be performed through Biztalk Server(Microsoft) , Cost  Iron(IBM). In this blog I will discuss System Integration with Biztalk.

Biztalk Server Introduction
BizTalk Server is Microsoft’s Integration and connectivity server solution. BizTalk Server provides a solution that allows organizations to more easily connect disparate systems. In addition to integration functionality, BizTalk also provides strong durable messaging, a rules engine, EDI connectivity(Electronic Data Interchange), Business Activity Monitoring (BAM).

Components of Biztalk

Receive Pipelines
  • Provide a way to examine, verify, and potentially modify messages as they are received
  • Used to do operations on inbound messages
  • Operations include
  • Decoding
  • Disassembling
  • Verification
Receive Ports

  • How messages get into BizTalk
  • Variety of transport mechanisms

  • Http
  • SOAP
  • SQL
  • File
  • EDI
  • Message Queue

  • How business processes are implemented
  • Visual display of process implementation
  • Developed in Visual Studio
  • Similar to flow charts 

Send Pipeline
  • Opposite of receive pipelines. Used on outbound messages
  • Operations include
  • Encoding
  • Assembling
  • Signing   

Send Ports
  • Similar to receive ports but used to send messages out of BizTalk
  • Multiple possible transports like receive ports

Business Rules Engine

  • Its engine to implement the business logic in a decoupled way.
  • Its has a graphical interface BRC(Business Rule Composer)
  • A means of implementing business rules away from core system
  • English like syntax for non technical person to define business rules
  • Versioned
  • Stored in a SQL Server database
  • After implement any change in business rule , user don’t have to update or rebuild existing applications

  • Can allow the business to control the rules used in systems
  • Main artefacts of BRE are
  • Vocabulary(data facts)
  • Policies(Rules/Conditions)

Business Activity Monitoring (BAM)
  • Business end user empowerment through the BAM portal
  • Business alerts and notifications End-to-end visibility of the business process

System Integration Testing Overview
System Integration Testing is the testing performed when multiple systems, generally presumed stable themselves, are integrated with one another.

Test Strategy
In System integration testing there is no interface like web applications or desktop applications. You will have only Biztalk interfaces. You needs to know the received ports and send ports. verification is on both these two ports. Logs will be generated on both two ports. You should have the ability to understand the logs . You can only identify issues from logs.

There are few concepts for System Integration testing. 
Integration Portal
In integration portal all error logs when a action failed. its all depends on programing logic which request will be in integration portal. You should test the integration portal in parallel with your testing
In BAM , business users can see what is going on with their systems. Business Activity Monitoring is done in BAM. You should also test the BAM in parallel with you testing.
Testing types can be divided into two main categories

  • Functional Testing   
  • Smoke testing
  • Components’ Functionality testing
  • End to End testing
  • Data Integrity testing
  • Regression testing
  • Non-Functional Testing.
  • Performance Testing
Smoke testing
Testing a critical subset of Functionality and End to End tests to verify the System Under Test works in a general sense before additional testing is performed

Components’ Functionality testing
The primary focus of this testing is to validate that the developed solution meets the approved business requirements. Additional test scenarios are executed to validate the system under test’s capabilities on handling exceptions.

For Example if two or more than two systems are integrated through BizTalk we will verify

  • BizTalk Send Ports , Received Ports are verified
  • Window services and Web services are verified.
  • BizTalk orchestration's are verified
  • We verify all instances of BizTalk server are working fine no instances is suspended due to unexpected exceptions
  • Business Rule Engine policies are verified.
  • Schemas of web services are verified.
  • Logs of Window service for database records extraction are verified
  • Event logs , and wiretaps are verified- requests are logged properly in wiretaps.
  • Queues are verified
  • Verify logs files that generated while performing testing

End to End testing
In END to END testing our focus is on complete system. We test the whole system working from starting point to the end point.

For Example

There are four servers. Server1, Server2, Server3 , Server4

The source system is Server1 and others are the target systems. Data flow is from server 1 to server2 then server3 then server4 and then response to Server1

  • We will verify the whole system is working fine,
  • BAM is working fine
  • No error produced
  • No instances are suspended
  • Integration Portal is working fine
  • Data Integrity in all servers
Data Integrity testing
Testing to validate the accuracy of data displayed/captured during and after the functional transactions Regression testing
Testing functionality and integration of systems that are not changed during the project, but that may be impacted by project-related updates

Performance Testing 
  • Testing the system under load (user, data and/or duration) to verify performance requirements are met
  • Test performance of Web services and identify bottlenecks. 
  • In case of multiple requests of different systems the behaviors of the Integrated system.