The different levels of testing namely - Unit Testing, Integration Testing, System Testing and Acceptance Testing.
Unit Testing
- Unit Testing is the first level of testing usually performed by the developers.
- In unit testing a module or component is tested in isolation.
- As the testing is limited to a particular module or component, exhaustive testing is possible.
- Advantage - Error can be detected at early stage saving time and money to fix it.
- Limitation - Integration issues are not detected in this stage, modules may work perfectly on isolation but can have issues in interfacing between the modules.
Integration Testing
- Integration testing is the testing of a group of related modules.
- It aims at finding interfacing issues between the modules.
- It can be done in two ways - bottom-up integration and top-down integration (third type called Sandwich Integration is also used).
System Testing
- System Testing is the level of testing where the complete integrated application is tested as a whole.
- It aims at determining if the application conforms to its business requirements.
- System testing is carried out in an environment which is very similar to the production environment.
Acceptance Testing
- Acceptance testing is the final and one of the most important levels of testing on successful completion of which the application is released to production.
- It aims at ensuring that the product meets the specified business requirements within the defined standard of quality.
- There are two kinds of acceptance testing- alpha and beta testing. When acceptance testing is carried out by end users in developer's site it is known as alpha testing. User acceptance testing done by end users at end-user's site is called beta testing.