Testing has 2 main Strategies: Black Box Testing and White Box Testing:
A) Black Box Testing: Black box testing is a type of testing that ignores the internal part of a system or component. In this the tester does not have access to the source code, the code is like a "big black box" for the tester who cannot see what is inside the box. It is also known as Functional testing.
Advantage: The main advantage of black box testing is that it can be done before the design and
coding of a program.
Disadvantage: And the disadvantage is that black box test cases cannot detect additional
functions or features that have been added to the code.
B) White Box Testing: White box testing is a type of testing in which the focus is totally on the internal mechanisn of the system. White box test cases are selected using the specification, design and code of the program or functions under test. It is also known as Structural or Glass box testing.
Advantage: The advantage of white box testing is that it can check additional functions or code
that has been implemented, but not specified.
Disadvantage: The disadvantage of white box testing is that tester has to wait until after design
and coding of the programs of functions under test have been completed in order to
select test cases.