{{Short description|Testing a complete system with multiple components}} {{see also |System testing}} {{Multiple issues| {{Refimprove|date=January 2014}} {{Original research|date=March 2016}} {{unbalanced|date=March 2016}} }} <!-- the emphasis of the (nearly completely unsourced) prose in the body is on software -->
{{Use dmy dates|date=March 2016}} '''System integration testing''' ('''SIT''') involves the overall testing of a complete system of many subsystem components or elements. The system under test may be composed of electromechanical or computer hardware, or software, or hardware with embedded software, or hardware/software with human-in-the-loop testing. SIT is typically performed on a larger integrated system of components and subassemblies that have previously undergone '''subsystem testing'''.<!-- bolded per WP:MOSBOLD as a redirect link -->
SIT consists, initially, of the "process of assembling the constituent parts of a system in a logical, cost-effective way, comprehensively checking system execution (all nominal and exceptional paths), and including a full functional check-out."<ref name=houser2011/> Following integration, system test is a process of "verifying that the system meets its requirements, and validating that the system performs in accordance with the customer or user expectations."<ref name=houser2011> {{cite web |url=https://www.dtic.mil/ndia/2011system/13007_HouserThursday.pdf |archive-url=https://web.archive.org/web/20130512214221/http://www.dtic.mil/ndia/2011system/13007_HouserThursday.pdf |url-status=dead |archive-date=12 May 2013 |title=Best Practices for Systems Integration |last=Houser |first=Pete |publisher=dtic.mil |date=November 2011 |accessdate=15 March 2016 }}</ref><!-- other definition's wording could be used, or this could be paraphrased, but this is a good overview of a standard textbook definition, and can be located on the web. -->
In technology product development, the beginning of system integration testing is often the first time that an entire system has been assembled such that it can be tested as a whole. In order to make system testing most productive, the many constituent assemblies and subsystems will have typically gone through a subsystem test and successfully verified that each subsystem meets its requirements at the subsystem interface level.
In the context of software systems and software engineering, ''system integration testing'' is a testing process that exercises a software system's coexistence with others. With multiple integrated systems, assuming that each have already passed system testing,<ref>[http://istqbexamcertification.com/what-is-system-integration-testing/ What is System integration testing?]</ref> SIT proceeds to test their required interactions. Following this, the deliverables are passed on to acceptance testing.{{clarify|what is "acceptance testing?|date=March 2024}}
== Software system integration testing == For software SIT is part of the software testing life cycle for collaborative projects. Usually, a round of SIT precedes the user acceptance test (UAT) round. Software providers usually run a pre-SIT round of tests before consumers run their SIT test cases.
For example, if an integrator (company) is providing an enhancement to a customer's existing solution, then they integrate the new application layer and the new database layer with the customer's existing application and database layers. After the integration is complete, users use both the new part (extended part) and old part (pre-existing part) of the integrated application to update data. A process should exist to exchange data imports and exports between the two data layers. This data exchange process should keep both systems up-to-date. The purpose of system integration testing is to ensure all parts of these systems successfully co-exist and exchange data where necessary.{{cn|date=March 2024}}
There may be more parties in the integration, for example the primary customer (consumer) can have their own customers; there may be also multiple providers.{{cn|date=March 2024}}
==See also== * Integration testing * User acceptance testing (UAT) * Systems integration
==References== {{Reflist}}
Category:Systems engineering Category:Software testing testing
<!-- this is a broad topic of systems engineering, or perhaps engineering more generally -->