Black Box Testing
Black Box Testing
Black box testing – Internal system design is not considered in this type of testing. Tests are
based on requirements and functionality.
White box testing – This testing is based on knowledge of the internal logic of an application’s
code. 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.
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.
Incremental integration testing – Bottom up approach for testing i.e continuous testing of an
application as new functionality is added; Application functionality and modules should be
independent enough to test separately. done by programmers or by testers.
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.
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.
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.
Comparison testing – Comparison of product strengths and weaknesses with previous versions
or other similar products.
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.
SMOKE TESTING
This type of testing is also called sanity testing and is done in order to check if the application is
ready for further major testing and is working properly without failing up to least expected level.
A test of new or repaired equipment by turning it on. If it smokes... guess what... it doesn't work!
The term also refers to testing the basic functions of software. The term was originally coined in
the manufacture of containers and pipes, where smoke was introduced to determine if there were
any leaks.
A common practice at Microsoft and some other shrink-wrap software companies is the "daily
build and smoke test" process. Every file is compiled, linked, and combined into an executable
program every day, and the program is then put through a "smoke test," a relatively simple check
to see whether the product "smokes" when it runs.