Software Test Levels

Software Test Levels in Software Development Process

Test Level: A specific instantiation of a test process.

Software Test Levels are the different stages of the software development life cycle where testing is conducted.

In order to increase the Quality of Software we go for multiple levels of Testing instead of conducting single stage of Testing.

Test Levels identify missing areas and prevent overlap and repetition.

There are four levels of software testing:

1) Unit Testing
2) Integration Testing
3) System Testing
4) Acceptance Testing

1) Unit Testing

The most basic type of Testing is Unit or Component Testing, Unit Testing is a level of software testing where individual units/ components of a software are tested and the purpose of Unit Testing is to validate that each unit of the software performs as designed.

Unit or Component Testing may include Testing of Functionality and specific Non Functional characteristics such as resource-behavior (Ex: Memory leaks), performance or robustness testing, as well as structural testing (ex: Decision Coverage). Test cases are derived from Software Design or the data model.

It is normally performed by software developers using the White Box Testing method, in rare cases, it may also be performed by independent software testers.

2) Integration Testing

Integration Testing tests interfaces between components, interactions to different parts of a system such as an operating system, file system and hardware or interfaces between systems.

Integration Testing is often carried out by the integrator, but preferably by a specific integration tester or test team. Test drivers and test stubs are used to assist in Integration Testing.

Integration Testing can be conducted in two states for some applications, component integration testing after Unit Testing and system integration testing after system testing.

Component Integration Testing: Testing performed to expose defects in the interfaces and interaction between integrated components.

System Integration Testing: Testing the integration of systems and packages; testing interfaces to external organizations.

3) System Testing

System Testing: The process of testing an integrated system to verify that it meets specified requirements.

System Testing should investigate both functional and non functional requirements of the system and testers may also deal with incomplete or undocumented requirements.

System Testing requires a controlled Test Environment as well as stable software build/s and the test environment should correspond to the production environment as much as possible in order to minimize the risks.

Normally Independent Testers perform System Testing using Black Box Testing Method.

4) Acceptance Testing

Acceptance Testing is a level of software testing where a system is tested for acceptability. The purpose of this test is to evaluate the system’s compliance with the business requirements and assess whether it is acceptable for delivery.

Acceptance test has two stages, first one is Alpha testing, this test takes place at developer’s site, A cross section of potential users and members of the developer’s organization are invited to use the system. Developers observe the users and note problems. Next Beta Testing or field testing, sends the system to a cross-section of users who install it and use it under real-world working conditions.

We have different Acceptance Tests, User Acceptance Testing is performed by the end users of the software. The User acceptance test focuses mainly on the functionality of the system and operational acceptance test (also called production acceptance test) validates weather the system meets the requirements for operation. The operational acceptance test may include testing of backup/restore, disaster recovery and maintenance tasks etc…

Software Test Levels in Software Development Process

Software Test Levels

1) Unit or Component Testing
2) Integration Testing
3) System Testing
4) Acceptance Testing

Software Test Types

1) Functional Testing
2) Non Functional Testing
3) Structural Testing
4) Change Related Testing (Re & Regression Testing)

Software Test Design Techniques

1) Static Testing (Static Test Design) 

a) Informal Review
b) Walkthrough
c) Inspection Etc…

2) Dynamic Testing (Dynamic Test Design)

a) White Box Test Design
b) Black Box Test Design
c) Experience Based Test Design


You may also like...

Leave a Reply