GUI automated testing needs some experience, and I personally think that one year experience in a formal project should give you a good jump start in UI automation.

The following points are very important for automation of user interface testing:

1. Do not completely rely on the automation test tool’s record and play capability for GUI automation testing because that’s too rigid and will not give you the flexibility. I recommend you to learn a high-level language to automate the user interface testing of the application. These programming languages often comes with the necessary APIs to automation the user actions such as mouse click, select and edit etc. In some tools such as QTP, Rational Functional tester you can use scripting language such as VBscript, Javascript to do the programming at the time of automation. In most of the big projects they use manual programming instead of simple record and play. So if you really want to learn automation then make sure you master one or two of such languages.

2. Do not automate the part of the GUI which is not stable yet or too buggy. This will lead to lots of rework when the application interfaces changes. Start with some more stable part of the application. Mainly before automation make sure you can actually run the manual testing on that part of the application without any big defect.

3. Try to avoid using text to recognize the controls in your application such as OK button but use some fixed control properties to discover it, such as the Control ID and so on. In this case, the generated code will be more stable and change in the text of the control by the development team will not affect you. Also there will be no localization issues.

4. Solve the synchronization problem. GUI Automation is mostly unstable because of synchronization problems. For example you can not click on a row while the screen is still loading. So you need to wait for certain times before you can make the next click. In your automation you need to take care of these kinds of wait times.

5. During the GUI automated testing certain windows object such as tool tip, Balloon etc can pop up. You need to think and handle all those exception scenarios and put some work around action in place. For example if a pop up comes the automation will close it and then proceed etc.

From my experience most of the GUI automation test problem comes from any of the above points so if you can handle them from the beginning then there will be less challenges in future.