Software testing is the process which involves validating and verifying of a software program or an application. Software testing depending on the methods used to test, can be implemented at any time in the process of development. Typically there are two types of software testing methods one is white box testing method and the other is black box testing method.

White Box Testing:
White box testing is used to test the software and it tests the internal structures of an application. This test is conducted at unit, integration and system levels of a software testing process. The following are the types of white box testing:

  • API Testing – In this method, testing of application is done using public and private APIs.
  • Code Coverage – These tests are created to satisfy some criteria of code coverage.
  • Fault Injection Methods – Coverage of the test can be improved by introducing faults to test code paths.
  • Static testing and Mutation testing methods.

White box testing methods can also be used to evaluate the completeness of a test suite that was created with black box testing methods.

Black Box testing:
Black box testing is a method used for testing the functionality of the software and the method of test can be applied to all the levels of software testing
like unit, integration, functional, system and acceptance. Block box testing methods includes equivalence partitioning, boundary value analysis, all pairs testing, model based testing, fuzz testing and exploratory testing. The tester in the black box model has no bonds with the code and tester’s perception is simple, they find bugs where programmers do not. Black box testing has an advantage of an unaffiliated opinion and disadvantage of blind exploring.