What Is System Integration Testing and Why Is It Important?
System Integration Testing (SIT) is an essential part of the software development lifecycle.
Clients with large multi-million dollar-projects – involving application integration and data migration across multiple applications – will spend several months preparing for System Integration Testing. This process of integrating across multiple applications with hardware and software upgrades ultimately resulting in improved customer experience and enhanced business capabilities is extremely complex.
SIT is carried out in an integrated hardware and software environment to verify the behavior of a complete system and its adherence to system requirements. This testing process exercises the ability of various hardware and software components to co-exist, ideally mirroring the end state and the production environment.
The goal of SIT is to uncover defects associated with interfacing systems. All applications that are part of the solution are connected end to end (E2E), and data flows from system to system via the business workflow. SIT testing ensures that all system dependencies are functioning properly and validate that data integrity is preserved via E2E business use cases while leveraging production like data.
SIT validates data integrity between the various applications that make up a product solution and concentrates on testing dependencies by passing data between the various systems. Application connectivity is validated by the passing of data across each system.
SIT is typically the first time that an entire set of systems is tested across all the various applications that make up the product solution and tested end to end. It is critical that SIT only occur after successful completion of unit, system, and integration testing – but before the start of User Acceptance Testing (UAT). Remember – even if each application is tested individually, there is the possibility that failures can occur when the system is integrated and as the various integrated applications interact.
SIT should not focus on application or field level functionality. System and unit testing validate that an application is functioning as per defined requirements, including lower level functions such as field level validations. As a matter of fact, SIT is heavily dependent on several predecessor tasks to increase the odds of a successful SIT effort.
In parallel with SIT preparation, a robust list of entrance criteria should be prepared, along with various scheduled checkpoints, to verify that the entrance criteria tasks are on schedule and will be completed prior to the start of SIT. To mitigate risk, incomplete entrance criteria should result in a postponement to the start of SIT execution.
The following is a recommended set of entrance criteria that should be met prior to starting SIT:
- Functional and Non-Functional Requirements are complete and signed off by Business Sponsors
- Performance Requirements and Integration Service Level Agreements (SLAs) have been benchmarked and approved
- All test data requirements have been approved by Business Sponsors
- All applications/systems and sub systems have been deployed to the test environment and validated by each application team
- All integrations have been deployed to the test environment and validated by the appropriate teams
- Latest build of code has been deployed to the test environment, has passed a smoke test, and is operational
- Unit, System, Integration, and SIT test plans have all been signed off
- SIT test cases/test scripts are complete and signed off
- Unit, System, and Integration Testing is 100% complete with all critical and high defects closed
Often clients are pressured to proceed with SIT execution when entrance criteria have not been met to meet deadlines.
There are risks associated with starting SIT without meeting this entrance criteria, some of which can be very disruptive, including:
- A non-functioning test environment
- Excessive number of defects from Unit, System, and Integration Testing
- Blocking defects that halt testing
- Functionality that cannot be tested
- Invalid testing results
- Low quality product
- Incomplete testing
- Extended testing timelines
- Cost overruns
- Missed deadlines
All the above examples introduce a high level of unnecessary risk. Often, the decision to proceed tends to create numerous issues that delay completion of the project, delays that are far longer than if SIT execution was paused to the compete the SIT entrance criteria tasks.
A successful SIT effort is key to timely and quality project delivery. It focuses on dependencies between the various systems, along with the data being passed between those systems and application connectivity. SIT is dependent on completion of successful unit, system, and integration testing prior to beginning any SIT execution. A comprehensive set of entrance criteria should be used as a Quality Gate in determining whether your solution is ready to begin SIT. Entering SIT prematurely will result in unnecessary risk, such as schedule slippage, ineffective testing, poor quality, and cost overruns.
Reach out to Olenick to start a conversation with us about your organization’s System Integration Testing needs.