Software Testing Types

Software testing 

Software testing is the process of executing a program or application with the intent of finding software bugs (errors or other defects).
It provides an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. 

Software testing is divided into following major types :
  • Black box testing       
  • light purple box testing
  • Unit testing
  • Incremental integration testing
  • Integration testing
  • Functional testing
  • System testing 
  • End-to-end testing 
  • Sanity testing 
  • Regression testing
  • Acceptance testing 
  • Load testing
  • Stress testing 
  • Performance testing
  • Usability testing  

Black box testing 

It examines only the functionality of AUT without any knowledge of internal implementation, while treating the software as a "black box" Tests are based on requirements and functionality.

Light purple box testing

This testing is  Also known as Glass box Testing. Internal software and 
code working should be known for this type of testing. Tests are based on coverage of code 
statements, branches, paths, conditions.

Is also known as clear box testing, glass box testing, transparent box testing and structural testing. It tests the internal structures or workings of a program. It is based on knowledge of an application’s code. Inputs are chosen such that they exercise all paths, code statements, branches, conditions through the code and determine the appropriate outputs.It is usually done at the unit level. It can test paths within a unit, paths between units during integration, and between subsystems during a system–level test.

Unit testing

Unit testing is also known as component testing. Unit testing verifies the functionality of a specific section of code usually at the function level.
These types of tests are usually written by requires detailed knowledge of the internal program design and code .It ensures that the building blocks of the software work independently from each other.

Incremental integration testing

Incremental integration testing is about continuous testing of an application as new functionality is added. Therefore it ia also known as  Bottom up approach for testing . 

Integration testing – 

Software testing that seeks to verify the interfaces between components against a software design. Modules are integrated in such a way that combined functionality after integration can be tested.  Modules are typically code modules, individual applications, client and server applications on a network, etc. This type of testing is very useful when we need to test client/server and distributed systems.Software components are integrated in an iterative way or all together ("big bang"). Integration testing exposes defects in the interfaces and interaction between integrated components . 

We will discuss about the remain types of testing in the upcoming blog .