GUI Testing
A very important thing you must do before releasing your web application into the wild is some sort of Graphical User Interface Testing. This kind of testing ensures that the interfaces between the client and servers execute in tandem. It is an important factor that these connections or interfaces work seamlessly without any failure or degradation in performance of speed and accuracy. The testing should also check for appropriate error messages. So, you must design these tests not only to check whether your application works as expected, but also to ensure that the performance is good enough.
GUI testing can cover applications areas that don’t have unit tests. It might be easier and require less time to write GUI tests rather than unit tests. But this approach is not recommended. If you’re serious about the quality of your products, then you should plan to write both unit tests and GUI tests. The reason is that GUI testing has a different domain and tries to find different kinds of errors than unit testing. GUI testing will find the parts of your applications that work in some web browsers but won’t behave correctly in some other web browsers (as IE, for example). Some other features that are normally tested include the loading and performance of the site along with the links, website security and log analysis.
In GUI functional testing, you can make use of a tool that will allow you to create tests that can mimic the activities or actions and the assessments of the actual human testers. This will help you get better results and be able to improve your website’s interface. You will also have this tool performing the tests whenever you tell it to. I like to configure my tests to be run nightly, so when I come in the morning I have a list of which tests passed and which ones I have to take a look at.
GUI testing tools assist test engineers with regard to recording test scripts, inserting verification points, and testing data:
- When capture/playback is turned on, it can record/reproduce the actions performed by a real person. It saves testers from writing test scripts by hand.
- Testing tools also have tests harnesses to manage the automated test scripts. Testers can use the available harnesses to schedule testing executions and manage effective regression testing by reusing the script library.
- Testers can use these tools as learning assistants. Testers can use the tool to learn the properties of different GUI components and learn how to operate different GUI components programmatically.
So, if you haven’t tried GUI testing yet in your web app, get to it ASAP. If you don’t know which GUI testing tool to use, give Selenium a try. Selenium provides a record/playback tool for authoring tests without learning a test scripting language. Selenium provides a test domain specific language (DSL) to write tests in a number of popular programming languages, including C#, Java, Ruby, Groovy, Python, PHP, and Perl. Test playback is possible in most modern web browsers. Selenium deploys on Windows, Linux, and Macintosh platforms.
Selenium is quite known and is the one I use, so I totally recommend it. However, if you want to check out some other tools of this kind, you have a list at Wikipedia.

