During the halcyon days of software development in India, the entireties of most systems were assembled by small teams, or even single people. This was alright, because the majority of software was run on single systems, and the overall complexity was much less than the complicated machinery we have today. With advanced architecture and distributed computing, programs are made up of much smaller modules, each individually put together to make the complete software.
In this form of Software development, each sub system is individually created to specifications of its design, which more specific in its nature than the entire program. For example, the “cut” function for a Word Processing program. Then, each of these sub systems is used together to make up the final system.
What is the relevance of System Integration Testing?
Each sub system that makes up the final system is individually tested to make sure that it meets the requirements of its original design. Once that is done, there needs to be a test that involves the testing of the system in its entirety, making sure that all the modules are integrating well with each other. This form of software testing is known as system integration testing and forms the basis for the first of many tests of the entire system.
This form of testing, SIT, is the first time that the whole system has been tested together in it’s entirety. The primary motive of SIT is to make sure that all the individual modules are properly functioning, and that data integrity is maintained throughout the system.
What is the reason for performing System Integration Testing?
One may ask, if all the individual components are already tested to make sure they meet the specifications of their design, what is the need of doing SIT?
There are multiple reasons to perform system integration testing of the entire design, including but not limited to
· To make sure that the developed system meets the user requirements
· To ensure that resource usage is efficient, and there are no memory leaks or race conditions
· To examine the data flow within the system and make sure there are no vulnerabilities or bugs
· To ensure that the control flow is within parameters without exceptions
· To control for edge cases and unexpected errors
· Discover bugs and errors in the functioning of the system
What are the approaches to SIT?
The approaches to SIT can be broadly categorized as such
A. Big bang Approach
In the big bang approach to SIT, the modules are only integrated once they are ready. After that, all the modules are integrated at once, and then testing is done.
This is a less common approach to SIT, since it is quite difficult to isolate the problem because everything could be malfunctioning at once.
This method is only used when the testing is time critical, otherwise the method used is:
B. Incremental Approach
The incremental approach to SIT sharply contrasts with the big bang approach. In this methodology, each module is appended to the system piecemeal. Then it is tested, and only once the test is successful does the next module get appended. In this manner the modules are roughly sequentially tested, until the system has been thoroughly tested.
In this approach, there are several benefits. The program is tested in small sections, which makes it much easier to isolate errors and correct the malfunctioning system. In addition, each part is tested completely, and the approach is more ordered.
Incremental testing can be further categorized into two forms, Top-Down, and Bottom-Up, depending on the approach to the software topology.
In summation, SIT is an integral part of the process of Software development in India today. With the systematic testing methodology and approach that is implemented with the SIT process, it is much easier to isolate bugs, and ensure a better functioning system eventually. With a strong testing toolkit, SIT is a highly recommended approach to system testing for QA and QC.