DEV Community

Ryan Killeen
Ryan Killeen

Posted on

Cross-browser integration testing: best scalable solutions?

I'm curious what everyone's using, trying to find IE/Chrome/Safari friendly integration/regression testing solutions.

I'm interested in functional as opposed to visual testing, but that's welcome as well!

Top comments (5)

Collapse
 
ben profile image
Ben Halpern

Whether or not it fits your criteria, Cypress seems pretty cool and is good to be aware of. I'm interested in playing with it but haven't gotten around to it.

Collapse
 
ryankilleen profile image
Ryan Killeen

Came across Cypress, definitely interested in the future of it! Right now it's Chromium family only but it's got a ton of potential.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

There are a few key additional things you should test, since it appears most sites aren't testing properly:

  • Access via Web proxy. Many sites fail in this configuration.
  • Standard blocking plugins for blocking (like uBlock) and privacy (like Privacy Badger)
  • Access via a IPv6->IPv4 tunnel. Maybe harder to setup, but I've noticed some sites are failing this as well.

Opt for manual testing over automated testing of the UI itself. Not related to web, but I talk a bit about this in this article.

This implies making the UI as thin as possible and testing the API thoroughly. The thinner the UI layer then cheaper the testing becomes.

Collapse
 
ryankilleen profile image
Ryan Killeen • Edited

To add a little here:

I know Selenium is often leveraged for integration testing in mid-to-large-sized companies, and you can use the specific browser drivers to execute on.

For companies not capable of spinning up or supporting their own testing infrastructure, you can leverage BrowserStack.

Something like Protractor.js and Browserstack could provide the type of support needed. It could be cost prohibitive based on testing requirements.

Collapse
 
frantzen profile image
Lars Frantzen

Hi Ryan,

we use Selenium for cross browser testing (including mobile devices). But it is often quite a pain, since the naive idea that "same API" (Webdriver) means that a test case runs equally well on all browsers is simply not true.

You need to tailor test cases a lot to make them run stable on more than one browser/device, which is a lot of work and makes it hard to keep test code clean.
I wrote a bit about that down here: The Selenium Bliss and Pain.

What helps a lot is to have a good testing framework around Selenium. For instance I like a lot Codeception. With a framework like this you can arrange your test code in a way which suits your cross-browser needs.