Software testing can be performed at different levels of the software development process. Performing testing activities at multiple levels help in early identification of bugs and better quality of software product. In this tutorial, we will be studying the different levels of testing namely – Unit Testing, Integration Testing, System Testing, and Acceptance Testing.
Now, we will describe the different testing levels of testing in brief and in the next tutorials, we will explain each level individually, providing an example and detailed explanation.
- 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 an 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 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 (the third type called Sandwich Integration is also used). We will refer to each approach in our Integration Testing Tutorial.
- 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 that is very similar to the production environment.
- 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 the developer’s site it is known as alpha testing. User acceptance testing done by end-users at end-users site is called beta testing.