Difference between Black Box Testing and White Box testing.
S.No
|
Black
Box Testing
|
White
Box Testing
|
1
|
The
main objective of this testing is to test the Functionality / Behavior of the
application.
|
The
main objective is to test the infrastructure of the application.
|
2
|
This
can be performed by a tester without any coding knowledge of the AUT
(Application Under Test).
|
Tester
should have the knowledge of internal structure and how it works.
|
3
|
Testing
can be performed only using the GUI.
|
Testing
can be done at an early stage before the GUI gets ready.
|
4
|
This
testing cannot cover all possible inputs.
|
This
testing is more thorough as it can test each path.
|
5
|
Some
test techniques include Boundary Value Analysis, Equivalence Partitioning,
Error Guessing etc.
|
Some
testing techniques include Conditional Testing, Data Flow Testing, Loop
Testing etc.
|
6
|
Test
cases should be written based on the Requirement Specification.
|
Test
cases should be written based on the Detailed Design Document.
|
7
|
Test
cases will have more details about input conditions, test steps, expected
results and test data.
|
Test
cases will be simple with the details of the technical concepts like
statements, code coverage etc.
|
8
|
This is
performed by professional Software Testers.
|
This is
the responsibility of the Software Developers.
|
9
|
Programming
and implementation knowledge is not required.
|
Programming
and implementation knowledge is required.
|
10
|
Mainly
used in higher level testing like Acceptance Testing, System Testing etc.
|
Is
mainly used in the lower levels of testing like Unit Testing and Integration
Testing.
|
11
|
This is
less time consuming and exhaustive.
|
This is
more time consuming and exhaustive.
|
12
|
Test
data will have wide possibilities so it will be tough to identify the correct
data.
|
It is
easy to identify the test data as only a specific part of the functionality
is focused at a time.
|
13
|
Main
focus of the tester is on how the application is working.
|
Main
focus will be on how the application is built.
|
14
|
Test
coverage is less as it cannot create test data for all scenarios.
|
Almost
all the paths/application flow are covered as it is easy to test in parts.
|
15
|
Code
related errors cannot be identified or technical errors cannot be identified.
|
Helps
to identify the hidden errors and helps in optimizing code.
|
16
|
Defects
are identified once the basic code is developed.
|
Early
defect detection is possible.
|
17
|
User should
be able to identify any missing functionalities as the scope of this testing
is wide.
|
Tester
cannot identify the missing functionalities as the scope is limited only to
the implemented feature.
|
18
|
Code
access is not required.
|
Code
access is required.
|
19
|
Test
coverage will be less as the tester has limited knowledge about the technical
aspects.
|
Test
coverage will be more as the testers will have more knowledge about the
technical concepts.
|
20
|
Professional
tester focus is on how the entire application is working.
|
Tester/Developer
focus is to check whether the particular path is working or not.
|