Typically, i”ll write a lot on mobile app testing, tools, trends, coverage and such.
In this blog, I actually wanted to share some up to date trends as I see them in the web landscape.
The web market has shifted a lot over the past years alongside the mobile space. We see a clear use of specific development languages, development frameworks and of course specific test frameworks aimed to test Angular, jQuery, Bootstrap,.Net and other websites.
From a Dev Language perspective, the web FE developer is mostly using the following languages as part of his job:
There are some trends seen recently by developers around shifting to non AngularJS web development framework like Aurelia, React, and Vue.JS that are seeing a growing usage and adoption by developers due to considerations such as (larger list of Pro’s/Con’s are in source 1 below). With this trend in mind, and you’ll read in my references below, the new solutions are still not as complete as AngularJS is.
- Shorter learning curve
- Simple to use, clean
- Lightweight compared to others (less than half the size of AngularJS e.g.)
- Better performing
- Easy to integrate with other front-end stack tools
- Responsive server-side rendering (Vue.JS supports it, reduces time for users to see rendered content)
- SEO Friendly
- Good documentation and Community Support
- Good debugging capabilities
Source 1: https://www.slant.co/topics/4306/~angular-js-alternatives
Source 2: https://w3techs.com/technologies/details/js-angularjs/all/all
Now, that we have seen the leading web development languages, and frameworks used these days, let’s drill down into what test automation engineers are adopting.
Selenium without a doubt is the leading and base for most frameworks, however, even in this space, we see new and innovative test frameworks such as Casper.JS, TestCafe, Buster.JS, Nightwatch.JS together with the traditional Webdriver.IO and of course Protractor.
If we examine the below visual (Source: NPM Trends), it’s a clear market dominance between Selenium and Protractor that underneath its implementation does uses Selenium WebDriver, and supports Jasmine and Mocha tools.
The advantage of tools like Protractor is that they support much easier web sites that were developed in various frameworks like AngularJS, Vue.JS etc. Such advantage allows test automation engineers to agnostically use them for multiple websites regardless to the frameworks they are built with.
It is not that easy, and pink as I described above, but it does give a good headstart when starting to build the test automation Foundation.
Thre are few other players in that space that are aimed at specific unit testing, and headless browser testing (Phantom.JS, Casper.JS, JSDom etc.).
As I blogged in the past, from a test automation strategy perspective, teams might find it beneficial and more complete to leverage a set of test frameworks rather than using only one. If the aim is to have non-UI headless browser testing together with Unit testing and also UI based testing, then a combination of tools like Protractor, Casper.JS, QUnit might be a valid approach.
I hope you find this post useful, and can “swim” in the hectic tools landscape. As always, it is important to match the tool to the product requirements, development methodology (BDD, Agile, Waterfall etc.), supported languages and more.