Levels of Software Testing


Testing levels prevent overlap and repetition between the development life cycle phases.

Testing Levels

The various levels of testing are:

levels of testing

1. Unit testing

  • This testing is performed at developer's end to make sure that their code is working well and meets the user specifications.
  • The aim of unit testing is to divide every part of the program and test that the separate part are working correctly.

2. Component testing

  • Component testing is known as module and program testing.
  • In unit testing, the developers test their piece of code but in component testing, the whole component is tested.
  • In component testing, missing software is replaced by Stubs and Drivers.
stub driver

Stub is considered as subprogram.It is a simple main program.
Stub does not accept test case data.Driver accepts test case data.
It replaces the modules of the program into subprograms. These modules are tested by the next driver.Pass the data to the tested components and print the returned result.

3. Integration testing

  • In integration testing, the interfaces between the components are tested
  • It also tests the interactions with different parts of a system i.e an operating system, file system and hardware or interface between the system.
Following are the approaches of integration testing:

i) Top down
ii) Bottom up

i) Top down

  • It is an incremental approach for building the software architecture.
  • It starts with the main control module or program.
  • Modules are merged by moving downward through the control hierarchy.

ii) Bottom up

In bottom up integration testing the components are combined from the lowest level in the program structure.

4. System testing

  • The system testing is the final test instead of development, to check that the system to be delivered meets specified requirement or not.
  • System testing is executed by specialists testers or independent testers.

5. Acceptance testing

  • Most of the defects are corrected in system test after which the system will be delivered to the user or customer for acceptance testing.
  • The aim of acceptance testing is to begin confidence in the system, part of the system. It is focuses on a validation type of testing.

6. Alpha testing

  • Alpha testing is the software testing strategy used in software development.
  • Alpha testing is performed by a group i.e independent of design team which is a part of the company.
  • This testing is the final testing before the software is released to the public.
  • It has the following two phases:
  • In the first phase of alpha testing, software is tested by in-house developers and uses debugger software or hardware-assisted debuggers. The aim of this phase is to catch bugs quickly.
  • In the second phase, software is delivered to the software QA staff for the intended use.

7. Beta testing

  • Beta testing is also known as field testing.
  • Beta testing is executed at end-user site, in the absence of a developer.
  • The aim of beta testing is to place an application to the real users to find any defect from the user's view.
  • In beta testing, the developer corrects the errors as users report the problems.