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.