Software testing is a vital part of software development life cycle, to ensure the developed program is bug-free, consistently meeting and exceeding the customer expectations in terms of quality. This can be achieved by a well-managed test life-cycle supported by some excellent engineers.