Black Box Testing is a kind of testing that is performed without knowledge about internal structures or workings of the application. This testing can be used on all the testing levels such as unit, integration, system and acceptance. There are different techniques of black box testing for example: all-pair testing, decision table testing, equivalence portioning, etc.
One of the advantages of this type of testing is that it’s unbiased as development team and testing team work independently. The application is tested form the point of view of end-user. Tester doesn’t need any programming knowledge.