Integration testing (sometimes called integration and testing, abbreviated I&T) is the phase in
software testing
Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to apprecia ...
in which individual software modules are combined and tested as a group. Integration testing is conducted to evaluate the
compliance
Compliance can mean:
Healthcare
* Compliance (medicine), a patient's (or doctor's) adherence to a recommended course of treatment
* Compliance (physiology), the tendency of a hollow organ to resist recoil toward its original dimensions (this is a ...
of a system or component with specified
functional requirement
In software engineering and systems engineering, a functional requirement defines a function of a system or its component, where a function is described as a specification of behavior between inputs and outputs.
Functional requirements may involv ...
s. It occurs after
unit testing
In computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures&m ...
and before
system testing
System testing is testing conducted on a complete integrated system to evaluate the system's compliance with its specified requirements.
System testing takes, as its input, all of the integrated components that have passed integration testing. ...
. Integration testing takes as its input
modules that have been unit tested, groups them in larger aggregates, applies tests defined in an integration
test plan A test plan is a document detailing the objectives, resources, and processes for a specific test for a software or hardware product. The plan typically contains a detailed understanding of the eventual workflow.
Test plans
A test plan documents the ...
to those aggregates, and delivers as its output the integrated system ready for
system testing
System testing is testing conducted on a complete integrated system to evaluate the system's compliance with its specified requirements.
System testing takes, as its input, all of the integrated components that have passed integration testing. ...
.
Approach
Some different types of integration testing are big-bang, mixed (sandwich), risky-hardest,
top-down, and bottom-up. Other Integration Patterns
[Binder, Robert V.: ''Testing Object-Oriented Systems: Models, Patterns, and Tools''. Addison Wesley 1999. ] are: collaboration integration, backbone integration, layer integration, client-server integration, distributed services integration and high-frequency integration.
In big-bang, most of the developed modules are coupled together to form a complete software system or major part of the system and then used for integration testing. This method is very effective for saving time in the integration testing process. However, if the test cases and their results are not recorded properly, the entire integration process will be more complicated and may prevent the testing team from achieving the goal of integration testing.
The lowest level components are tested first in bottom-up testing. They are then used to facilitate the testing of higher level components. The process is repeated until the component at the top of the hierarchy is tested. All the bottom or low-level modules, procedures or functions are integrated and then tested. After the integration testing of lower level integrated modules, the next level of modules will be formed and can be used for integration testing. This approach is helpful only when all or most of the modules of the same development level are ready. This method also helps to determine the levels of software developed and makes it easier to report testing progress in the form of a percentage.
The top integrated modules are tested first in top-down testing and the branch of the module is tested step by step until the end of the related module.
Sandwich testing combines top-down testing with bottom up testing. One limitation to this sort of testing is that any conditions not stated in specified integration tests, outside of the confirmation of the execution of design items, will generally not be tested.
See also
*
Design predicates
Design predicates are a method invented by Thomas McCabe, to quantify the complexity of the integration of two units of software. Each of the four types of design predicates have an associated integration complexity rating. For pieces of code that ...
*
Functional testing
Functional testing is a quality assurance (QA) processPrasad, Dr. K.V.K.K. (2008) ''ISTQB Certification Study Guide'', Wiley, , p. vi and a type of black-box testing that bases its test cases on the specifications of the software component unde ...
*
Continuous integration
References
{{DEFAULTSORT:Integration Testing
Software testing
Hardware testing