Writing software is a difficult and expensive task. The large volume of software, lack of or partial software requirement and frequent update in software requirement makes software vulnerable without rigorous testing. Manual testing is infeasible in such an arena and lead to unwanted changes in code and specification. Because of increasing use of software in industry, automation of the software testing process has thrown a challenge to the researchers in this field. In this paper, we have presented a comprehensive guideline to tackle the challenge.