Black Box Testing versus White Box Testing

Black Box Testing Definition and overview

Black Box testing or Functional testing is a test technique that is based on input possible data in software. In this technique, tester does not need to have knowledge about internal structure or business design of system. In fact, tester tries to find failures by input all possible data not only valid data. There are many advantages and disadvantages of Black Box testing.

Black Box Testing Pros

  • Tester does not need any document or help to starting test
  • Opportunity to test software as end user view
  • Tester does not need any knowledge in programming
  • Tester does not need to know about the structure of system and developer job
  • Tester and developer can work individually
  • Tester can be uneducated
  • Tester can find some unusual functionality that does not exist in internal functions


Black Box Testing Cons

  • In some cases, it cannot be reliable
  • It take too much time to input all possible data
  • It is difficult to figure out invalid output
  • Designing test case is difficult
  • Impact test case that designed by programmer
  • Finding reason of failures is hard
  • Testing in specification is hard
  • Slow and poor test in complexity



White Box Testing Definition and Overview

White box or Glass box testing is a technique that needs good knowledge about internal structure of system. For instance, tester needs programming skills to realize what is going inside application, so he/ she can do accurate test which cover all possible functionality. In addition, tester can analyze output and find reasons of failure easily. Indeed, there are many positive and negative point of White Box Testing.

White Testing Pros

  • It help to optimize code
  • Help developer in implementation code
  • Faster to find reason of failures
  • Help tester to design test case
  • It is more accurate
  • Help tester to choose the best input data
  • Tester also can find some hidden error in code


White Testing Cons

  • Tester needs to have knowledge in programming, so it is expensive
  • Lack of testing system as user view point
  • It causes to changing code which has considerable cost
  • Because of focus on internal structure, it is poor in finding some failures that happened by all valid inputs