Software Testing is a very important life cycle activity. It is an important validation steps before software can be taken live. Since the quality assurance processes in the software development, due to very nature of it are in infancy, software testing, a quality control activity is often called QA or quality assurance for software. Since the companies almost 100% rely on software testing to ensure quality of the software in market place, it is important that a systematic engineering approach is taken.