Software testing can be performed at different levels of 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 level of testing in brief and in the next tutorials we will explain each level individually, providing example and detailed explaination.
- 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 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). 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 which 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 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.