There are three methods of software testing and they are as follows:
Black-box testing: It is a testing strategy based solely on requirements and specifications. In this strategy, it requires no knowledge of internal paths, structures, or implementation of the software being tested.
White box testing: It is a testing strategy based on internal paths, code structures, and implementation of the software being tested. White box testing generally requires detailed programming skills.
Gray box testing: It is a strategy for software debugging in which the tester has limited knowledge of the internal details of the program.