Why UI testing is SO hard
The idea of automating UI tests is very alluring, but often the first experience with testing tools gives an impression like "Oh, it shouldn't be SO hard! Something must be wrong!". Some people decide that automated UI testing is fundamentally broken and should be avoided at all costs, others think that there is an essential complexity in it and spend significant efforts on building their own application-specific libraries on top of existing UI testing frameworks. Have you ever wondered if we can do better?
In the first part of this talk we'll take a look at a user interface of Eclipse-based application from a testing tool's point of view, to understand what exactly makes it hard to automate testing, and discuss the following topics:
- What is the difference between human and tool perception of UI
- Why is it so complicated to make proper recording of user actions
- What makes UI test cases being so fragile
- Why some aspects of UI are so difficult to verify
We think that a significant improvement of this situation is possible when UI testing tool goes way beyond the level of widgets and incorporates with a lot of knowledge about internals of an application. That's how we made RCP Testing Tool – automated UI testing solution for applications built on top of Eclipse platform. In the second part we will talk about RCPTT implementation details and explain how it can do things that no other tool can do.