System integration testing (SIT) and user acceptance testing (UAT) are the parts of the testing process. SIT is responsible for testing the interfaces between the components and interactions to various parts of the systems like hardware, software (operating system and file system) and interfaces among systems.
System Integration Testing (SIT) vs. User Acceptance Testing (UAT) Explained
- SIT: SIT is conducted by developers and evaluates the entire system, reviewing how the components interact with various parts of the system, like the hardware and software.
- UAT: UAT is a validation test performed on the user end where user requirements and business processes are checked to determine if the system can be accepted.
UAT is a validation testing performed from the user end, where user requirements and business-related processes are checked to find whether the system can be accepted or not.
What Is System Integration Testing (SIT)?
System integration testing is performed to confirm whether the modules tested individually can work together to deliver the required functionality. Modules tested individually may work fine, but when they are integrated together, some issues may occur. System integration testing is performed to test the dependency between modules through the transfer of data from one module to another.
For a better understanding of SIT, we must understand the basics of system integration. As the name suggests, system integration refers to a set of phases where various components are incorporated in a single unit, and these units go through integration testing. The group of interaction between components is referred to as integration, and testing these interactions and modules is known as integration testing.
SIT is considered the combination of integration testing and system testing. Now, we need to understand the basics of system testing. System testing is testing that’s performed on the absolute integrated products to check system compliance with specified requirements on functional and non-functional elements.
SIT is also considered as a combination of integration testing and system testing. System integration starts at the module level where units are integrated together, forming a subsystem, and eventually, a system.
2 Common SIT Testing Methods
There are two common methods to SIT: Top-down integration approach and a bottom-up integration approach.
- Top-down integration approach: Modules are integrated by moving downward in the hierarchy, where the main module is at the top. In a top-down approach, if lower modules are not ready, dummy modules called a stub are used for testing. A stub acts as the module during the test. Stubs have the minimum functionality required to be used while testing the ‘above’ module.
- Bottom-up integration approach: Modules are combined and started to test at a very low level. If the top-level modules are not ready then drivers are used for testing. A driver is a program specially used for testing.
2 Types of SIT Testing Interfaces
There are two types of interfaces: internal and external.
- Internal interfaces: These facilitate the interaction between the two modules within a project that is internal to the project.
- External interfaces: These are tangible outside the product to the third-party developers.
What Is User Acceptance Testing (UAT)?
User acceptance testing (UAT) is the final stage of testing before the system is accepted by the operational user. End users perform UAT based on the user requirements specifications to confirm whether an application is meeting requirements.
UAT is conducted when the product is ready to be delivered. The main aim of software development is to build software that is capable of satisfying the user needs, rather than just fulfilling the system specifications.
UAT is conducted when the product is ready to deliver it is also called at the end of the whole testing process. UAT is used to validate whether or not the system is acceptable. It validates that:
- The developed system fulfills the system requirement specifications.
- The system has achieved the performance as documented in the system requirement statement.
- It could vary as defined in the contract.
2 Types of UAT Testing
There are two major types of UAT: Alpha testing and beta testing.
- Alpha testing: Alpha testing is performed at the developer’s site by the customer. The testing is performed under a developer’s control. Alpha testing is performed once the system testing is completed.
- Beta testing: Beta testing is performed at one or more customer’s sites by the end-user of the software. For the beta testing of an application, it’s given to a trusted customer. Here the testing is not under the developer’s control. Beta testing is performed only after alpha testing is done.
UAT Testing Acceptance Criteria
The acceptance criteria are defined as exit criteria that a system must satisfy in order to be accepted by the end user. The three acceptance criteria are shown below:
- Product acceptance: It specifies that as the product requirement changes the acceptance criteria also must be modified and defined as desired.
- Procedure acceptance: The acceptance criteria could be defined according to the procedure followed for delivery.
- Service level agreements (SLA): SLAs are simply a part of the contract signed by customer and product organization which helps in verifying the software as a part of acceptance testing.
Differences Between SIT Testing vs. UAT
SIT Testing
- This tests the interface between modules.
- The purpose of testing is to see the interface.
- Performed by developers and testers.
- Issues will be with data flow, control flow.
UAT Testing
- Testing with respect to user requirements
- The purpose is to test the functionality from the end user’s point of view.
- Performed by customers and end users.
- Not as per user requirements.
When to Use SIT Testing vs. UAT
- SIT is intended to test the functionality of a system as a whole after integrating all the system components. On the other hand, UAT is responsible for testing the system from the user’s perspective.
- To conduct SIT tests, specialized developers and testers are required. UAT is performed by the product customer or organization buying the software product.
- System integration testing is performed prior to user acceptance testing.
- The defects detected in the SIT would be related to the control flow and data flow, etc. Conversely, in UAT the problems generated would be regarding the functionality that does not match the user requirements.