Black box testing is a form of software testing during which the functionality of an application is tested without looking at the code or internal structure. Any test which examines the interface of the application is considered black box testing. There is a wide range of test types that fall under this category of testing, including functional testing, regression testing, integration testing and user acceptance testing.