Levels of Testing | Software Testing Material
Levels of Testing!! Before starting the post on Levels of Testing, let’s see what is Software Testing.
In Software development, both developers and testers work together to release a high-quality product. To release a high-quality product, every product goes through various testing processes. Coming to testing, testers use various levels of testing in the process of releasing a quality product. There are different levels of software testing. Each of these levels of software testing has a specific purpose. We will see each software testing level in detail.
What is Software Testing?
Software testing is a process, to evaluate the functionality of a software application with an intent to find whether the developed software met the specified requirements or not and to identify the defects to ensure that the product is defect free in order to produce the quality product.
Learn more:
Software Testing – Definition, Types, Methods & Approach
Levels of Software Testing:
Let’s see what are the levels of software testing:
Different levels of software testing are as follows.
1. Unit Testing
2. Integration Testing
3. System Testing
4. Acceptance Testing
Let’s see the levels of testing in detail.
UNIT TESTING:
Unit Testing is done to check whether the individual modules of the source code are working properly. i.e. testing each and every unit of the application separately by the developer in the developer’s environment. It is AKA Module Testing or Component Testing
INTEGRATION TESTING:
Integration Testing is the process of testing the connectivity or data transfer between a couple of unit tested modules. It is AKA I&T Testing or String Testing
It is subdivided into the Top-Down Approach, Bottom-Up Approach and Sandwich Approach (Combination of Top Down and Bottom Up). This process is carried out by using dummy programs called Stubs and Drivers. Stubs and Drivers do not implement the entire programming logic of the software module but just simulate data communication with the calling module.
Big Bang Integration Testing:
In Big Bang Integration Testing, the individual modules are not integrated until all the modules are ready. Then they will run to check whether it is performing well. In this type of testing, some disadvantages might occur like, defects can be found at the later stage. It would be difficult to find out whether the defect arouses in an interface or in a module.
Top-Down Integration Testing
In Top-Down Integration Testing, the high-level modules are integrated and tested first. i.e Testing from the main module to the submodule. In this type of testing, Stubs are used as a temporary module if a module is not ready for integration testing.
Bottom-Up Integration Testing
In Bottom Up Integration Testing, the low-level modules are integrated and tested first i.e Testing from sub-module to the main module. Same like Stubs, here drivers are used as a temporary module for integration testing.
Stub:
It is called by the Module under Test.
Driver:
It calls the Module to be tested.
Learn more on Integration Testing here
SYSTEM TESTING (END TO END TESTING):
It’s a black box testing. Testing the fully integrated application this is also called as an end to end scenario testing. To ensure that the software works in all intended target systems. Verify thorough testing of every input in the application to check for desired outputs. Testing of the users’ experiences with the application.
ACCEPTANCE TESTING:
To obtain customer sign-off so that software can be delivered and payments received.
Types of Acceptance Testing are Alpha, Beta & Gamma Testing.
Alpha Testing:
Alpha testing is mostly like performing usability testing which is done by the in-house developers who developed the software. Sometimes this alpha testing is done by the client or outsiders with the presence of developers or testers.
Beta Testing:
Beta testing is done by a limited number of end users before delivery, the change request would be fixed if the user gives feedback or reports defect.
Gamma Testing:
Gamma testing is done when the software is ready for release with specified requirements; this testing is done directly by skipping all the in-house testing activities.
Also Read: 100+ Types of Testing
Related Posts:
- Software Development Life Cycle (SDLC)
- Software Testing Life Cycle (STLC)
- Bug Life Cycle
- Test Deliverables
- Test Plan With Detailed Explanation
- Complete Guide to Writing Test Strategy
Hello Raj.
First of all I am thankful to you that you made such a easy and simple website for us to learn Testing.
I have one simple question ?
i.e. “What are actually these STUBS and DRIVERS in Integration Testing ?”
Hoping for your kind response.
Hi Tanuj Singh, These terms come into the picture while doing Integration Testing. While working on integration, sometimes we face a situation where some of the functionalities are still under development. So the functionalities which are under development will be replaced with some dummy programs. These dummy programs are named as Stubs or Drivers.
Imagine, we have two pages i.e., Login page and Admin page.
You have to test Login page (assume, Admin page is under development). The login page will call the Admin page after login but the Admin page is not ready yet. To overcome this situation developers write a dummy program which acts as Admin page. This dummy program is AKA Stub.
Stubs are ‘Called programs’. If a ‘Called program’ is incomplete, it is replaced with Stub. (This happens in Top down approach)
Coming to Drivers. In the above example, the Login page is ready but not the Admin page. this time assume that the Admin page is ready to test but the Login page is not ready yet. To overcome this situation developers write a dummy program which acts like Login page. This dummy program is AKA Driver. Drivers are ‘Calling programs’. If a ‘Calling program’ is incomplete, it is replaced with Driver. (This happens in bottom up approach)
Hope you are clear now.