Unit
testing –
Testing of individual software components or modules. Typically done
by the programmer and not by testers, as it requires detailed
knowledge of the internal program design and code. may require
developing test driver modules or test harnesses.
Integration
testing –
Testing of integrated modules to verify combined functionality after
integration. Modules are typically code modules, individual
applications, client and server applications on a network, etc. This
type of testing is especially relevant to client/server and
distributed systems.
Functional
testing –
This type of testing ignores the internal parts and focus on the
output is as per requirement or not. Black-box type testing geared to
functional requirements of an application.
System
testing –
Entire system is tested as per the requirements. Black-box type
testing that is based on overall requirements specifications, covers
all combined parts of a system.
Smoke testing -Smoke
testing is the initial testing process exercised to check whether the
software under test is ready/stable for further testing.
Sanity
testing -
Testing to determine if a new software version is performing well
enough to accept it for a major testing effort. If application is
crashing for initial use then system is not stable enough for further
testing and build or application is assigned to fix.
Regression
testing –
Testing the application as a whole for the modification in any module
or functionality. Difficult to cover all the system in regression
testing so typically automation tools are used for these testing
types.
User
Acceptance testing -Normally
this type of testing is done to verify if system meets the customer
specified requirements. User or customer do this testing to determine
whether to accept application.
Load
testing –
Its a performance testing to check system behavior under load.
Testing an application under heavy loads, such as testing of a web
site under a range of loads to determine at what point the system’s
response time degrades or fails.
Stress
testing –
System is stressed beyond its specifications to check how and when it
fails. Performed under heavy load like putting large number beyond
storage capacity, complex database queries, continuous input to
system or database load.
Performance
testing –
Term often used interchangeably with ‘stress’ and ‘load’
testing. To check whether system meets performance requirements. Used
different performance and load tools to do this.
Usability
testing –
User-friendliness check. Application flow is tested, Can new user
understand the application easily, Proper help documented whenever
user stuck at any point. Basically system navigation is checked in
this testing.
Recovery
testing –
Testing how well a system recovers from crashes, hardware failures,
or other catastrophic problems.
Security
testing –
Can system be penetrated by any hacking way. Testing how well the
system protects against unauthorized internal or external access.
Checked if system, database is safe from external attacks.
Compatibility
testing –
Testing how well software performs in a particular
hardware/software/operating system/network environment and different
combination s of above.
Alpha
testing –
In house virtual user environment can be created for this type of
testing. Testing is done at the end of development. Still minor
design changes may be made as a result of such testing.
Beta
testing –
Testing typically done by end-users or others. Final testing before
releasing application for commercial purpose.




