Software testing is becoming as much vital today as is taking meals everyday. Researchers say that testing a day, keeps errors at the bay. Literature suggests that software testing should be done during requirements analysis phase, software design phase, software coding phase and also during software maintenance phase. Different types, different models and different layers of testing have been proposed in literature. The need is to test the software at every stage by any means. Testing may vary from documents testing (static testing) to code testing (dynamic testing). And finally, during maintenance phase also regression testing must be done. But locating errors in the source code is as much difficult as much is locating a pin in a haystack.