White box testing is used to test the internal logic and structure of the code of any software. White box testing is also known as glass-box testing, structural-box testing, open box or clears box testing. Testing plans are made according to the details of the software implementation, such as programming language, logic, and styles. Test cases are derived from the program software development structure. It also includes branches, paths, statements and internal logic of the code etc.

In a sequence to execute white box testing, the testing professionals have to deal with the code and hence are required to possess knowledge of coding and logic that is internal working of the code. White box test also requires software development the tester to check into the code and search out which unit/statement/chunk of the code is not working or malfunctioning.

Benefits of White box testing are:

i) The first and most important is need to have understand of internal coding structure, the it becomes very easy to search out about the errors or bugs with effective way in testing the application easily.
ii) The white box testing helps to optimizing the code
iii) It helps in removing the extra lines of code, that can bring in hidden errors and defects.

Disadvantages of white box testing are:

i) As knowledge of code and internal structure is a prerequisite, an expertise tester is required to perform the testing, which increases the cost.
ii) And it is almost unfeasible to go into every bit of code to search out hidden errors that might create errors, resulting in failure of the application.

Types of testing under White/Glass Box Testing Strategy:

Unit Testing:

In this strategy developer carries out unit testing in order to verify the particular module or unit of code is working fine or not. The Unit Testing approach at the very fundamental level as it is clutched out as and when the unit of the code is developed.

Static and dynamic Analysis:

Static analysis employ going through the code so as to search out all possible imperfection in the code. Dynamic analysis engages carry out the code and analyzing the output in software development .

Statement Coverage:

In this kind of testing the code is perform in such a way that at least once, every statement of the application is executed. It helps in assuring that all the statements execute without any side effect.

Branch Coverage:

There not any software application that are written in an incessant mode of coding, at some point we require to branch out the code so as to carry out a particular functionality. Branch coverage testing which helps to validate all the branches in the code and making sure that no branching leads to unusual software development performance of the application.

Security Testing:

Security Testing is performed in order to search out in software development how well the system can protect itself from illegal access, hacking, cracking, damage code etc. that deals with the code of application. This kind of testing requires sophisticated testing methods.

Mutation Testing:

In this testing application is tested for the code which was modified after fixing a particular bug or defect. It also helps in finding out which code and which strategy of coding can help in developing the functionality successfully.