Testing GUI application can be tedious work. Usually, you have to manually click through the interfaces. The first round is fun, the second is OK, and from the third round on it is boring.
When I joined Radiant, I started to think about automation. I searched on
Internet but I did not find anything satisfying. All tools were basically record/play applications. That is not sufficient for testing. There are many concerns, for example:
- How do you verify the test result?
- How easy can you change the script (add testing of a new field, new form, etc.)
- Scalability - how easy can you join basic scripts and create bigger (regression) script?
- How the test application works with your amended components?
- etc.
I know the testing tool cannot do everything. So I set up several goals I'd like to achieve:
- Allow to control GUI application.
That means to start it, navigates through it, close it. To know its status. - Allow to read values from the screen.
You have to know what is on the screen to be able to test it. - Allow to set values.
Also, you have to be able to set/write values into the application to be able to test it. - Easy to create.
Testers are not experienced programmers. The tool must be easy to use. Anybody, who knows what a program is, should be able to write a test script.
- Easy to maintain.
When the tested application changes, amending a test script should not be necessary or be a piece of cake.
- Scalability.
Joining test scripts together, creating regression scripts.
In next few weeks, you'll find out on this blog how I succeed in this task.