Trends in Cross Browser Testing and Web Development
Looking for that next great framework to help build and/or test your application? Read on to see a comparison of the top frameworks and tools out there.
Join the DZone community and get the full member experience.Join For Free
The web market has shifted a lot over the past few 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 others.
From a Dev Language perspective, front-end developers are mostly using the following languages as part of their job:
There are some trends seen recently by developers around shifting to non-Angular web development frameworks like Aurelia, React, and Vue.js that are seeing a growing usage and adoption by developers. With this trend in mind, and as you'll read in my references below, the new solutions are still not as complete as Angular.
- Shorter learning curve.
- Simple to use, clean.
- Lightweight compared to others.
- Better performing.
- Easy to integrate with other front-end stack tools.
- Responsive server-side rendering (Vue.js supports it, reduces the time for users to see rendered content).
- SEO friendly.
- Good documentation and Community Support.
- Good debugging capabilities.
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 CasperJS, TestCafe, Buster.JS, Nightwatch.js together with the traditional Webdriver.io and of course Protractor.
If we examine the below visual (Source: NPM Trends), there'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 advantages allow test automation engineers to agnostically use them for multiple websites, regardless of the frameworks they are built with.
Thre are few other players in that space that are aimed at specific unit testing, and headless browser testing (PhantomJS, CasperJS, JSDom, etc.).
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, CasperJS, and QUnit might be a valid approach.
I hope you find this post useful and can find your way 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.
Published at DZone with permission of Eran Kinsbruner, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.