Software testing can be defined as: testing is an activity that helps in finding out bugs/defects/errors in a software system under development, in order to provide a bug free and reliable system/solution to the customer. Here we will study two major categories testing-white box testing and black box testing.