I’ve been doing web app GUI testing for more than 4 years now and while at it, I came across a variety of techniques, tools and approaches to test automation. I encountered problems as well. Each project I was involved in had its own specific problems that arose proportionally to the number of tests and the complexity of the framework. Sometimes these problems undermined automation effort entirely and were grounds for re-implementing tests and/or frameworks from scratch. Naturally, this affected testing, quality and the product itself.
The main problem usually was size and complexity of the framework. The bigger the scale, the more maintenance to perform. At some point automation effort entirely consisted of framework maintenance, fixing broken or updating outdated tests, etc. Pretty much every framework created in a rush did not stand the test of scaling the number of tests. It worked well when the tests were few, but quickly became unworkable when the tests were counted by the thousands.
This is why when a necessity to develop a test framework was occurring and I had the opportunity (skills, reputation, karma, etc.) to contribute, I did just that. I was seldom able to choose or weigh in when choosing a testing tool or a programming language, but I always had an opportunity to contribute to the framework design. My solutions were usually sure to be supported and noted by the superiors.
But before that I’ve spent quite a lot of time reading and experimenting. I’ve discovered quite a bunch of different techniques and frameworks, read through dozens of websites, forums, tutorials on test framework development, articles on tips and best practices. I even stumbled upon walkthroughs on implementing one’s own test framework. However, none of the resources I came across gave me a feeling that I had enough knowledge of the subject matter. I am convinced that test automation engineers all over the world face the same problem.
That is why I decided to collect all helpful information based on my knowledge and experience (which sometimes appeared after making mistakes and fixing them afterwards) and store it here as a step-by-step guide. This is my own story of how a GUI web test automation framework has been developed.
I will be happy to know that this information will help at least someone. Moreover, I hope that this information will spark a discussion that will help me and you learn and discover new skills, techniques and approaches.
Let’s share the knowledge!