Integrated Testing is the phase in software testing in which individual software modules are combined and tested as a group. It occurs after unit testing.
Different types of integration testing are big-bang, top-down, and bottom-up, mixed (sandwich) and risky-hardest.
In the big-bang approach, 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.
Big Bang testing has the advantage that everything is finished before integration testing starts.The major disadvantage is that in general it is time consuming and difficult to trace the cause of failures because of this late integration.
Bottom-up testing is an approach to integrated testing where the lowest level components are tested first, then testing of higher level components occurs. The process is repeated until the component at the top is tested.Test Drivers are needed to simulate higher level units which may not be available during the initial phases.This approach is helpful only when all or most of the modules of the same development level are ready.
Top-down testing is an approach to integrated testing where the top integrated modules are tested and the branch of the module is tested step by step until the end of the related module.Test Drivers are needed to simulate higher level units which may not be available during the initial phases.
Sandwich testing is an approach to combine top down testing with bottom up testing.
Acceptance Testing is the software testing where a system is tested for acceptability. The purpose of this test is to evaluate the system’s compliance with the business requirements and assess whether it is acceptable for delivery.
Internal Acceptance Testing is performed by members that developed the software but who are not directly involved in the project (Development or Testing). Usually, it is the members of Product Management, Sales and/or Customer Support. It is also known as Alpha Testing.
External Acceptance Testing is performed by the people who are not employees of an organization that developed the software.
Customer Acceptance Testing is performed by the customers of an organization that developed the software. They are the ones who asked the organization to develop the software. This is in the case of the software not being owned by the organization that developed it.
User Acceptance Testing is performed by the end users of the software. They can be the customers themselves or the customers’ customers. It is also known as Beta Testing.
The satisfaction of the client is increased, as they are more confident that the requirements are met, without the ‘fear’ of how the product will behave in the real environment and if a critical issue will arise when least expected.
The quality criteria of the product is defined in the early phase of development/implementation.