We assure confidence in quality of interfaces and system components
An application is composed of core systems and a string of sub-systems. System Integration Testing (SIT) ensures the core software modules are functioning with subsystems in a coherent manner. Including all methods, procedures, and any required automation, SIT establishes connectivity of core modules with the required sub-systems.
Three main states of data flow are the data state within the integration, database, and application layers. Conformance of the system components to the overall ecosystem needs to be ensured along with end to end seamless transmission and processing of data. Data flow diagrams help understand flow of data in the system at various levels.
A system working well in silos but lacking coherence is of little value. Rather, we need it to work efficiently as a whole to qualify as success. The components themselves may be developed at different times with diverse specifications, but the integrated lot of all these pieces must work in tandem to achieve a set of stated objectives.
Benefits never come without challenges and there are factors that make integration testing more complex than you might be expecting. Here are three typical challenges you face:
Delivery of core systems might get delayed unexpectedly, forcing you jump the timelines regarding integration testing and subsequently, the deployment of the entire application. There might also be different vendors for these core systems and any of these might miss the delivery date.
You may be short of firepower at the time of installation as some crucial allied piece of software might go missing. For shakedown testing, you need your apparatus ready; however, partial readiness culminates in partial testing and you rescheduling the testing.
Application systems comprise of an array of hardware, leading to late identification of components, which might culminate in derailed timelines of the testing. Data flow, logic, and several other factors need to be factored in for identifying input, output, processing, and storage devices at various levels.
We ensure a dedicated test environment with connectivity to all required interfaces. Depending on the objectives, we follow different approaches or a blend of them regarding integrated testing.
Identifying interfacing blocks helps understand inter-dependencies of sub-systems within an application. A failure in this regard often results in a project failing to meet the expectations of the stakeholders. If not outright failure, they might result in cost overruns. Interfaces are tested via exchange of batch files.
Our team prepares a consolidated SIT test plan along with test cases and a run plan that will be necessary to execute it. We conduct a walkthrough with bank team and chalk out a run plan that covers the daily test execution. Project timelines and dependencies of application subsystems are taken into account while making the test plan. SIT execution is performed as per defined test scope.
Our approach to SIT focuses on touch points with middleware and end point systems. Integrations are tested with handshake signature to ensure integrity of data movement across components right till the end points. A representative set of data is pushed through the system to determine its flow. Agreed APIs are tested through agreed tool or middleware system. Test data is prepared on the basis of the type of integration and interface end point requirement specification.
A key prerequisite of integrated testing is the flow of data at the entry and exit points of the core subsystems. Ideally, testing for a stage should not commence until the exit criteria for the previous stage is done, but it is not possible in every case. Entry criteria includes signed off test plan, test cases, and run plan; while exit criteria rakes in execution of identified test cases. Deliverables include run plan, test plan & cases, test results and logs, and status reports. Defects are raised for the failed test cases.