Black Box Testing is a method of software testing that examines the functionality of an application without peering into its internal software structures (which is known as White Box Testing). This method of testing can be applied to virtually every level of software testing: unit, integration, system and acceptance. Black Box Testing is a form of penetration testing.
Test cases are built around specifications, requirements and what the application is supposed to do. Test cases are generally derived from external descriptions of the software, including specifications, requirements and design parameters. Although the tests used are primarily functional in nature, non-functional tests may also be used. The test designer selects both valid and invalid inputs and determines the correct output, often with the help of a test oracle or a previous result that is known to be good, without any knowledge of the test device’s internal structure.
Source: CNSSI 4009-2015, Practical Test Design: Selection of Traditional and Automated Test Design Techniques
Additional Reading: Penetration Testing for WordPress Websites