Thursday, April 18, 2013

Various Types of Testing

Testing is a wide domain with numerous testing types and techniques. With gaining experience, a tester also starts knowing about various testing techniques which are not used in each and every project but are important. Depending on the project requirements the tester may need to implement Gorilla Testing, Equivalence Partitioning Testing, Volume Testing or Negative Testing, etc.

Let’s have a look at some less popular but important testing techniques.


Equivalence Partitioning Testing

Equivalence Partitioning is black box testing technique in which input data is divided into different equivalence partition/data classes. Main goal of dividing input data is to reduce the number of test cases and select the right test case which covers all possible scenarios. It ensures that both negative and positive conditions are tested.


Boundary Value Testing

This testing technique is used to identify errors at boundaries rather than finding in the center of the input data. In most application errors occurs at the boundaries of input domain. If a field accepts value from 1 to 100, testing is done for values 0, 1, 2, 99, 100 & 101.


Gray Box Testing

Gray Box Testing type is combination of black box and white box testing types. In this type, tester has not full but some knowledge of internal structure and coding. Tester writes test cases on basis of that knowledge and then system is tested on those test cases.


Gorilla Testing

In Gorilla Testing, a particular feature/module/functionality of the project is tested exhaustively by multiple people to ensure that it works perfectly according to the requirements specified.


Monkey Testing

In this testing type, tester jump from one functionality to another to check the hidden errors in the system. Tester does not follow any test cases to perform this testing type. Tester randomly applies valid and invalid data (e.g. 31-Feb-2013) on the system to find defects.


Fuzz Testing

Here the tester input random data in the system without any formation to check that system is going to fail or hang. On basis of that tester approve the system as pass or fail.


System Integration Testing

Also know as SIT, in this technique the focus it to find bugs in the system as it integrates with different services, applications as well as third party applications.  This testing technique is used when your software interacts extensively with other services, third party applications, etc.


Recovery Testing

Recovery Testing is the process of testing that how fast and how efficiently an application can recover after experiencing software crash as well as hardware crash.


Security Testing

Security Testing tests the ability that how system prevents from unauthorized or malicious threats. Here the modules like authorization mechanism, data confidentiality, authentication process, etc. are thoroughly tested.  This testing is of utmost importance in software applications which deals with important data like online banking sites, etc.


Comparison Testing

Comparison Testing is the type of testing in which tester test the system’s strength and weakness with other competitive systems available in the market to make its own system better from the others.


Volume Testing

This type of testing focuses on finding the response of the software or application when different size/volume of data is being received, sent or processed by the software/application.  


Usability Testing

Usability Testing is performed to understand the user-friendliness of the software. End users are associated in this testing type and their response as well as feedback is taken into consideration to make software more user friendly.


Configuration Testing

Configuration Testing is generally associated with performance tuning. It is undertaken to find the optimal configuration settings in which the software/application can work at it best.


Error Handling Testing

Error Handling Testing primarily tests the software’s capabilities on handling expected and unexpected errors. This testing helps in making software ready to face any error which occurs during online/ongoing operations.


Negative Testing

Negative Testing implements “Test to Break” attitude. Entering incorrect data, uploading incorrect files, etc. are done to break the software; hence it helps in building very tough software which is hard to break.



A tester does not implement all these types of testing in each and every project, rather it completely depends on what the project expects from the tester. We will be discussing these techniques in detail in my future posts.