QA automation and the challenges it brings

If you have been long in the web UI development niche, you must have already been doing some testing automation or at least approaching this task. It is tempting to let a software do your low-level tasks instead of you but overall efficiency could be a problem. In order to reach an appropriate level of quality for your automated tests, you have to invest much time and efforts into setting up a platform and building scripts. If you skip the proper the preparations, you are likely to have a bunch of bad-structured tests returning false alarms or failing to capture actual bugs. In such a case automation was not helpful for your project at all.

Maintenance is another big challenge. After a certain part of functionality has been covered by automated tests, these tests must be reviewed on a regular basis. Otherwise they might become obsolete sooner or later. If CSS on of a page changes, Selenium tests running against this page are useless because they don’t check any layout or visual changes. A simple button moved to another place or a shifted text entry field could produce the same effect. Since the development of test coverage typically goes in parallel with features deployment and adding UI improvements, this problem is very likely to occur.

Malfunctioning automated tests usually keep returning errors all the time. This makes it easier to detect them. Sometimes an obsolete test might just fail to spot any bugs. You may end up with a a broken application element where everything was ‘green’ lately, according to your test results. To avoid such cases you have to review your ‘successful’ tests as well. Consequently, tests maintenance can take too much of your time.

What are the options in QA automation market?

Everyone should have tried Selenium or heard about it. A generation of QA automation engineers have been using its WebDriver, recording and running scripts for various web applications. The problem is that efficient Selenium usage requires a skilled developer actually. If you have a complex use case with 30+ steps, this means there will be a lot of coding to record and maintain an automated test for this scenario. The same applies to other prominent QA automation platforms such as TestComplete or Cucumber.

Unfortunately, most of today’s QA automation platforms are not capable of performing visual regression testing properly. This task is crucial however since disappearing images, deformed buttons or fonts, and other UI glitches are usually the first thing an average user would notice. Visual verification must be performed quite often, as a part of sanity testing, in case there are many fixes or implementations delivered which could affect the application outlook. It would be immensely helpful to automate this area too.

Visual testing automation - is there a way to do it simple and quick?

If you are searching for Selenium alternatives and would prefer a platform which does not require great coding skills, it is not a simple quest. It should allow testing your web UI in different browsers; and your tests should be easy to maintain. Finally this platform should be easy to learn, so that a QA engineer without a background in programming or even a non-technical person (e.g. a business executive who on the other hand has good understanding of your web product concept and therefore knows which feature has to be tested first of all) could start working with it after just a couple of hours of training.

One of the new Selenium alternatives is Screenster which was officially released this year. Unlike Selenium, Screenster is actually capable of automating visual regression testing process. It also does not require any coding: when recording a new test, user just performs necessary actions in a chosen browser (Firefox and Chrome are currently supported), and Screenster takes a screenshot for each step creating a visual baseline for this case. During a playback, user’s actions are repeated, and at each step a new screenshot is captured and compared to the respective screenshot from the baseline. As a result, this step is passed (if both screenshots are identical) or failed (if there are differences).

Other Screenster’s features include:

completely web-based: a single Screenster server in the cloud or within a corporate intranet can be used by multiple testers to record and run visual tests;

easy maintenance: visual tests can be reviewed, modified and overridden with new parameters;

smart CSS selectors: helpful for finding web page elements and performing operations over them (e.g. adding a new user’s action or excluding an element from visual comparison);

AJAX-friendly: smart handling of AJAX-based web apps’ behavior (hint: no timeout race conditions like in Selenium).

Finding a proper visual testing tool is a key factor of successful automation on your project. It is also important to consider all the needs and requirements before selecting one, so that the outcome would be efficient and high ROI would be achieved. If you need a quick and easy start without prolonged training or dealing with tons of documentation, a codeless web-based solution such as Screenster is definitely an option to consider.