Blackbox and White box testng

Blackbox Testing:
As the name itself indicates, it is to test the software assuming that it is a 'black box' and you have  no visibility to internal design and logic of the software.

Following are the characteristics of Black Box testing.
  1. Provides an external perspective to test the software.
  2. It is carried out without the knowledge of the architecture,design and logic of the code the provides the functionality.
  3. Focuses on for certain input what should be the output.
  4. It can be carried out by a non-developer who is not having any knowledge about the internal logic of the code.
  5. Test cases are developed based on the requirement specifications.
  6. Both functional and non-functional requirements are covered as part of black box testing. 
Whitebox Testing:
White box implies a transparent box wherein you can observe the contents of the box and what is happening inside the box.Hence white box testing is one wherein testing is carried out with the visibility of the code and knowledge of design,logic of the code and different paths of execution control.

Following are the characteristics of white box testing.
  1. Testing based on structure or design of the software.
  2. Program-logic driven testing.
  3. Focuses on covering different paths of program execution.
  4. High code coverage is achieved compared to black box testing.