The current trend in user interfaces is geared towards graphical user interfaces (GUIs). GUIs are very complicated and hence GUI testing is very time consuming. Automation is a requirement for testing any larger graphical user interfaces, but automating GUI tests isn't a forthright task. Automation is not that easy at first. Testing always under time constraint: Every software comes to a team with deadlines and delivery dates. And that's the major challenge of automation, There is huge list of stories and tasks including understanding product requirements,writing test cases,writing automated test scripts ,executing them, make them run as a whole may be as a part of daily build,etc which needs to complete within specified time lines. Proper knowledge of the requirements: Most of the time business analysts are responsible for communicating with customers for understanding the requirements. What if tester fails to understand that requirements? Will she be able to test the application properly? Testers require good listening and understanding capabilities along with communication skills.