Two aspects of software testing.
White-Box testing: Testing through the source code of the program without using the user interface. This type of test needs to be revised from the code syntax to find flaws or errors in algorithms, overflows, paths, conditions, and so on.
Black-Box testing: The use of the entire software or some kind of software features to rigorously test, and did not check the source code of the program or a very clear understanding of the software source code program specifically how to design. Testers understand how the software works by entering their data and then looking at the results of the output. At the time of the test, the program as a black basin can not be opened, without regard to the internal structure of the program and internal characteristics of the case, the tester in the program interface test, it only check whether the program function is in accordance with
the requirements of the specifications of the normal use, the program can properly receive and correct output