Black-box testing is a testing technique where the tester has no knowledge of the internal workings of the application being tested. The tester only tests the application based on its specifications and requirements. White-box testing, on the other hand, is a testing technique where the tester has knowledge of the internal workings of the application being tested. The tester tests the application by looking at the source code, internal algorithms, and system architecture.