Testing Enterprise Applications: Selenium and HTML5 Robot

The deployment of web technology on different softwares has called for highly advanced testing technologies into play. With the rise of the web, the need for browser-based test automation is difficult to ignore. There is no denying that manual testing is time-consuming, expensive and can be error-prone. Therefore, many businesses are in the cost-cutting spree and they are decreasing the size of IT staff, and are leaning towards automated testing.

Be it cloud application, web application or mobile application testing technology, testing plays a vital role in order to analyze bugs and fixes and combat them. While it is important to test an application before its launch, it is also important to see that it does not consume much time.

Many of the IT companies, nowadays, use Selenium for web browser test automation. Selenium has become the standard for automating web applications for testing purposes because of its ease of use and widespread adoption. It attracts huge support from some of the largest browser vendors who have made or are making Selenium a native part of their browser. Selenium is also the core technology in numerous other browser automation tools, APIs, and frameworks.

However, the static DOM and form-based web applications in Selenium are gradually becoming outdated. The new generation web application frameworks like Sencha Touch and ExtJS dynamically alter the DOM as the user interacts with the application.

To ease the constraints of using Selenium with HTML5 technologies, HTML5 Robot has been created. HTML5 Robot extends the capabilities of Selenium by adding specific component lookup and interaction support for HTML5 frameworks, which include technologies like Ext JS 4, Ext JS 5, and Sencha Touch 2.

HTML5 Robot is built on a series of best practices for how to reliably look up and interact with those components in enterprise web applications. It can also be utilized as a Java framework for writing and managing test suites, or as a Java library.

Now that we have talked testing enterprise applications and the automation technologies used for the purpose, let’s understand what web testing is.

What is Enterprise Web Application Testing?

It is an activity, a tester has to perform every day, in order to combat bugs or analyze the behavior of the application to predict the chances of any further repercussions in the future. In order to begin the testing process, a tester has to go through the following checklist:

Functionality Testing

It is also called website functional testing, and it is the process of checking all the site navigation external links, images, streaming content, form submission, exception handling, Ajax functionality, state maintenance, e-commerce transaction, search functionality, transaction handling and printing web pages. The tester has to take proper care so that the internal links, links jumping on the same page and outgoing links are intact. There should be no orphan pages and broken links.

Usability Testing

This is a user level testing, done to test how internet or browser friendly the website is. Major things that a tester has to look for are the responsiveness of the website, caching behavior, ease of usage, configurability, and localization. He/she must verify that the main menu is present in every page or not and how user-friendly it is in terms of consistency, instructions, and content.

Interface Testing

The two most popular interfaces are web server and application server interface and application server and database server interface. The tester must ensure that the servers are properly executed, and errors and bugs are fixed. If there occurs an error in database or web server, for any query initiated by an application server, then the application server must pick the error and display it appropriately to the user.

Compatibility Testing

Website compatibility is evaluated in four different tests:

Operating System Compatibility- Some functionality of the web applications may not be compatible with the operating system. All new web development technologies are not likely to be available in all the operating systems. So, the tester must perform the test in OSes like Windows, Linux, Unix, Solaris and so on.

Browser Compatibility- All the browsers have their own configuration and settings that the web page must be compatible with. The website must be cross browser compatible.

Mobile Browsing- As mobiles are a ruling technology in modern era, it is very important for the web pages to perform well on all mobile browsers.

Performance Testing

This test is done in two phases, web load testing and web stress testing. Web load test is performed by the tester to ensure that the website is able to handle heavy load on specific pages, simultaneous user requests, and connections to database, large user inputs and so on. Whereas, the web stress testing is performed by breaking the site using stress. It is done to see how the system reacts to stress and recovers from crashes.

Security Testing

This testing is done by pasting internal URL onto the address bar of the browser without login. The tester must ensure that

Web directories and files are not directly accessible without a download option.

The Captcha for automated script logins must be checked

All the error messages, transactions, security breach attempts must get stored in log files somewhere in the web server.

A Brief About Selenium

Selenium is an open source suite of automated testing tools for web applications across different browsers and platforms. It is a bundle of softwares, each catering to different testing needs of an enterprise. Selenium comprises four components:

  • Selenium Integrated Development Environment (IDE) – It is a prototyping tool basically used for building scripts. It is a Firefox plugin that provides a very friendly interface to develop automated tests.
  • Selenium Remote Control (RC) – It was the most powerful tool before Selenium and Webdriver merged. Now it is not actively supported anymore, especially in maintenance mode.
  • WebDriver – This is the latest addition to the Selenium toolkit. It provides awesome features that include cohesive and object oriented API. The limitations in the old implementation are sorted out as well.
  • Selenium Grid – It allows the Selenium RC solution for scaling large test suites and testing suites that must be run in multiple environments. Selenium Grid allows the tester to run tests in parallel, in other words, different tests can be run simultaneously on different remote machines.

Although Selenium has been developed by different developers, as it is a collection of tools, it was primarily created by Jason Huggins, an engineer at ThoughtWorks in 2004.

Understanding HTML5 Robot

HTML5 Robot was developed by John Valentino of AppFoundation, a full-services software consultancy firm that specializes in enterprise application development. It provides enterprises with a solution to easily and automatically test web applications in any version of almost any web browser.

HTML5 Robot is not just a suite of technology but it is a methodology for quickly creating maintainable automated tests that do not break with minor changes. This technology was created to solve the difficulty faced by the current test automation tools during the testing of HTML5 based web applications which generate a lot of complex HTML and JavaScript.

HTML5 Robot predefines all the HTML components such as buttons, inputs, and tables, as well as all necessary Sencha/Ext JS components like sliders, grids, color pickers, and dialogs. This enables you to start building tests right away, instead of having to spend time and resources on understanding how to interact with the various components of a Sencha/Ext JS web application.

HTML5 Robot also comes with extensive online user documentation, in addition to working examples of both Java and Gwen, stands for Generic Web Exploration Narrative, a human-style language provided by HTML5 Robot for interacting with the browser.

Testing Enterprise applications is critical to running profitable business organizations. Therefore, it is important to choose the right test automation tool while minimizing the expenditure, in terms of time and resources apart from maintaining accuracy and precision.

Leave a Reply

Your email address will not be published. Required fields are marked *