Skip to content
Related Articles

Related Articles

Improve Article

Types of Software Testing

  • Difficulty Level : Easy
  • Last Updated : 23 Dec, 2020

Introduction:-

Testing is the process of executing a program with the aim of finding errors. To make our software perform well it should be error-free. If testing is done successfully it will remove all the errors from the software. 
 

Principles of Testing:-

(i) All the test should meet the customer requirements 
(ii) To make our software testing should be performed by a third party 
(iii) Exhaustive testing is not possible. As we need the optimal amount of testing based on the risk assessment of the application. 
(iv) All the test to be conducted should be planned before implementing it 
(v) It follows the Pareto rule(80/20 rule) which states that 80% of errors come from 20% of program components. 
(vi) Start testing with small parts and extend it to large parts. 

 

Types of Testing:-

 

1. Unit Testing

It focuses on the smallest unit of software design. In this, we test an individual unit or group of interrelated units. It is often done by the programmer by using sample input and observing its corresponding outputs. 
Example: 
 



a) In a program we are checking if loop, method or 
   function is working fine
b) Misunderstood or incorrect, arithmetic precedence.
c) Incorrect initialization

 

2. Integration Testing

The objective is to take unit tested components and build a program structure that has been dictated by design. Integration testing is testing in which a group of components is combined to produce output. 

Integration testing is of four types: (i) Top-down (ii) Bottom-up (iii) Sandwich (iv) Big-Bang 
Example 
 

(a) Black Box testing:- It is used for validation. 
In this we ignore internal working mechanism and 
focuse on what is the output?.

(b) White Box testing:- It is used for verification. 
In this we focus on internal mechanism i.e.
how the output is achieved?

 

3. Regression Testing

Every time a new module is added leads to changes in the program. This type of testing makes sure that the whole component works properly even after adding components to the complete program. 
Example 
 

In school record suppose we have module staff, students 
and finance combining these modules and checking if on 
integration these module works fine is regression testing

 

4. Smoke Testing

This test is done to make sure that software under testing is ready or stable for further testing 
It is called a smoke test as the testing an initial pass is done to check if it did not catch the fire or smoke in the initial switch on. 
Example: 
 

If project has 2 modules so before going to module 
make sure that module 1 works properly

 



5. Alpha Testing

This is a type of validation testing. It is a type of acceptance testing which is done before the product is released to customers. It is typically done by QA people. 
Example: 
 

When software testing is performed internally within
the organization

 

6. Beta Testing

The beta test is conducted at one or more customer sites by the end-user of the software. This version is released for a limited number of users for testing in a real-time environment 
Example: 
 

When software testing is performed for the limited
number of people

 

7. System Testing

This software is tested such that it works fine for the different operating systems. It is covered under the black box testing technique. In this, we just focus on the required input and output without focusing on internal working. 
In this, we have security testing, recovery testing, stress testing, and performance testing 
Example: 
 

This include functional as well as non functional 
testing

 

8. Stress Testing

In this, we give unfavorable conditions to the system and check how they perform in those conditions. 
Example: 
 

(a) Test cases that require maximum memory or other
    resources are executed
(b) Test cases that may cause thrashing in a virtual 
    operating system
(c) Test cases that may cause excessive disk requirement

 

9. Performance Testing

It is designed to test the run-time performance of software within the context of an integrated system. It is used to test the speed and effectiveness of the program. It is also called load testing. In it we check, what is the performance of the system in the given load.
Example: 
 

Checking number of processor cycles.

 

10. Object-Oriented Testing

This testing is a combination of various testing techniques that help to verify and validate object-oriented software. This testing is done in the following manner: 

  • Testing of Requirements,
  • Design and Analysis of Testing,
  • Testing of Code,
  • Integration testing,
  • System testing,
  • User Testing.

We use this OOT, for discussing test plans and for executing the projects.

This article is contributed by Kritka. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks. 

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
 

Go Premium (An Ad Free Experience with many more features)

My Personal Notes arrow_drop_up
Recommended Articles
Page :