Black Box Testing is not a type of testing; it instead is a testing strategy,
which does not need any knowledge of internal design or code etc. As the name
"black box" suggests, no knowledge of internal logic or code structure is
required. The types of testing under this strategy are totally based/focused on
the testing for requirements and functionality of the work product/software
application. Black box testing is sometimes also called as "Opaque Testing",
"Functional/Behavioral Testing" and "Closed Box Testing".
The base of the Black box testing strategy lies in the selection of appropriate
data as per functionality and testing it against the functional specifications
in order to check for normal and abnormal behavior of the system. Now a days, it
is becoming common to route the Testing work to a third party as the developer
of the system knows too much of the internal logic and coding of the system,
which makes it unfit to test the application by the developer.
In order to implement Black Box Testing Strategy, the tester is needed to be
thorough with the requirement specifications of the system and as a user, should
know, how the system should behave in response to the particular action.
Various testing types that fall under the Black Box Testing strategy are:
functional testing, stress testing, recovery testing, volume testing, User
Acceptance Testing (also known as UAT), system testing, Sanity or Smoke testing,
load testing, Usability testing, Exploratory testing, ad-hoc testing, alpha
testing, beta testing etc.
These testing types are again divided in two groups: a) Testing in which user
plays a role of tester and b) User is not required.