Learn, Share and Keep Learning
| Software Testing - Pattern For Automating Web Application |
|
One of the key reasons for doing automated testing is to ensure that time is not spent on doing repetitive tasks which can be completed by tools without human intervention. Automation could be one of the most effective tools in your toolbox but it is not a silver bullet that will solve all the problems and improve quality. Automation tools are obedient servants, and as a tester we need to become their master and use them properly to realize their full potential. It is very important to understand that automation tools are only as good as we use them. Converting test cases from manual to automated is not the best use of automation tools. They can be used in much more effective ways. Creating robust and useful test automation framework is a very difficult task. In the web world, this task becomes even more difficult because things might change overnight. If we follow so called best practices of automation taken from stable, desktop applications, they will not be suitable in web environment and probably will have negative impact on the project's quality. Many problems in the web world are identical to one another. For example irrespective of any web application we always need to validate things such as presence of title on all the pages.Depending on your context may be the presence of meta data on every page, presence of tracking code, presence of ad code, size and number of advertising units and so on. This solution was developed using Selenium Remote Control with Python as scripting language. One of the main reason for using tools such as Selenium RC is their ability to allow us to code in any language and this allow us to utilize full power of standard language. For this solution, a python library called Beautiful Soup was used to parse HTML pages. This solution was ported to another tool called Twill to make it faster. Since the initial code was also developed in Python, converting it to Twill was a piece of cake. Essentially this solution / script is a small web crawler, which will visit all the pages of any website and validate certain rules. As mentioned earlier, problem statement for this is very simple i.e. “ Validate certain rules on every webpage for any given website ”. In order to achieve this, following steps were followed 1.Get Page 2. Get All the links 3. Get first link and if link is not external and crawler has not visited it, open link. 4. Get Page Source 5. Validate all the rules you want to validate on this page 6. Repeat 1 to 5 for all the pages. It is worth mentioning here that rules that can be validated using this framework are the rules, which can be validated by looking at the source code for the page. Some of the rules that can be validated using this script are –
Above mentioned list might give you some idea of what can be achieved using this approach. This list can be extended very easily. It is limited only by your imagination :) In the next article, we will look at the code snippets and explain how easily these rules can be customized and validated across all the pages on any given domain. |